crunchbase_v2 1.0.0 → 1.1.0
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.
- 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
|