Module: Sumaki::Model::Fields::ClassMethods
- Defined in:
- lib/sumaki/model/fields.rb
Overview
:nodoc:
Instance Method Summary collapse
- #_sumaki_attribute_reflections ⇒ Object
- #attribute_names ⇒ Object
-
#field(name, type = nil) ⇒ Object
Access to the field.
Instance Method Details
#_sumaki_attribute_reflections ⇒ Object
110 111 112 |
# File 'lib/sumaki/model/fields.rb', line 110 def _sumaki_attribute_reflections @_sumaki_attribute_reflections ||= {} end |
#attribute_names ⇒ Object
106 107 108 |
# File 'lib/sumaki/model/fields.rb', line 106 def attribute_names _sumaki_attribute_reflections.keys end |
#field(name, type = nil) ⇒ Object
Access to the field.
class Anime
include Sumaki::Model
field :title
field :url
end
anime = Anime.new({ title: 'The Vampire Dies in No Time', url: 'https://sugushinu-anime.jp/' })
anime.title #=> 'The Vampire Dies in No Time'
anime.url #=> 'https://sugushinu-anime.jp/'
The Field value cam be set.
anime = Anime.new({})
anime.title = 'The Vampire Dies in No Time'
anime.title #=> 'The Vampire Dies in No Time'
Type casting
When a type is specified, it will be typecast.
class Character
include Sumaki::Model
field :age, :int
end
character = Character.new({ age: '208' })
character.age #=> 208
Types are:
-
:int
-
:float
-
:string
-
:bool
-
:date
-
:datetime
101 102 103 104 |
# File 'lib/sumaki/model/fields.rb', line 101 def field(name, type = nil) reflection = Reflection.new(name, type) AccessorAdder.add(_sumaki_methods_module, _sumaki_attribute_reflections, reflection) end |