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
Methods included from Validation
Methods included from Update
Methods included from Save
Methods included from Destroy
Methods inherited from Proxy
Constructor Details
This class inherits a constructor from LHS::Proxy
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &_block) ⇒ Object (protected)
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/lhs/item.rb', line 25 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] 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
19 20 21 |
# File 'lib/lhs/item.rb', line 19 def item? true end |