crunchbase_v2 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/crunchbase.gemspec +6 -3
- data/lib/crunchbase/cb_entity.rb +1 -1
- data/lib/crunchbase/funding_round.rb +5 -1
- data/lib/crunchbase/headquarter.rb +12 -7
- data/lib/crunchbase/version.rb +1 -1
- data/spec/crunchbase/acquisition_spec.rb +10 -16
- data/spec/crunchbase/board_members_and_advisor_spec.rb +3 -10
- data/spec/crunchbase/category_spec.rb +6 -13
- data/spec/crunchbase/competitor_spec.rb +4 -13
- data/spec/crunchbase/current_team_spec.rb +5 -11
- data/spec/crunchbase/customer_spec.rb +5 -13
- data/spec/crunchbase/founder_spec.rb +5 -14
- data/spec/crunchbase/funding_round_spec.rb +10 -16
- data/spec/crunchbase/headquarter_spec.rb +4 -11
- data/spec/crunchbase/investment_spec.rb +6 -14
- data/spec/crunchbase/ipo_spec.rb +13 -18
- data/spec/crunchbase/location_spec.rb +6 -8
- data/spec/crunchbase/new_item_spec.rb +10 -24
- data/spec/crunchbase/office_spec.rb +4 -13
- data/spec/crunchbase/organization_spec.rb +29 -56
- data/spec/crunchbase/past_team_spec.rb +3 -10
- data/spec/crunchbase/person_spec.rb +3 -11
- data/spec/crunchbase/primary_image_spec.rb +5 -11
- data/spec/crunchbase/product_spec.rb +14 -16
- data/spec/crunchbase/search_result_spec.rb +3 -9
- data/spec/crunchbase/search_spec.rb +9 -9
- data/spec/crunchbase/sub_organization_spec.rb +4 -14
- data/spec/crunchbase/website_spec.rb +4 -19
- data/spec/spec_helper.rb +14 -0
- data/spec/support/shared_examples.rb +10 -0
- metadata +59 -6
data/.gitignore
CHANGED
data/crunchbase.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'crunchbase/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "crunchbase_v2"
|
8
8
|
spec.version = Crunchbase::VERSION
|
9
|
-
spec.authors = ["Encore Shao"]
|
10
|
-
spec.email = ["encore.shao@gmail.com"]
|
9
|
+
spec.authors = ["Encore Shao", "Mark", "Ladislav Martincik"]
|
10
|
+
spec.email = ["encore.shao@gmail.com", "ladislav.martincik@gmail.com"]
|
11
11
|
spec.summary = %q{ Ruby wrapper for Crunchbase API version 2 }
|
12
12
|
spec.description = %q{ Ruby wrapper for Crunchbase API version 2 }
|
13
13
|
spec.homepage = "https://github.com/encoreshao/crunchbase_v2"
|
@@ -20,5 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec", "~>
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
24
|
+
spec.add_development_dependency "rspec-its"
|
25
|
+
spec.add_development_dependency "webmock"
|
26
|
+
spec.add_development_dependency "vcr"
|
24
27
|
end
|
data/lib/crunchbase/cb_entity.rb
CHANGED
@@ -15,7 +15,7 @@ module Crunchbase
|
|
15
15
|
def self.search(options)
|
16
16
|
return [] unless self == Crunchbase::Organization
|
17
17
|
|
18
|
-
return Search.new options, API.search( options, self::RESOURCE_LIST )
|
18
|
+
return Search.new options, API.search( options, self::RESOURCE_LIST ), SearchResult
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.lists_for_permalink(permalink, options={})
|
@@ -26,7 +26,11 @@ module Crunchbase
|
|
26
26
|
@funding_type = properties['funding_type']
|
27
27
|
@permalink = properties['permalink']
|
28
28
|
@money_raised_usd = properties['money_raised_usd']
|
29
|
-
|
29
|
+
if (properties['announced_on'].blank? || properties['announced_on'] == "0000-01-01")
|
30
|
+
@announced_on = nil
|
31
|
+
else
|
32
|
+
@announced_on = DateTime.parse(properties['announced_on'])
|
33
|
+
end
|
30
34
|
@announced_on_trust_code = properties['announced_on_trust_code']
|
31
35
|
@canonical_currency_code = properties['canonical_currency_code']
|
32
36
|
@money_raised = properties['money_raised']
|
@@ -4,25 +4,30 @@
|
|
4
4
|
|
5
5
|
module Crunchbase
|
6
6
|
class Headquarter < CBEntity
|
7
|
-
|
7
|
+
|
8
8
|
RESOURCE_LIST = 'headquarters'
|
9
9
|
|
10
|
-
attr_reader :type_name, :name, :street_1, :street_2, :
|
11
|
-
:region, :
|
12
|
-
|
10
|
+
attr_reader :type_name, :name, :street_1, :street_2, :postal_code, :city, :city_path,
|
11
|
+
:region, :region_path, :country, :country_path, :latitude, :longitude,
|
12
|
+
:created_at, :updated_at
|
13
|
+
|
13
14
|
def initialize(json)
|
14
15
|
@type_name = json['type']
|
15
16
|
@name = json['name']
|
16
17
|
@street_1 = json['street_1']
|
17
18
|
@street_2 = json['street_2']
|
19
|
+
@postal_code = json['postal_code']
|
18
20
|
@city = json['city']
|
19
|
-
@city_uuid = json['city_uuid']
|
20
21
|
@city_path = json['city_path']
|
21
22
|
@region = json['region']
|
22
|
-
@
|
23
|
+
@region_path = json['region_path']
|
24
|
+
@country = json['country']
|
25
|
+
@country_path = json['country_path']
|
26
|
+
@latitude = json['latitude']
|
27
|
+
@longitude = json['longitude']
|
23
28
|
@created_at = Time.at(json['created_at']).utc
|
24
29
|
@updated_at = Time.at(json['updated_at']).utc
|
25
30
|
end
|
26
31
|
|
27
32
|
end
|
28
|
-
end
|
33
|
+
end
|
data/lib/crunchbase/version.rb
CHANGED
@@ -1,26 +1,20 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Acquisition do
|
4
|
+
describe Acquisition, :vcr do
|
5
|
+
describe 'a list' do
|
6
|
+
subject { Acquisition.lists_for_permalink("facebook") }
|
5
7
|
|
6
|
-
|
7
|
-
before(:all) do
|
8
|
-
@all_acquisitions = Acquisition.lists_for_permalink("facebook")
|
9
|
-
end
|
8
|
+
its(:size) { should eq(49) }
|
10
9
|
|
11
|
-
|
12
|
-
@all_acquisitions.per_page.should == 1000
|
13
|
-
@all_acquisitions.current_page.should == 1
|
14
|
-
@all_acquisitions.size.should == 49
|
15
|
-
end
|
10
|
+
it_has_behavior 'pagination'
|
16
11
|
end
|
17
|
-
|
18
|
-
it "should pull from web api" do
|
19
|
-
acquisition = Acquisition.get("7a3d7915ed43073c0e4b5b0d7601def8")
|
20
12
|
|
21
|
-
|
22
|
-
|
23
|
-
end
|
13
|
+
describe 'an entity' do
|
14
|
+
subject { Acquisition.get("7a3d7915ed43073c0e4b5b0d7601def8") }
|
24
15
|
|
16
|
+
its(:name) { should eq('Acquisition') }
|
17
|
+
its(:permalink) { should eq('7a3d7915ed43073c0e4b5b0d7601def8') }
|
18
|
+
end
|
25
19
|
end
|
26
20
|
end
|
@@ -1,16 +1,9 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe BoardMembersAndAdvisor do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
@all_board_members_and_advisors = BoardMembersAndAdvisor.lists_for_permalink("facebook")
|
8
|
-
end
|
4
|
+
describe BoardMembersAndAdvisor, :vcr do
|
5
|
+
subject { BoardMembersAndAdvisor.lists_for_permalink("facebook") }
|
9
6
|
|
10
|
-
|
11
|
-
@all_board_members_and_advisors.per_page.should == 1000
|
12
|
-
@all_board_members_and_advisors.current_page.should == 1
|
13
|
-
end
|
14
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
15
8
|
end
|
16
9
|
end
|
@@ -1,25 +1,18 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Category do
|
4
|
+
describe Category, :vcr do
|
5
|
+
subject { Category.lists_for_permalink("facebook") }
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 7
|
9
|
+
|
10
|
+
its(:size) { should eq(7) }
|
10
11
|
|
11
|
-
it "should pull from web api" do
|
12
|
-
@all_categories.per_page.should == 1000
|
13
|
-
@all_categories.current_page.should == 1
|
14
|
-
@all_categories.size.should == 7
|
15
|
-
@all_categories.items.count.should == 7
|
16
|
-
end
|
17
|
-
end
|
18
12
|
|
19
13
|
it "return categories lists" do
|
20
14
|
results = Category.list(1)
|
21
15
|
results.per_page.should == 1000
|
22
16
|
end
|
23
|
-
|
24
17
|
end
|
25
18
|
end
|
@@ -1,19 +1,10 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Competitor do
|
5
|
-
|
6
|
-
describe "advanced indexing" do
|
7
|
-
before(:all) do
|
8
|
-
@all_competitors = Competitor.lists_for_permalink("facebook")
|
9
|
-
end
|
4
|
+
describe Competitor, :vcr do
|
5
|
+
subject { Competitor.lists_for_permalink("facebook") }
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
@all_competitors.current_page.should == 1
|
14
|
-
@all_competitors.size.should == 9
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
its(:size) { should eq(9) }
|
18
9
|
end
|
19
10
|
end
|
@@ -1,17 +1,11 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe CurrentTeam do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
@all_current_teams = CurrentTeam.lists_for_permalink("facebook")
|
8
|
-
end
|
4
|
+
describe CurrentTeam, :vcr do
|
5
|
+
subject { CurrentTeam.lists_for_permalink("facebook") }
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
@all_current_teams.size.should == 137
|
14
|
-
end
|
15
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
|
9
|
+
its(:size) { should eq(139) }
|
16
10
|
end
|
17
11
|
end
|
@@ -1,20 +1,12 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Customer do
|
4
|
+
describe Customer, :vcr do
|
5
|
+
subject { Customer.lists_for_permalink("facebook") }
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
@all_customers = Customer.lists_for_permalink("facebook")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should pull from web api" do
|
12
|
-
@all_customers.per_page.should == 1000
|
13
|
-
@all_customers.current_page.should == 1
|
14
|
-
@all_customers.size.should == 1
|
15
|
-
@all_customers.items.count.should == 1
|
16
|
-
end
|
17
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 1
|
18
9
|
|
10
|
+
its(:size) { should eq(1) }
|
19
11
|
end
|
20
12
|
end
|
@@ -1,20 +1,11 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Founder do
|
5
|
-
|
6
|
-
describe "advanced indexing" do
|
7
|
-
before(:all) do
|
8
|
-
@all_founders = Founder.lists_for_permalink("facebook")
|
9
|
-
end
|
4
|
+
describe Founder, :vcr do
|
5
|
+
subject { Founder.lists_for_permalink("facebook") }
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
@all_founders.size.should == 5
|
15
|
-
@all_founders.items.count.should == 5
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
7
|
+
it_behaves_like 'a container', 5
|
8
|
+
|
9
|
+
its(:size) { should eq(5) }
|
19
10
|
end
|
20
11
|
end
|
@@ -1,26 +1,20 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe FundingRound do
|
4
|
+
describe FundingRound, :vcr do
|
5
|
+
describe 'a list' do
|
6
|
+
subject { FundingRound.lists_for_permalink("facebook") }
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
@all_funding_rounds = FundingRound.lists_for_permalink("facebook")
|
9
|
-
end
|
8
|
+
it_has_behavior 'pagination'
|
9
|
+
it_behaves_like 'a container', 11
|
10
10
|
|
11
|
-
|
12
|
-
@all_funding_rounds.per_page.should == 1000
|
13
|
-
@all_funding_rounds.current_page.should == 1
|
14
|
-
@all_funding_rounds.size.should == 11
|
15
|
-
@all_funding_rounds.items.count.should == 11
|
16
|
-
end
|
11
|
+
its(:size) { should eq(11) }
|
17
12
|
end
|
18
|
-
|
19
|
-
it "should pull from web api" do
|
20
|
-
funding_round = FundingRound.get("37bd05f961af726ba3c1b279da842805")
|
21
13
|
|
22
|
-
|
23
|
-
|
14
|
+
describe 'an entity' do
|
15
|
+
subject { FundingRound.get("37bd05f961af726ba3c1b279da842805") }
|
24
16
|
|
17
|
+
its(:permalink) { should eq('37bd05f961af726ba3c1b279da842805') }
|
18
|
+
end
|
25
19
|
end
|
26
20
|
end
|
@@ -1,17 +1,10 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Headquarter do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
@all_headquarters = Headquarter.lists_for_permalink("facebook")
|
8
|
-
end
|
4
|
+
describe Headquarter, :vcr do
|
5
|
+
subject { Headquarter.lists_for_permalink("facebook") }
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
@all_headquarters.current_page.should == 1
|
13
|
-
@all_headquarters.items.count.should == 1
|
14
|
-
end
|
15
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 1
|
16
9
|
end
|
17
10
|
end
|
@@ -1,20 +1,12 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Investment do
|
5
|
-
|
6
|
-
describe "advanced indexing" do
|
7
|
-
before(:all) do
|
8
|
-
@all_investments = Investment.lists_for_permalink("facebook")
|
9
|
-
end
|
4
|
+
describe Investment, :vcr do
|
5
|
+
subject { Investment.lists_for_permalink("facebook") }
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
@all_investments.items.count.should == 3
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 3
|
9
|
+
|
10
|
+
its(:size) { should eq(3) }
|
19
11
|
end
|
20
12
|
end
|
data/spec/crunchbase/ipo_spec.rb
CHANGED
@@ -1,29 +1,24 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Ipo do
|
4
|
+
describe Ipo, :vcr do
|
5
|
+
describe 'a list' do
|
6
|
+
subject { Ipo.lists_for_permalink("facebook") }
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
@all_ipos = Ipo.lists_for_permalink("facebook")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should pull from web api" do
|
12
|
-
@all_ipos.per_page.should == 1000
|
13
|
-
@all_ipos.current_page.should == 1
|
14
|
-
@all_ipos.size.should == 3
|
15
|
-
@all_ipos.items.count.should == 3
|
8
|
+
it_has_behavior 'pagination'
|
9
|
+
it_behaves_like 'a container', 3
|
16
10
|
|
17
|
-
|
18
|
-
end
|
11
|
+
its(:size) { should eq(3) }
|
19
12
|
end
|
20
13
|
|
21
|
-
|
22
|
-
|
14
|
+
describe 'an entity' do
|
15
|
+
subject { Ipo.get("a3bc391490d52ba8529d1cfc20550a87") }
|
23
16
|
|
24
|
-
|
25
|
-
ipo.funded_companies[0].name.should == 'Facebook'
|
26
|
-
end
|
17
|
+
its(:permalink) { should eq('a3bc391490d52ba8529d1cfc20550a87') }
|
27
18
|
|
19
|
+
it 'has correct funded companies' do
|
20
|
+
expect(subject.funded_companies[0].name).to eq('Facebook')
|
21
|
+
end
|
22
|
+
end
|
28
23
|
end
|
29
24
|
end
|
@@ -1,16 +1,14 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Location do
|
4
|
+
describe Location, :vcr do
|
5
|
+
subject { Location.list(1) }
|
5
6
|
|
6
|
-
|
7
|
-
results = Location.list(1)
|
7
|
+
it_has_behavior 'pagination'
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
puts results.items.first(3).inspect
|
13
|
-
end
|
9
|
+
# it "return location lists" do
|
10
|
+
# puts results.items.first(3).inspect
|
11
|
+
# end
|
14
12
|
|
15
13
|
end
|
16
14
|
end
|
@@ -1,33 +1,19 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe NewItem do
|
4
|
+
describe NewItem, :vcr do
|
5
|
+
subject { NewItem.lists_for_permalink("facebook") }
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
@all_news = NewItem.lists_for_permalink("facebook")
|
9
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 1000
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
@all_news.per_page.should == 1000
|
16
|
-
@all_news.current_page.should == 1
|
17
|
-
end
|
10
|
+
describe 'paging' do
|
11
|
+
let(:page) { 4 }
|
12
|
+
subject { NewItem.lists_for_permalink("facebook", {page: page}) }
|
18
13
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
it "Fetched all news data paging" do
|
25
|
-
page = 4
|
26
|
-
second_news = NewItem.lists_for_permalink("facebook", {page: page})
|
27
|
-
|
28
|
-
second_news.next_page_url.should == nil
|
29
|
-
second_news.per_page.should == 1000
|
30
|
-
second_news.current_page.should == page
|
14
|
+
its(:next_page_url) { should be nil }
|
15
|
+
its(:per_page) { should eq(1000) }
|
16
|
+
its(:current_page) { should eq(page) }
|
31
17
|
end
|
32
18
|
end
|
33
19
|
end
|
@@ -1,19 +1,10 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Office do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
@all_offices = Office.lists_for_permalink("facebook")
|
8
|
-
end
|
4
|
+
describe Office, :vcr do
|
5
|
+
subject { Office.lists_for_permalink("facebook") }
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
@all_offices.current_page.should == 1
|
13
|
-
@all_offices.items.count.should == 3
|
14
|
-
|
15
|
-
puts @all_offices.items.inspect
|
16
|
-
end
|
17
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 3
|
18
9
|
end
|
19
10
|
end
|
@@ -1,62 +1,35 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Organization do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
@company.products_total_items.should == 16
|
34
|
-
@company.sub_organizations_total_items.should == 2
|
35
|
-
|
36
|
-
@company.past_teams_total_items.should == 186
|
37
|
-
@company.current_teams_total_items.should == 137
|
38
|
-
@company.acquisitions_total_items.should == 49
|
39
|
-
@company.offices_total_items.should == 3
|
40
|
-
@company.headquarters_total_items.should == 1
|
41
|
-
@company.categories_total_items.should == 7
|
42
|
-
@company.investments_total_items.should == 3
|
43
|
-
@company.primary_images_total_items.should == 1
|
44
|
-
@company.images_total_items.should == 1
|
45
|
-
@company.websites_total_items.should == 6
|
46
|
-
@company.new_items_total_items.should == 3116
|
47
|
-
@company.board_members_and_advisors_total_items.should == 12
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
it "Search organizations by name" do
|
54
|
-
results = Organization.search({ domain_name: "facebook.com", organization_types: 'company' })
|
55
|
-
|
56
|
-
results.per_page.should == 1000
|
57
|
-
results.current_page.should == 1
|
58
|
-
puts results.results[0].inspect
|
4
|
+
describe Organization, :vcr do
|
5
|
+
subject { Organization.get("facebook") }
|
6
|
+
|
7
|
+
its(:name) { should eq('Facebook') }
|
8
|
+
its(:competitors_total_items) { should eq(9) }
|
9
|
+
its(:customers_total_items) { should eq(1) }
|
10
|
+
its(:founders_total_items) { should eq(5) }
|
11
|
+
its(:funding_rounds_total_items) { should eq(11) }
|
12
|
+
its(:ipos_total_items) { should eq(3) }
|
13
|
+
its(:products_total_items) { should eq(17) }
|
14
|
+
its(:sub_organizations_total_items) { should eq(2) }
|
15
|
+
|
16
|
+
its(:past_teams_total_items) { should eq(187) }
|
17
|
+
its(:current_teams_total_items) { should eq(139) }
|
18
|
+
its(:acquisitions_total_items) { should eq(49) }
|
19
|
+
its(:offices_total_items) { should eq(3) }
|
20
|
+
its(:headquarters_total_items) { should eq(1) }
|
21
|
+
its(:categories_total_items) { should eq(7) }
|
22
|
+
its(:investments_total_items) { should eq(3) }
|
23
|
+
its(:primary_images_total_items) { should eq(1) }
|
24
|
+
its(:images_total_items) { should eq(1) }
|
25
|
+
its(:websites_total_items) { should eq(6) }
|
26
|
+
its(:new_items_total_items) { should eq(3118) }
|
27
|
+
its(:board_members_and_advisors_total_items) { should eq(12) }
|
28
|
+
|
29
|
+
describe '.search' do
|
30
|
+
subject { Organization.search({ domain_name: "facebook.com", organization_types: 'company' }) }
|
31
|
+
|
32
|
+
it_has_behavior 'pagination'
|
59
33
|
end
|
60
|
-
|
61
34
|
end
|
62
35
|
end
|
@@ -1,16 +1,9 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe PastTeam do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
@all_past_teams = PastTeam.lists_for_permalink("facebook")
|
8
|
-
end
|
4
|
+
describe PastTeam, :vcr do
|
5
|
+
subject { PastTeam.lists_for_permalink("facebook") }
|
9
6
|
|
10
|
-
|
11
|
-
@all_past_teams.per_page.should == 1000
|
12
|
-
@all_past_teams.current_page.should == 1
|
13
|
-
end
|
14
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
15
8
|
end
|
16
9
|
end
|
@@ -2,18 +2,10 @@ require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
|
2
2
|
require 'json'
|
3
3
|
|
4
4
|
module Crunchbase
|
5
|
-
describe Person do
|
6
|
-
|
7
|
-
before(:all) do
|
8
|
-
@all_person = Person.list
|
9
|
-
end
|
5
|
+
describe Person, :vcr do
|
6
|
+
subject { Person.list }
|
10
7
|
|
11
|
-
|
12
|
-
@all_person.per_page.should == 1000
|
13
|
-
@all_person.current_page.should == 1
|
14
|
-
puts @all_person.results[0..10].inspect
|
15
|
-
end
|
16
|
-
end
|
8
|
+
it_has_behavior 'pagination'
|
17
9
|
|
18
10
|
# it "should pull from web api" do
|
19
11
|
# person = Crunchbase::Person.get('eduardo-saverin')
|
@@ -1,20 +1,14 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe PrimaryImage do
|
4
|
+
describe PrimaryImage, :vcr do
|
5
|
+
subject { PrimaryImage.lists_for_permalink("facebook") }
|
5
6
|
|
6
|
-
|
7
|
-
before(:all) do
|
8
|
-
@all_primary_image = PrimaryImage.lists_for_permalink("facebook")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should pull from web api" do
|
12
|
-
@all_primary_image.per_page.should == 1000
|
13
|
-
@all_primary_image.current_page.should == 1
|
14
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
15
8
|
|
9
|
+
describe "advanced indexing" do
|
16
10
|
it "should get a company all primary image list" do
|
17
|
-
|
11
|
+
subject.items[0].title.should == nil
|
18
12
|
end
|
19
13
|
end
|
20
14
|
end
|
@@ -1,22 +1,20 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Product do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
19
|
-
|
4
|
+
describe Product, :vcr do
|
5
|
+
subject { Product.lists_for_permalink("facebook") }
|
6
|
+
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
|
9
|
+
its(:size) { should eq(17) }
|
10
|
+
|
11
|
+
# describe "advanced indexing" do
|
12
|
+
|
13
|
+
# it "should pull from web api" do
|
14
|
+
# @all_products.results.count.should == 16
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
|
20
18
|
# it "should pull from web api" do
|
21
19
|
# product = Product.get("internet-org")
|
22
20
|
|
@@ -2,15 +2,9 @@ require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
|
2
2
|
require 'net/http'
|
3
3
|
|
4
4
|
module Crunchbase
|
5
|
-
describe SearchResult do
|
6
|
-
|
7
|
-
before(:all) do
|
8
|
-
@result = Search.find('google').results[0]
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should return the entity which is named" do
|
12
|
-
@result.name.should == 'Google'
|
13
|
-
end
|
5
|
+
describe SearchResult, :vcr do
|
6
|
+
subject { Search.find('google').results[0] }
|
14
7
|
|
8
|
+
its(:name) { should eq('Google') }
|
15
9
|
end
|
16
10
|
end
|
@@ -2,16 +2,16 @@ require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
|
2
2
|
require 'net/http'
|
3
3
|
|
4
4
|
module Crunchbase
|
5
|
-
describe Search do
|
5
|
+
describe Search, :vcr do
|
6
6
|
|
7
|
-
it "should retrieve search results" do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
7
|
+
# it "should retrieve search results" do
|
8
|
+
# s = Search.search('google')
|
9
|
+
# puts s.total_items
|
10
|
+
# puts s.per_page
|
11
|
+
# puts s.pages
|
12
|
+
# puts s.current_page
|
13
|
+
# s.results.each { |result| puts result.name }
|
14
|
+
# end
|
15
15
|
|
16
16
|
end
|
17
17
|
end
|
@@ -1,21 +1,11 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe SubOrganization do
|
5
|
-
|
6
|
-
describe "advanced indexing" do
|
7
|
-
before(:all) do
|
8
|
-
@all_sub_organizations = SubOrganization.lists_for_permalink("facebook")
|
9
|
-
end
|
4
|
+
describe SubOrganization, :vcr do
|
5
|
+
subject { SubOrganization.lists_for_permalink("facebook") }
|
10
6
|
|
11
|
-
|
12
|
-
@all_sub_organizations.per_page.should == 1000
|
13
|
-
@all_sub_organizations.current_page.should == 1
|
14
|
-
@all_sub_organizations.size.should == 2
|
7
|
+
it_has_behavior 'pagination'
|
15
8
|
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
9
|
+
its(:size) { should eq(2) }
|
20
10
|
end
|
21
11
|
end
|
@@ -1,25 +1,10 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
2
2
|
|
3
3
|
module Crunchbase
|
4
|
-
describe Website do
|
4
|
+
describe Website, :vcr do
|
5
|
+
subject { Website.lists_for_permalink("facebook") }
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
@all_websites = Website.lists_for_permalink("facebook")
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should pull from web api" do
|
12
|
-
puts @all_websites.items.first.title
|
13
|
-
puts @all_websites.next_page_url
|
14
|
-
|
15
|
-
@all_websites.per_page.should == 1000
|
16
|
-
@all_websites.current_page.should == 1
|
17
|
-
@all_websites.items.count.should == 6
|
18
|
-
end
|
19
|
-
|
20
|
-
it "Show Top 8 websites" do
|
21
|
-
puts @all_websites.items.inspect
|
22
|
-
end
|
23
|
-
end
|
7
|
+
it_has_behavior 'pagination'
|
8
|
+
it_behaves_like 'a container', 6
|
24
9
|
end
|
25
10
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,24 @@
|
|
1
1
|
$LOAD_PATH << File.join(File.dirname(__FILE__), "..", "lib")
|
2
2
|
require 'rspec'
|
3
|
+
require 'rspec/its'
|
3
4
|
require 'crunchbase'
|
4
5
|
require 'date'
|
5
6
|
require 'yaml'
|
7
|
+
require 'vcr'
|
6
8
|
|
7
9
|
yaml = YAML.load_file(File.join(File.dirname(__FILE__),'apikey.yml'))
|
8
10
|
|
9
11
|
Crunchbase::API.key = yaml["key"]
|
10
12
|
Crunchbase::API.debug = yaml["debug"]
|
13
|
+
|
14
|
+
VCR.configure do |c|
|
15
|
+
c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
16
|
+
c.hook_into :webmock
|
17
|
+
c.configure_rspec_metadata!
|
18
|
+
end
|
19
|
+
|
20
|
+
RSpec.configure do |c|
|
21
|
+
c.alias_it_should_behave_like_to :it_has_behavior, 'has behavior:'
|
22
|
+
end
|
23
|
+
|
24
|
+
Dir["./spec/support/**/*.rb"].sort.each { |f| require f}
|
metadata
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crunchbase_v2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Encore Shao
|
9
|
+
- Mark
|
10
|
+
- Ladislav Martincik
|
9
11
|
autorequire:
|
10
12
|
bindir: bin
|
11
13
|
cert_chain: []
|
12
|
-
date: 2015-
|
14
|
+
date: 2015-03-17 00:00:00.000000000 Z
|
13
15
|
dependencies:
|
14
16
|
- !ruby/object:Gem::Dependency
|
15
17
|
name: bundler
|
@@ -50,7 +52,7 @@ dependencies:
|
|
50
52
|
requirements:
|
51
53
|
- - ~>
|
52
54
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
55
|
+
version: '3.0'
|
54
56
|
type: :development
|
55
57
|
prerelease: false
|
56
58
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,10 +60,59 @@ dependencies:
|
|
58
60
|
requirements:
|
59
61
|
- - ~>
|
60
62
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
63
|
+
version: '3.0'
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: rspec-its
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
type: :development
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: webmock
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: vcr
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
62
112
|
description: ! ' Ruby wrapper for Crunchbase API version 2 '
|
63
113
|
email:
|
64
114
|
- encore.shao@gmail.com
|
115
|
+
- ladislav.martincik@gmail.com
|
65
116
|
executables: []
|
66
117
|
extensions: []
|
67
118
|
extra_rdoc_files: []
|
@@ -140,6 +191,7 @@ files:
|
|
140
191
|
- spec/fixtures/organization-facebook.js
|
141
192
|
- spec/fixtures/person-randi-zuckerberg.js
|
142
193
|
- spec/spec_helper.rb
|
194
|
+
- spec/support/shared_examples.rb
|
143
195
|
homepage: https://github.com/encoreshao/crunchbase_v2
|
144
196
|
licenses:
|
145
197
|
- MIT
|
@@ -155,7 +207,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
155
207
|
version: '0'
|
156
208
|
segments:
|
157
209
|
- 0
|
158
|
-
hash: -
|
210
|
+
hash: -3668500788587651473
|
159
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
212
|
none: false
|
161
213
|
requirements:
|
@@ -164,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
216
|
version: '0'
|
165
217
|
segments:
|
166
218
|
- 0
|
167
|
-
hash: -
|
219
|
+
hash: -3668500788587651473
|
168
220
|
requirements: []
|
169
221
|
rubyforge_project:
|
170
222
|
rubygems_version: 1.8.23.2
|
@@ -203,3 +255,4 @@ test_files:
|
|
203
255
|
- spec/fixtures/organization-facebook.js
|
204
256
|
- spec/fixtures/person-randi-zuckerberg.js
|
205
257
|
- spec/spec_helper.rb
|
258
|
+
- spec/support/shared_examples.rb
|