module Mince::Model::Fields::ClassMethods
Public Instance Methods
add_assignable_field(field_name)
click to toggle source
Adds an assignable field, values for these fields can be set using the field writer or from the ‘attributes=` method.
# File lib/mince/model/fields.rb, line 41 def add_assignable_field(field_name) fields << field_name assignable_fields << field_name attr_accessor field_name end
add_readonly_field(field_name)
click to toggle source
Adds a read only field, values for these fields can only be set in the class itself or from the hash sent in to the initializer
# File lib/mince/model/fields.rb, line 33 def add_readonly_field(field_name) fields << field_name readonly_fields << field_name attr_reader field_name end
assignable_fields()
click to toggle source
Returns the list of assignable fields
# File lib/mince/model/fields.rb, line 56 def assignable_fields @assignable_fields ||= [] end
field(field_name, options={})
click to toggle source
Adds a field to the object. Takes options to indicate assignability. If ‘assignable` is set, the field will be assignable via
model.field = 'foo' model.attributes = { field: 'foo' }
# File lib/mince/model/fields.rb, line 23 def field(field_name, options={}) if options[:assignable] add_assignable_field(field_name) else add_readonly_field(field_name) end end
fields(*field_names)
click to toggle source
Adds multiple readonly fields to the fields array, and returns the current list of fields. If no fields are given, it just returns the current list of fields
# File lib/mince/model/fields.rb, line 49 def fields(*field_names) @fields ||= [] field_names.each {|field_name| field(field_name) } @fields end
readonly_fields()
click to toggle source
Returns the list of readonly fields
# File lib/mince/model/fields.rb, line 61 def readonly_fields @readonly_fields ||= [] end