class Arbetsformedlingen::API::Response
API
response object
Attributes
response[R]
uri[R]
Public Class Methods
new(response, uri = nil)
click to toggle source
Initialize response
# File lib/arbetsformedlingen/api/response.rb, line 15 def initialize(response, uri = nil) @response = response @json = nil @uri = uri end
Public Instance Methods
body()
click to toggle source
Response
body @return [String] the response body
# File lib/arbetsformedlingen/api/response.rb, line 29 def body response.read_body end
json()
click to toggle source
Response
JSON @return [Hash] response json - empty if JSON is invalid
# File lib/arbetsformedlingen/api/response.rb, line 35 def json @json ||= parse_json(body) end
method_missing(method_name, *arguments, &block)
click to toggle source
Delegate missing values to response
Calls superclass method
# File lib/arbetsformedlingen/api/response.rb, line 46 def method_missing(method_name, *arguments, &block) if response.respond_to?(method_name) response.public_send(method_name, *arguments, &block) else super end end
respond_to_missing?(method_name, include_private = false)
click to toggle source
Return true if missing method can be delegated
Calls superclass method
# File lib/arbetsformedlingen/api/response.rb, line 55 def respond_to_missing?(method_name, include_private = false) response.respond_to?(method_name) || super end
success?()
click to toggle source
True if response is 200 @return [Boolean] true if response code is 200
# File lib/arbetsformedlingen/api/response.rb, line 23 def success? response.code == '200' end
xml()
click to toggle source
Response
XML @return [Nokogiri::XML::Document] response - empty is XML is invalid
# File lib/arbetsformedlingen/api/response.rb, line 41 def xml @xml ||= parse_xml(body) end
Private Instance Methods
parse_json(string)
click to toggle source
# File lib/arbetsformedlingen/api/response.rb, line 63 def parse_json(string) JSON.parse(string.to_s) rescue JSON::ParserError => _e {} end
parse_xml(string)
click to toggle source
# File lib/arbetsformedlingen/api/response.rb, line 69 def parse_xml(string) Nokogiri::XML(string).tap(&:remove_namespaces!) end