Hi,
In message "[ruby-talk:5620] Re: [RRFC] versioning revisited"
on 00/10/17, Dave Thomas <Dave / thomases.com> writes:
|To make this more orthogonal, how about generalizing the context. Add
|a 'with' qualifier to 'require' which takes an arbitrary
|expression. That expression is evaluated within the context of the
|module just loaded, so you could write:
|
| fred.rb:
| version = 4.3
| status = "debug"
| # module stuff..
|
| dave.rb
|
| require "fred" with version > 4 && status != "debug"
|
|that gives us an interesting way to introduce metadata.
Are you going to make require a keyword?
|Then, how about extending require again, so that if the first match
|that it finds doesn't satisfy the 'with', it keeps searching, so that
|we can have multiple libraries in the search path, with programs being
|able to choose which ones they like?
What do you think is a good idea to resolve version number mismatch?
For example:
my program requires libraries cgi and database
cgi requires marshal 1.4 or later
database requires marshal 1.2
Just crash? Note I didn't say this is a serious problem.
matz.