Sha256: 5e8361a95989b9514c971016da652b513f76d61ab51a5c5ab2dac97fd56b0f7b
Contents?: true
Size: 745 Bytes
Versions: 6
Compression:
Stored size: 745 Bytes
Contents
module Hashme class Property attr_reader :name, :type, :default, :array def initialize(name, type, opts = {}) @name = name.to_sym # Always set type to base type if type.is_a?(Array) && !type.first.nil? @array = true @type = type.first else @array = false @type = type end # Handle options @default = opts[:default] end def to_s name.to_s end def to_sym name end # Build a new object of the type defined by the property. def build(owner, value) if array && value.is_a?(Array) CastedArray.new(self, owner, value) else PropertyCasting.cast(self, owner, value) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems