class Supercamp::Criteria::Abstract
Attributes
options[R]
response[W]
Public Class Methods
new(&block)
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 9 def initialize(&block) @options = {} instance_eval(&block) if block_given? end
search(&block)
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 16 def search(&block) new &block end
Public Instance Methods
count()
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 47 def count response.count end
endpoint()
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 26 def endpoint name = self.class.to_s.split("::").last.downcase "#{Supercamp.config.base_url}/#{name}s" end
query()
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 31 def query opts = { api_key: Supercamp.config.api_key }.merge(options) Typhoeus::Request.new(endpoint, timeout: Supercamp.config.timeout, params: opts) end
response(query=query)
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 36 def response(query=query) return @response unless @response.nil? response = query.run if response.code == 200 @response = Supercamp::Response.new response @response.freeze else raise Supercamp::Error.new self, response end end
results()
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 51 def results response.results end
search(&block)
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 22 def search(&block) self.class.search &block end
Private Instance Methods
merge_option(key, value)
click to toggle source
# File lib/supercamp/criteria/abstract.rb, line 57 def merge_option(key, value) @options.dup.merge({ key.to_s => value }).tap do |opts| @options = opts @response = nil @options.freeze end end