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