class AkidoLib::Query
Constants
- FILTERS
Public Class Methods
new(resource, base_url)
click to toggle source
# 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
set_base_url!(base_url)
click to toggle source
# File lib/query.rb, line 73 def self.set_base_url!(base_url) @@base_url = base_url end
Public Instance Methods
custom(key, value)
click to toggle source
# File lib/query.rb, line 54 def custom(key, value) @query.push({key => value}) end
fetch!()
click to toggle source
# File lib/query.rb, line 70 def fetch! end
include(relation, options)
click to toggle source
# File lib/query.rb, line 40 def include(relation, options) key = if options[:rev] :_revinclude else :_include end @query.push({key => relation}) end
last_updated(date)
click to toggle source
# File lib/query.rb, line 50 def last_updated(date) @query.push({:_lastUpdated => date.xmlschema}) end
unset(key)
click to toggle source
# 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()
click to toggle source
# File lib/query.rb, line 66 def url "#{@base_url}/#{resource_name}?#{query_string}" end
where(filters)
click to toggle source
# 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
Private Instance Methods
query_string()
click to toggle source
# File lib/query.rb, line 82 def query_string @query.map(&:to_query).join("&") end
resource_name()
click to toggle source
# File lib/query.rb, line 78 def resource_name @resource.to_s.demodulize end