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