Class: Supercamp::Criteria::Abstract
- Inherits:
-
Object
- Object
- Supercamp::Criteria::Abstract
- Defined in:
- lib/supercamp/criteria/abstract.rb
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
Class Method Summary collapse
Instance Method Summary collapse
- #endpoint ⇒ Object
-
#initialize(&block) ⇒ Abstract
constructor
A new instance of Abstract.
- #query ⇒ Object
- #response(query = query) ⇒ Object
- #search(&block) ⇒ Object
Constructor Details
#initialize(&block) ⇒ Abstract
Returns a new instance of Abstract.
8 9 10 11 |
# File 'lib/supercamp/criteria/abstract.rb', line 8 def initialize(&block) @options = {} instance_eval(&block) if block_given? end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
6 7 8 |
# File 'lib/supercamp/criteria/abstract.rb', line 6 def @options end |
Class Method Details
.search(&block) ⇒ Object
15 16 17 |
# File 'lib/supercamp/criteria/abstract.rb', line 15 def search(&block) new &block end |
Instance Method Details
#endpoint ⇒ Object
25 26 27 28 |
# File 'lib/supercamp/criteria/abstract.rb', line 25 def endpoint name = self.class.to_s.split("::").last.downcase "#{Supercamp.config.base_url}/#{name}s" end |
#query ⇒ Object
30 31 32 33 |
# File 'lib/supercamp/criteria/abstract.rb', line 30 def query opts = { api_key: Supercamp.config.api_key }.merge() Typhoeus::Request.new(endpoint, timeout: Supercamp.config.timeout, params: opts) end |
#response(query = query) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/supercamp/criteria/abstract.rb', line 35 def response(query=query) response = query.run if response.code == 200 Supercamp::Response.new response else raise Supercamp::Error.new self, response end end |
#search(&block) ⇒ Object
21 22 23 |
# File 'lib/supercamp/criteria/abstract.rb', line 21 def search(&block) self.class.search &block end |