class FreebaseImporters::Query

Attributes

cursor[R]
mql[R]

Public Class Methods

new(mql, cursor = nil) click to toggle source
# File lib/freebase_importers/query.rb, line 9
def initialize(mql, cursor = nil)
  @mql, @cursor = mql, cursor
end

Public Instance Methods

each(*args, &block) click to toggle source
# File lib/freebase_importers/query.rb, line 28
def each(*args, &block)
  return enum_for(__callee__) unless block_given?
  result.each(*args, &block)
end
next() click to toggle source

developers.google.com/freebase/v1/mql-overview#querying-with-cursor-paging-results

# File lib/freebase_importers/query.rb, line 22
def next
  if (new_cursor = response["cursor"])
    self.class.new(mql, new_cursor)
  end
end
response() click to toggle source
# File lib/freebase_importers/query.rb, line 13
def response
  @response ||= json_query
end
result() click to toggle source
# File lib/freebase_importers/query.rb, line 17
def result
  json_query['result']
end

Private Instance Methods

base_url() click to toggle source
# File lib/freebase_importers/query.rb, line 36
def base_url
  Addressable::URI.parse('https://www.googleapis.com/freebase/v1/mqlread')
end
json_query() click to toggle source
# File lib/freebase_importers/query.rb, line 51
def json_query
  JSON.parse(query)
end
query() click to toggle source
# File lib/freebase_importers/query.rb, line 40
def query
  puts "About to mql: #{mql.inspect}" if ENV['FREEBASE_IMPORTS_DEBUG']
  url = base_url
  url.query_values = {
    'query' => [mql].to_json,
    'cursor' => cursor,
    'key' => FreebaseImporters.api_key
  }
  RestClient.get url.normalize.to_s, format: :json
end