module EntitySchema::SetupField
Define or redefine methods for work with Entity fields
Public Instance Methods
setup_field(field)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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