Class: LHS::Proxy
- Inherits:
-
Object
- Object
- LHS::Proxy
- Defined in:
- lib/lhs/proxy.rb,
lib/lhs/concerns/proxy/link.rb,
lib/lhs/concerns/proxy/create.rb,
lib/lhs/concerns/proxy/problems.rb,
lib/lhs/concerns/proxy/accessors.rb
Overview
Proxy makes different kind of data accessible If href is present it also alows loading/reloading
Direct Known Subclasses
Defined Under Namespace
Modules: Accessors, Create, Link, Problems
Constant Summary
Constants included from Accessors
Accessors::BLACKLISTED_KEYWORDS
Instance Attribute Summary collapse
-
#_data ⇒ Object
prevent clashing with attributes of underlying data.
-
#_loaded ⇒ Object
prevent clashing with attributes of underlying data.
Instance Method Summary collapse
-
#initialize(data) ⇒ Proxy
constructor
A new instance of Proxy.
- #load!(options = nil) ⇒ Object
- #record ⇒ Object
- #reload!(options = nil) ⇒ Object
Methods included from Create
Constructor Details
#initialize(data) ⇒ Proxy
Returns a new instance of Proxy.
22 23 24 25 |
# File 'lib/lhs/proxy.rb', line 22 def initialize(data) self._data = data self._loaded = false end |
Instance Attribute Details
#_data ⇒ Object
prevent clashing with attributes of underlying data
19 20 21 |
# File 'lib/lhs/proxy.rb', line 19 def _data @_data end |
#_loaded ⇒ Object
prevent clashing with attributes of underlying data
19 20 21 |
# File 'lib/lhs/proxy.rb', line 19 def _loaded @_loaded end |
Instance Method Details
#load!(options = nil) ⇒ Object
31 32 33 34 |
# File 'lib/lhs/proxy.rb', line 31 def load!( = nil) return self if _loaded reload!() end |
#record ⇒ Object
27 28 29 |
# File 'lib/lhs/proxy.rb', line 27 def record _data.class end |
#reload!(options = nil) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/lhs/proxy.rb', line 36 def reload!( = nil) = {} if .blank? data = _data.class.request( .merge(method: :get).merge() ) _data.merge_raw!(data.unwrap(:item_key)) self._loaded = true return becomes(_record) if _record self end |