class SonJay::ObjectModel::PropertyDefinitions
Public Class Methods
from_initializations(property_initializations)
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 10 def self.from_initializations(property_initializations) new.tap do |instance| definer = PropertiesDefiner.new( instance ) property_initializations.each do |pi| definer.instance_eval &pi end end end
new()
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 19 def initialize @definitions = [] @names = Set.new @name_symbol_to_string_map = {} end
Public Instance Methods
+(other)
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 25 def +(other) sum = self.class.new each do |property_definition| sum << property_definition end other.each do |property_definition| sum << property_definition end sum end
<<(definition)
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 36 def <<(definition) @definitions << definition name = definition.name @names << name @name_symbol_to_string_map[name.to_sym] = name self end
hard_model_dependencies()
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 59 def hard_model_dependencies map( &:model_class ).compact.uniq end
include_name?(name)
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 54 def include_name?(name) name = name_from( name ) names.include?( name ) end
name_from(name)
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 46 def name_from(name) case name when String then name when Symbol then @name_symbol_to_string_map.fetch(name, name) else "#{name}" end end
names()
click to toggle source
# File lib/son_jay/object_model/property_definitions.rb, line 63 def names @names.freeze end