Class: Farscape::SafeRepresentorAgent

Inherits:
Object
  • Object
show all
Includes:
BaseAgent
Defined in:
lib/farscape/representor.rb

Direct Known Subclasses

RepresentorAgent

Constant Summary collapse

EMPTY_BODIES =

TODO: Fix Representor to allow nil resources

{ hale: "{}" }

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from BaseAgent

#handle_extensions

Constructor Details

#initialize(requested_media_type, response, agent) ⇒ SafeRepresentorAgent

Returns a new instance of SafeRepresentorAgent.



16
17
18
19
20
21
22
# File 'lib/farscape/representor.rb', line 16

def initialize(requested_media_type, response, agent)
  @agent = agent
  @response = response
  @requested_media_type = requested_media_type
  @representor = deserialize(requested_media_type, response.body)
  handle_extensions
end

Instance Attribute Details

#agentObject (readonly)

Returns the value of attribute agent.



10
11
12
# File 'lib/farscape/representor.rb', line 10

def agent
  @agent
end

#representorObject (readonly)

Returns the value of attribute representor.



11
12
13
# File 'lib/farscape/representor.rb', line 11

def representor
  @representor
end

#responseObject (readonly)

Returns the value of attribute response.



12
13
14
# File 'lib/farscape/representor.rb', line 12

def response
  @response
end

Instance Method Details

#attributesObject



28
29
30
# File 'lib/farscape/representor.rb', line 28

def attributes
  representor.properties
end

#embeddedObject



37
38
39
# File 'lib/farscape/representor.rb', line 37

def embedded
  Hash[representor.embedded.map{ |k, reps| [k, _embedded(reps, response)] }]
end

#safeObject



45
46
47
# File 'lib/farscape/representor.rb', line 45

def safe
  reframe_representor(safe=true)
end

#to_hashObject



41
42
43
# File 'lib/farscape/representor.rb', line 41

def to_hash
  @representor.to_hash
end

#transitionsObject

TODO: Handling list of transitions



33
34
35
# File 'lib/farscape/representor.rb', line 33

def transitions
  Hash[representor.transitions.map{ |trans| [trans.rel, Farscape::TransitionAgent.new(trans, agent)] }]
end

#unsafeObject



49
50
51
# File 'lib/farscape/representor.rb', line 49

def unsafe
  reframe_representor(safe=false)
end