Class: LHS::Item
- Includes:
- Destroy, Save, Update, Validation
- Defined in:
- lib/lhs/item.rb,
lib/lhs/concerns/item/save.rb,
lib/lhs/concerns/item/update.rb,
lib/lhs/concerns/item/destroy.rb,
lib/lhs/concerns/item/validation.rb
Overview
An item is a concrete record. It can be part of another proxy like collection.
Defined Under Namespace
Modules: Destroy, Save, Update, Validation
Instance Attribute Summary collapse
-
#errors ⇒ Object
prevent clashing with attributes of underlying data.
Attributes inherited from Proxy
Instance Method Summary collapse
-
#initialize(data) ⇒ Item
constructor
A new instance of Item.
- #item? ⇒ Boolean
Methods included from Validation
Methods included from Update
Methods included from Save
Methods included from Destroy
Methods inherited from Proxy
Constructor Details
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &_block) ⇒ Object (protected)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/lhs/item.rb', line 30 def method_missing(name, *args, &_block) return set(name, args.try(&:first)) if name.to_s[/=$/] name = args.first if name == :[] value = _data._raw[name.to_s] if value.nil? && _data._raw.present? value = _data._raw[name.to_sym] value = _data._raw[name.to_s.classify.to_sym] if value.nil? end if value.is_a?(Hash) handle_hash(value) elsif value.is_a?(Array) data = LHS::Data.new(value, _data) collection = LHS::Collection.new(data) LHS::Data.new(collection, _data) else convert(value) end end |
Instance Attribute Details
#errors ⇒ Object
prevent clashing with attributes of underlying data
15 16 17 |
# File 'lib/lhs/item.rb', line 15 def errors @errors end |
Instance Method Details
#item? ⇒ Boolean
24 25 26 |
# File 'lib/lhs/item.rb', line 24 def item? true end |