module NestedStruct::Interface::ClassMethods
Attributes
field_names[R]
fields[R]
Public Instance Methods
field(name, coercer_expression = nil)
click to toggle source
# File lib/nested_struct/interface.rb, line 10 def field(name, coercer_expression = nil) if superclass.ancestors.include?(NestedStruct::Interface) @field_names ||= superclass.field_names.dup || [] @fields ||= superclass.fields.dup || [] else @field_names ||= [] @fields ||= [] end if !field_names.include?(name) @field_names << name @fields << Field.new(name, coercer_expression) attr_accessor(name) end end