crunchbase-ruby-library 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,7 +13,7 @@ require 'timeout'
13
13
  module Crunchbase
14
14
  class API
15
15
 
16
- SUPPORTED_ENTITIES = ['organizations', 'people', 'products', 'funding_rounds', 'acquisitions', 'ipos', 'locations', 'categories', 'offices', 'customers', 'degrees', 'experience', 'primary_affiliation', 'videos', 'founded_companies', 'primary_location', 'advisor_at']
16
+ SUPPORTED_ENTITIES = ['organizations', 'people', 'products', 'funding_rounds', 'funding-rounds', 'acquisitions', 'ipos', 'locations', 'categories', 'offices', 'customers', 'degrees', 'experience', 'primary_affiliation', 'videos', 'founded_companies', 'primary_location', 'advisor_at']
17
17
 
18
18
  @timeout_limit = 60
19
19
  @redirect_limit = 2
@@ -93,11 +93,16 @@ module Crunchbase
93
93
  lists_for_category('organizations', permalink, category, options)
94
94
  end
95
95
 
96
- # Demo: https://api.crunchbase.com/v/#{version}/person/#{person-permalink}/offices?user_key=key
96
+ # Visit: https://api.crunchbase.com/v/#{version}/people/#{permalink}/#{category}?user_key=key
97
97
  def self.person_lists(permalink, category, options)
98
98
  lists_for_category('people', permalink, category, options)
99
99
  end
100
100
 
101
+ # Visit: https://api.crunchbase.com/v/#{version}/funding-rounds/#{permalink}/#{category}?user_key=key
102
+ def self.funding_rounds_lists(permalink, category, options)
103
+ lists_for_category('funding-rounds', permalink, category, options)
104
+ end
105
+
101
106
  def self.lists_for_category(classify_name, permalink, category, options)
102
107
  options[:page] = 1 if options[:page].nil?
103
108
  options[:order] = ORDER_CREATED_AT_ASC if options[:order].nil?
@@ -17,6 +17,7 @@ module Crunchbase
17
17
  autoload :FoundedCompany, "crunchbase/model/founded_company"
18
18
  autoload :Founder, "crunchbase/model/founder"
19
19
  autoload :Fund, "crunchbase/model/fund"
20
+ autoload :FundedOrganization, "crunchbase/model/funded_organization"
20
21
  autoload :FundingRound, "crunchbase/model/funding_round"
21
22
  autoload :Headquarter, "crunchbase/model/headquarter"
22
23
  autoload :Image, "crunchbase/model/image"
@@ -51,6 +51,12 @@ module Crunchbase::Model
51
51
  return Crunchbase::API.person_lists(permalink, self::RESOURCE_LIST, options)
52
52
  end
53
53
 
54
+ def self.funding_rounds_lists(permalink, options={})
55
+ options = options.merge({ model_name: self })
56
+
57
+ return Crunchbase::API.funding_rounds_lists(permalink, self::RESOURCE_LIST.gsub('_', '-'), options)
58
+ end
59
+
54
60
  def fetch
55
61
  fetch_object = get_fetch_object
56
62
  return [] if fetch_object.empty?
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+
3
+ module Crunchbase::Model
4
+ class FundedOrganization < Crunchbase::Model::Entity
5
+
6
+ attr_reader :type, :name, :path, :created_at, :updated_at
7
+
8
+ def initialize(json)
9
+ property_keys.each { |v|
10
+ instance_variable_set("@#{v}", json[v] || nil)
11
+ }
12
+
13
+ %w[created_at updated_at].each { |v|
14
+ instance_variable_set("@#{v}", Time.at(json[v]))
15
+ }
16
+ end
17
+
18
+ def property_keys
19
+ %w[
20
+ type name path created_at updated_at
21
+ ]
22
+ end
23
+
24
+ end
25
+ end
@@ -4,6 +4,7 @@ module Crunchbase::Model
4
4
  class FundingRound < Crunchbase::Model::Entity
5
5
 
6
6
  RESOURCE_LIST = 'funding_rounds'
7
+ RESOURCE_NAME = 'funding-rounds'
7
8
 
8
9
  attr_reader :api_path, :web_path, :funding_type, :series, :series_qualifier,
9
10
  :announced_on, :announced_on_trust_code, :closed_on, :closed_on_trust_code,
@@ -21,7 +22,7 @@ module Crunchbase::Model
21
22
 
22
23
  unless (relationships = json['relationships']).nil?
23
24
  set_relationships_object(Crunchbase::Model::Investment, 'investments', relationships['investments'])
24
- set_relationships_object(Crunchbase::Model::Organization, 'funded_organization', relationships['funded_organization'])
25
+ set_relationships_object(Crunchbase::Model::FundedOrganization, 'funded_organization', relationships['funded_organization'])
25
26
  set_relationships_object(Crunchbase::Model::Image, 'images', relationships['images'])
26
27
  set_relationships_object(Crunchbase::Model::Video, 'videos', relationships['videos'])
27
28
  set_relationships_object(Crunchbase::Model::New, 'news', relationships['news'])
@@ -43,16 +44,5 @@ module Crunchbase::Model
43
44
  %w[ announced_on closed_on ]
44
45
  end
45
46
 
46
-
47
- def set_relationships_object(object_name, key, item)
48
- return unless item
49
-
50
- instance_variable_set "@#{key}", ( object_name.new(item) || nil )
51
- instance_variable_set "@#{key}_total_items", 1
52
-
53
- super
54
- end
55
-
56
-
57
47
  end
58
48
  end
@@ -1,3 +1,3 @@
1
1
  module Crunchbase
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,39 @@
1
+ require File.join(File.dirname(__FILE__), "../..", "spec_helper.rb")
2
+
3
+ module Crunchbase
4
+ module Model
5
+
6
+ describe FundingRound, "#get" do
7
+ round = FundingRound.get('c31e2cc41e8f30c6da0aaf6b395469e5')
8
+
9
+ puts round.inspect
10
+ end
11
+
12
+ describe FundingRound, "#organization_lists" do
13
+ begin
14
+ results = FundingRound.organization_lists("xiaomi").results
15
+ results.collect {|e| puts e.funding_type }
16
+
17
+ rescue Exception => e
18
+ puts e.message
19
+ end
20
+ end
21
+
22
+ describe FundingRound, "get news" do
23
+ news = New.funding_rounds_lists('c31e2cc41e8f30c6da0aaf6b395469e5').results
24
+ puts news.map {|e| e.title }
25
+ end
26
+
27
+
28
+ describe FundingRound, "get images" do
29
+ images = Image.funding_rounds_lists('c31e2cc41e8f30c6da0aaf6b395469e5').results
30
+ puts images.map {|e| e.inspect }
31
+ end
32
+
33
+ describe FundingRound, "get investments" do
34
+ investments = Investment.funding_rounds_lists('c31e2cc41e8f30c6da0aaf6b395469e5').results
35
+ puts investments.map {|e| e.inspect }
36
+ end
37
+
38
+ end
39
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crunchbase-ruby-library
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -108,6 +108,7 @@ files:
108
108
  - lib/crunchbase/model/founded_company.rb
109
109
  - lib/crunchbase/model/founder.rb
110
110
  - lib/crunchbase/model/fund.rb
111
+ - lib/crunchbase/model/funded_organization.rb
111
112
  - lib/crunchbase/model/funding_round.rb
112
113
  - lib/crunchbase/model/headquarter.rb
113
114
  - lib/crunchbase/model/image.rb
@@ -140,6 +141,7 @@ files:
140
141
  - lib/crunchbase/version.rb
141
142
  - spec/crunchbase.yml.example
142
143
  - spec/crunchbase/model/board_members_and_advisor_spec.rb
144
+ - spec/crunchbase/model/funding_round_spec.rb
143
145
  - spec/crunchbase/model/office_spec.rb
144
146
  - spec/crunchbase/model/organization_spec.rb
145
147
  - spec/crunchbase/model/past_team_spec.rb
@@ -163,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
165
  version: '0'
164
166
  segments:
165
167
  - 0
166
- hash: -1555948034410529507
168
+ hash: 3314474323939257372
167
169
  required_rubygems_version: !ruby/object:Gem::Requirement
168
170
  none: false
169
171
  requirements:
@@ -172,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
174
  version: '0'
173
175
  segments:
174
176
  - 0
175
- hash: -1555948034410529507
177
+ hash: 3314474323939257372
176
178
  requirements: []
177
179
  rubyforge_project:
178
180
  rubygems_version: 1.8.23.2
@@ -182,6 +184,7 @@ summary: Ruby wrapper for Crunchbase API version 3
182
184
  test_files:
183
185
  - spec/crunchbase.yml.example
184
186
  - spec/crunchbase/model/board_members_and_advisor_spec.rb
187
+ - spec/crunchbase/model/funding_round_spec.rb
185
188
  - spec/crunchbase/model/office_spec.rb
186
189
  - spec/crunchbase/model/organization_spec.rb
187
190
  - spec/crunchbase/model/past_team_spec.rb