def initialize name = nil, version = nil
    @loaded = false
    @activated = false
    @loaded_from = nil
    @original_platform = nil

    @@nil_attributes.each do |key|
      instance_variable_set "@#{key}", nil
    end

    @@non_nil_attributes.each do |key|
      default = default_value(key)
      value = case default
              when Time, Numeric, Symbol, true, false, nil then default
              else default.dup
              end

      instance_variable_set "@#{key}", value
    end

    @new_platform = Gem::Platform::RUBY

    self.name = name if name
    self.version = version if version

    yield self if block_given?
  end
#
Specification constructor. Assigns the default values to the attributes
and yields itself for further initialization.  Optionally takes +name+ and
+version+.