Sha256: accc1426da45e01a05940b34ecb58684735a7a43daa73127924e576a89dcaf98
Contents?: true
Size: 693 Bytes
Versions: 1
Compression:
Stored size: 693 Bytes
Contents
module AttrOptional def self.included(klass) klass.send :extend, ClassMethods end module ClassMethods def inherited(klass) super unless optional_attributes.empty? klass.attr_optional *optional_attributes end end def attr_optional(*keys) @optional_attributes ||= [] @optional_attributes += Array(keys) attr_accessor *keys end def attr_optional?(key) optional_attributes.include?(key) end def optional_attributes Array(@optional_attributes) end end def optional_attributes self.class.optional_attributes end def attr_optional?(key) self.class.attr_optional? key end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
attr_required-0.0.3 | lib/attr_optional.rb |