# File lib/rubygems/specification.rb, line 406 def initialize # Each attribute has a default value (possibly nil). Here, we # initialize all attributes to their default value. This is # done through the accessor methods, so special behaviours will # be honored. Furthermore, we take a _copy_ of the default so # each specification instance has its own empty arrays, etc. @@attributes.each do |name, default| if RUBY_VERSION >= "1.9" then self.funcall "#{name}=", copy_of(default) else self.send "#{name}=", copy_of(default) end end @loaded = false @@list << self yield self if block_given? @@gather.call(self) if @@gather end