class Rexpense::Resources::Base
Attributes
http[RW]
Public Class Methods
new(http)
click to toggle source
# File lib/rexpense/resources/base.rb, line 7 def initialize(http) @http = http end
Private Instance Methods
build_search_endpoint(params)
click to toggle source
# File lib/rexpense/resources/base.rb, line 13 def build_search_endpoint(params) return URI.encode("#{endpoint_base}") if params.empty? query_string = uri_query(params).join("&") URI.encode("#{endpoint_base}?#{query_string}") end
entity_klass_name()
click to toggle source
# File lib/rexpense/resources/base.rb, line 47 def entity_klass_name self.class.to_s.gsub("Resources", "Entities") end
query_value(key, value)
click to toggle source
# File lib/rexpense/resources/base.rb, line 27 def query_value(key, value) [].tap do |query| if value.is_a?(Array) value.each { |v| query << "q[#{key}][]=#{v}" } else query << "q[#{key}]=#{value}" end end end
respond_with_collection(response)
click to toggle source
# File lib/rexpense/resources/base.rb, line 37 def respond_with_collection(response) collection_klass = Rexpense::Entities.const_get("#{entity_klass_name}Collection") collection_klass.build(response) end
respond_with_object(response, key=nil)
click to toggle source
# File lib/rexpense/resources/base.rb, line 42 def respond_with_object(response, key=nil) entity_klass = Rexpense::Entities.const_get(entity_klass_name) entity_klass.new(response.parsed_body(key)) end
uri_query(params)
click to toggle source
# File lib/rexpense/resources/base.rb, line 19 def uri_query(params) page = params.delete(:page) query = [] params.each { |k, v| query += query_value(k, v) } query << "page=#{page}" if page query end