class SonJay::ObjectModel::PropertyDefinition

Attributes

model_class[R]
name[R]

Public Class Methods

new(name, instruction = nil) click to toggle source
# File lib/son_jay/object_model/property_definition.rb, line 7
def initialize(name, instruction = nil)
  @name        = "#{name}".freeze
  @model_class = model_class_for_instruction( instruction )
end

Private Instance Methods

array_model_class(instruction) click to toggle source
# File lib/son_jay/object_model/property_definition.rb, line 26
def array_model_class(instruction)
  return instruction unless instruction.respond_to?( :to_ary )
  return SonJay::ValueArray if instruction == []

  sub_instruction = instruction.first
  sub_model_class = array_model_class( sub_instruction )
  sub_model_class.array_class
end
model_class_for_instruction(instruction) click to toggle source
# File lib/son_jay/object_model/property_definition.rb, line 14
def model_class_for_instruction(instruction)
  if instruction.nil?
    nil
  elsif instruction.respond_to?( :to_ary )
    array_model_class( instruction )
  elsif instruction.respond_to?( :new )
    instruction
  end
end