Sha256: 942f50dd04be5aa5ec28c8eedd344dbabe6de1b5fb81a754f822a48122c3c5f2
Contents?: true
Size: 891 Bytes
Versions: 3
Compression:
Stored size: 891 Bytes
Contents
module SonJay class ObjectModel class PropertyDefinition attr_reader :name, :model_class def initialize(name, instruction = nil) @name = name @model_class = model_class_for_instruction(instruction) end private 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 private 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 end end end
Version data entries
3 entries across 3 versions & 1 rubygems