Class: LHS::Proxy

Inherits:
Object
  • Object
show all
Includes:
Create, Link
Defined in:
lib/lhs/proxy.rb,
lib/lhs/concerns/proxy/link.rb,
lib/lhs/concerns/proxy/create.rb

Overview

require File.dirname(__FILE__) + ‘/../../proxy’

Direct Known Subclasses

Collection, Item

Defined Under Namespace

Modules: Create, Link

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Create

#create, #create!

Constructor Details

#initialize(data) ⇒ Proxy

Returns a new instance of Proxy.



13
14
15
16
# File 'lib/lhs/proxy.rb', line 13

def initialize(data)
  self._data = data
  self._loaded = false
end

Instance Attribute Details

#_dataObject

prevent clashing with attributes of underlying data



11
12
13
# File 'lib/lhs/proxy.rb', line 11

def _data
  @_data
end

#_loadedObject

prevent clashing with attributes of underlying data



11
12
13
# File 'lib/lhs/proxy.rb', line 11

def _loaded
  @_loaded
end

Instance Method Details

#load!(options = nil) ⇒ Object



18
19
20
21
# File 'lib/lhs/proxy.rb', line 18

def load!(options = nil)
  return self if _loaded
  reload!(options)
end

#reload!(options = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/lhs/proxy.rb', line 23

def reload!(options = nil)
  raise 'No href found' unless _data.href
  options = {} if options.blank?

  data = _data.class.request(options.merge(url: _data.href, method: :get))
  _data.merge_raw!(data)
  self._loaded = true
  self
end