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