Class: AkidoLib::Query
- Inherits:
-
Object
- Object
- AkidoLib::Query
- Defined in:
- lib/query.rb
Constant Summary collapse
- FILTERS =
[ :content, :id, :last_updated, :profile, :query, :security, :tag, :text, :filter ]
Class Method Summary collapse
Instance Method Summary collapse
- #custom(key, value) ⇒ Object
- #fetch! ⇒ Object
- #include(relation, options) ⇒ Object
-
#initialize(resource, base_url) ⇒ Query
constructor
A new instance of Query.
- #last_updated(date) ⇒ Object
- #unset(key) ⇒ Object
- #url ⇒ Object
- #where(filters) ⇒ Object
Constructor Details
#initialize(resource, base_url) ⇒ Query
Returns a new instance of Query.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/query.rb', line 15 def initialize(resource, base_url) @base_url = if base_url base_url elsif @@base_url @@base_url else AkidoLib::Model .client .full_resource_url(:resource => @model) end @resource = resource @query = [] end |
Class Method Details
.set_base_url!(base_url) ⇒ Object
73 74 75 |
# File 'lib/query.rb', line 73 def self.set_base_url!(base_url) @@base_url = base_url end |
Instance Method Details
#custom(key, value) ⇒ Object
54 55 56 |
# File 'lib/query.rb', line 54 def custom(key, value) @query.push({key => value}) end |
#fetch! ⇒ Object
70 71 |
# File 'lib/query.rb', line 70 def fetch! end |
#include(relation, options) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/query.rb', line 40 def include(relation, ) key = if [:rev] :_revinclude else :_include end @query.push({key => relation}) end |
#last_updated(date) ⇒ Object
50 51 52 |
# File 'lib/query.rb', line 50 def last_updated(date) @query.push({:_lastUpdated => date.xmlschema}) end |
#unset(key) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/query.rb', line 58 def unset(key) key = "_#{key.to_s.camelize(:lower)}".to_sym @query.reject! do |param| param.keys.include?(key) end end |
#url ⇒ Object
66 67 68 |
# File 'lib/query.rb', line 66 def url "#{@base_url}/#{resource_name}?#{query_string}" end |
#where(filters) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/query.rb', line 30 def where(filters) filters.each do |filter, value| if FILTERS.include?(filter.to_s.underscore.downcase.to_sym) @query.push({ "_#{filter.to_s.camelize(:lower)}".to_sym => value }) end end return self end |