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