On Friday, August 6, 2004, 5:32:46 PM, Gavin wrote:
> Folks,
> I'm making some (mostly small) changes to a few files at work:
> M lib/rubygems/cache.rb
> M lib/rubygems/installer.rb
> M lib/rubygems/specification.rb
> M lib/rubygems/version.rb
> I have to leave because the building is going to pwer down for some
> reason, so I'll have to continue at home, but there's at least three beers
> between now and then. I don't want to commit it to CVS because it's
> seriously broken in the current state, so no updates for at least a few
> beers ... er, hours.
And five days later, it's done. ChangeLog below. Note that cache.rb
uses STDERR instead of alert_error, because the latter didn't work
anyway. That's something to be fixed.
I've tested pretty carefully (interactive and unit), but of course
there's probably a bug around the corner. Since it's a delicate kind
of change, I'm planning to install each and every remote gem and
confirm that all goes OK.
Cheers,
Gavin
2004-08-11 Gavin Sinclair <gsinclair at soyabean.com.au>
* lib/rubygems/specification.rb:
- Added convenience class methods: attribute_names,
attribute_defaults, default_value, required_attributes, and
required_attribute?.
- IMPORTANT: attribute readers now use lazy initialization, just
like some of them did before the 2004-08-01 change. This was done
to fix the breakage when loading older gemspecs.
- IMPORTANT: replaced instance variable access with attribute reader
method calls in many cases. This is in line with the above change.
- Good documentation for the "attribute" method.
- Renamed _copy -> _copy_of.
* lib/rubygems/cache.rb:
- Some fairly shallow changes. Exception handling needs improvement.
* lib/rubygems/version.rb:
- (Version.create) new method (for convenience)
- (Version::Requirement.create) new method (for convenience)
- (Version::Requirement.default) new method (for consistency)
* test/test_specification.rb: test attribute_names instead of
attributes. Other "class convenience" methods remain to be tested
at this stage. Also added test classes for legacy gemspecs.
* test/data/legacy/keyedlist-0.4.0.ruby: added.
* test/data/legacy/keyedlist-0.4.0.yaml: added.