module Arke::Resource::Fields::ClassMethods
Public Instance Methods
field(name, options={})
click to toggle source
# File lib/arke/resource/fields.rb, line 9 def field(name, options={}) raise Errors::MissingType.new('The field type is required when defining a field.') unless options[:type] define_getter(name.to_s, options[:type]) define_setter(name.to_s, options[:type]) end
Private Instance Methods
define_getter(name, klass)
click to toggle source
# File lib/arke/resource/fields.rb, line 17 def define_getter(name, klass) instance_eval do define_method(name) do value = @_attributes[name] return value if klass == Boolean value ? klass.new(@_attributes[name]) : klass.new end end end
define_setter(name, klass)
click to toggle source
# File lib/arke/resource/fields.rb, line 27 def define_setter(name, klass) instance_eval do define_method("#{name}=") do |value| @_attributes[name] = value end end end