Module: NestedStruct::Interface
- Defined in:
- lib/nested_struct/interface.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/nested_struct/interface.rb', line 3 def self.included(base) base.class_eval do @field_names ||= [] @fields ||= [] class << self attr_reader :field_names, :fields def field(name, coercer_expression = nil) if !field_names.include?(name) @field_names << name @fields << Field.new(name, coercer_expression) attr_accessor(name) end end end end end |
Instance Method Details
#initialize(attributes = {}) ⇒ Object
22 23 24 |
# File 'lib/nested_struct/interface.rb', line 22 def initialize(attributes = {}) assign_field_values(attributes) end |
#to_hash ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/nested_struct/interface.rb', line 26 def to_hash Hash[ self.class.fields.map do |field| [field.name.to_sym, primitivize(public_send(field.name))] end ] end |