lib/swift/attribute.rb in swift-0.4.3 vs lib/swift/attribute.rb in swift-0.5.0

- old
+ new

@@ -10,15 +10,21 @@ @serial = options.fetch(:serial, false) define_scheme_methods(scheme) end def default - @default.respond_to?(:call) ? @default.call : (@default.nil? ? nil : @default.dup) + if @default.respond_to?(:call) + @default.call + elsif Swift.special_constant?(@default) + @default + else + @default.dup + end end def define_scheme_methods scheme scheme.class_eval <<-RUBY, __FILE__, __LINE__ + 1 - def #{name}; tuple.fetch(:#{field}) end + def #{name}; tuple.fetch(:#{field}, nil) end def #{name}= value; tuple.store(:#{field}, value) end RUBY end end # Attribute end # Swift