class Farscape::SafeRepresentorAgent
Constants
- EMPTY_BODIES
Attributes
agent[R]
representor[R]
response[R]
Public Class Methods
new(requested_media_type, response, agent)
click to toggle source
# 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
Public Instance Methods
attributes()
click to toggle source
# File lib/farscape/representor.rb, line 28 def attributes representor.properties end
embedded()
click to toggle source
# File lib/farscape/representor.rb, line 37 def embedded Hash[representor.embedded.map{ |k, reps| [k, _embedded(reps, response)] }] end
safe()
click to toggle source
# File lib/farscape/representor.rb, line 45 def safe reframe_representor(safe=true) end
to_hash()
click to toggle source
# File lib/farscape/representor.rb, line 41 def to_hash @representor.to_hash end
transitions()
click to toggle source
TODO: Handling list of transitions
# File lib/farscape/representor.rb, line 33 def transitions Hash[representor.transitions.map{ |trans| [trans.rel, Farscape::TransitionAgent.new(trans, agent)] }] end
unsafe()
click to toggle source
# File lib/farscape/representor.rb, line 49 def unsafe reframe_representor(safe=false) end
Private Instance Methods
_embedded(reprs, response)
click to toggle source
# File lib/farscape/representor.rb, line 66 def _embedded(reprs, response) reprs = [reprs] unless reprs.respond_to?(:map) reprs.map { |repr| @agent.representor.new(false, OpenStruct.new(status: response.status, headers: response.headers, body: repr), @agent) } end
deserialize(requested_media_type, response_body)
click to toggle source
# File lib/farscape/representor.rb, line 60 def deserialize(requested_media_type, response_body) return response_body unless requested_media_type response_body = response_body || EMPTY_BODIES[@agent.media_type] Representors::DeserializerFactory.build(requested_media_type, response_body).to_representor end
reframe_representor(safety)
click to toggle source
# File lib/farscape/representor.rb, line 55 def reframe_representor(safety) agent = safety ? @agent.safe : @agent.unsafe agent.representor.new(@requested_media_type, @response, agent) end