Module: EntitySchema::SetupField
- Included in:
- Dsl
- Defined in:
- lib/entity_schema/setup_field.rb
Overview
Define or redefine methods for work with Entity fields
Instance Method Summary collapse
- #setup_field(field) ⇒ Object
- #setup_getter(field) ⇒ Object
- #setup_predicate(field) ⇒ Object
- #setup_setter(field) ⇒ Object
Instance Method Details
#setup_field(field) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/entity_schema/setup_field.rb', line 6 def setup_field(field) entity_schema.add_field(field) setup_getter(field) setup_setter(field) setup_predicate(field) if field.specification.predicate end |
#setup_getter(field) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/entity_schema/setup_field.rb', line 14 def setup_getter(field) m = field.name define_method(m) { field.get(self) } public(m) if field.specification.public_getter private(m) unless field.specification.public_getter end |
#setup_predicate(field) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/entity_schema/setup_field.rb', line 28 def setup_predicate(field) m = :"#{field.name}?" remove_method(m) if method_defined?(m) define_method(m) { field.get(self) } public(m) if field.specification.public_getter private(m) unless field.specification.public_getter end |
#setup_setter(field) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/entity_schema/setup_field.rb', line 21 def setup_setter(field) m = :"#{field.name}=" define_method(m) { |value| field.set(self, value) } public(m) if field.specification.public_setter private(m) unless field.specification.public_setter end |