class Crunchbase::Entity

Public Class Methods

new(data) click to toggle source
# File lib/crunchbase-api/entity.rb, line 6
def initialize(data)
  property_keys.each { |v| instance_variable_set("@#{v}", data['properties'][v] || nil) }
  date_keys.each { |v| instance_variable_set("@#{v}", data['properties'][v].nil? ? nil : Date.parse(data['properties'][v])) }
  %w[created_at updated_at].each { |v| instance_variable_set("@#{v}", Time.at(data['properties'][v])) }
  relationships.each { |v| set_relationships(v, data['relationships'][v] || nil) }
end

Private Class Methods

fetch_list(page = 1, order = ORDER_CREATED_AT_DESC, params = {}) click to toggle source
# File lib/crunchbase-api/entity.rb, line 19
def self.fetch_list(page = 1, order = ORDER_CREATED_AT_DESC, params = {})
  r = Crunchbase::fetch(self::RESOURCE_LIST, params.merge(page: page, order: order))['items']
  r.map { |i| Relation.new i }
end
fetch_one(permalink) click to toggle source
# File lib/crunchbase-api/entity.rb, line 15
def self.fetch_one(permalink)
  self.new Crunchbase::fetch("#{self::RESOURCE_FIND}/#{permalink}")
end

Private Instance Methods

date_keys() click to toggle source
# File lib/crunchbase-api/entity.rb, line 28
def date_keys
  []
end
property_keys() click to toggle source
# File lib/crunchbase-api/entity.rb, line 24
def property_keys
  []
end
relationships() click to toggle source
# File lib/crunchbase-api/entity.rb, line 32
def relationships
  []
end
set_relationships(key, data) click to toggle source
# File lib/crunchbase-api/entity.rb, line 36
def set_relationships(key, data)
  return unless data and data['items'].respond_to?(:each)
  items = []
  data['items'].each { |v| items << Relation.new(v) }
  instance_variable_set "@#{key}", items
end