class FreebaseImporters::Base

Attributes

data[R]

Public Class Methods

add_method(name, proc) click to toggle source
# File lib/freebase_importers/base.rb, line 18
def self.add_method(name, proc)
  define_method(name, proc)
end
add_to_mql(key, value = nil) click to toggle source
# File lib/freebase_importers/base.rb, line 14
def self.add_to_mql(key, value = nil)
  mql[key.to_s] = value
end
map(target, value = nil) click to toggle source
# File lib/freebase_importers/base.rb, line 8
def self.map(target, value = nil)
  add_to_mql(target, value)
  target_ending = target.to_s.split('/').last
  add_method(target_ending, CommonAccessors.single(target))
end
new(data) click to toggle source
# File lib/freebase_importers/base.rb, line 4
def initialize(data)
  @data = data
end

Private Class Methods

all() { |new(result)| ... } click to toggle source
# File lib/freebase_importers/base.rb, line 28
def self.all
  query.each do |result|
    yield new(result)
  end
end
endless(pause = 1) { |new(result)| ... } click to toggle source
# File lib/freebase_importers/base.rb, line 34
def self.endless(pause = 1)
  q = query
  while q do
    q.each do |result|
      yield new(result)
    end
    puts "Getting some more in #{pause} seconds." unless pause == 0
    sleep pause
    q = q.next
  end
end
first() click to toggle source
# File lib/freebase_importers/base.rb, line 46
def self.first
  all {|m| break(m) }
end
images!() click to toggle source
# File lib/freebase_importers/base.rb, line 50
def self.images!
  key = "/common/topic/image"
  add_to_mql key, [ { "id" => nil } ]
  add_method :image_ids, CommonAccessors.deep(key, :id)
  add_method :image_urls,     -> { image_ids.collect {|id| freebase_image_url(id) } }
  add_method :thumbnail_urls, -> { image_ids.collect {|id| freebase_thumb_url(id) } }

  add_method :image_url,     -> { image_urls.first }
  add_method :thumbnail_url, -> { thumbnail_urls.first }

end
mql() click to toggle source
# File lib/freebase_importers/base.rb, line 65
def mql
  @mql ||= {}
end
query() click to toggle source
# File lib/freebase_importers/base.rb, line 24
def self.query
  Query.new(mql)
end

Private Instance Methods

freebase_image_url(path) click to toggle source
# File lib/freebase_importers/base.rb, line 74
def freebase_image_url(path)
  "https://api.freebase.com/api/trans/raw#{path}"
end
freebase_thumb_url(path) click to toggle source
# File lib/freebase_importers/base.rb, line 70
def freebase_thumb_url(path)
  "https://usercontent.googleapis.com/freebase/v1/image#{path}"
end