class Factual::Query::Base

Attributes

action[R]
params[R]
path[R]

Public Class Methods

new(api, params) click to toggle source
# File lib/factual/query/base.rb, line 6
def initialize(api, params)
  @api = api
  @params = params
end

Public Instance Methods

[](index) click to toggle source
# File lib/factual/query/base.rb, line 21
def [](index)
  rows[index]
end
data() click to toggle source
# File lib/factual/query/base.rb, line 25
def data
  response["data"]
end
each(&block) click to toggle source
# File lib/factual/query/base.rb, line 13
def each(&block)
  rows.each { |row| block.call(row) }
end
full_path() click to toggle source

TODO move to Multiable module, and support multi writes

# File lib/factual/query/base.rb, line 43
def full_path
  @api.full_path(@action, @path, @params)
end
last() click to toggle source
# File lib/factual/query/base.rb, line 17
def last
  rows.last
end
populate(query_response) click to toggle source
# File lib/factual/query/base.rb, line 47
def populate(query_response)
  @response = query_response
end
rows() click to toggle source
# File lib/factual/query/base.rb, line 29
def rows
  data
end
schema() click to toggle source
# File lib/factual/query/base.rb, line 38
def schema
  @schema ||= @api.schema(self)
end
total_count() click to toggle source
# File lib/factual/query/base.rb, line 33
def total_count
  resp = @api.get(self, :include_count => true, :limit => 1)
  resp["total_row_count"]
end

Private Instance Methods

form_value(args) click to toggle source
# File lib/factual/query/base.rb, line 53
def form_value(args)
  args = args.map { |arg| arg.is_a?(String) ? arg.strip : arg }
  args.length == 1 ? args.first : args.join(',')
end
response() click to toggle source
# File lib/factual/query/base.rb, line 58
def response
  @response ||= @api.get(self)
end