crunchbase-api 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +25 -0
- data/.travis.yml +7 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +128 -0
- data/Rakefile +10 -0
- data/crunchbase-api.gemspec +28 -0
- data/lib/crunchbase-api.rb +50 -0
- data/lib/crunchbase-api/acquisition.rb +42 -0
- data/lib/crunchbase-api/configuration.rb +23 -0
- data/lib/crunchbase-api/crunchbase_exception.rb +4 -0
- data/lib/crunchbase-api/entity.rb +47 -0
- data/lib/crunchbase-api/funding_round.rb +42 -0
- data/lib/crunchbase-api/ipo.rb +48 -0
- data/lib/crunchbase-api/organization.rb +61 -0
- data/lib/crunchbase-api/person.rb +47 -0
- data/lib/crunchbase-api/product.rb +41 -0
- data/lib/crunchbase-api/relation.rb +30 -0
- data/lib/crunchbase-api/version.rb +3 -0
- data/test/crunchbase-api/acquisition_test.rb +32 -0
- data/test/crunchbase-api/funding_round_test.rb +28 -0
- data/test/crunchbase-api/ipo_test.rb +30 -0
- data/test/crunchbase-api/organization_test.rb +75 -0
- data/test/crunchbase-api/person_test.rb +52 -0
- data/test/crunchbase-api/product_test.rb +40 -0
- data/test/crunchbase-api/version_test.rb +7 -0
- data/test/helper.rb +20 -0
- data/test/user_key.example.yml +1 -0
- metadata +179 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ef9073779e5e711bc290b94082c9d1d6667454b8
|
4
|
+
data.tar.gz: 1ab2c2bd7d8a37b10b4c375afa31f658fd30f7da
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c17a069e9b15294c49bd57b6dbb0e1410727c5720e7a4c63dd5fd86e9e2a9fcfa55ffaaf41368be291d1ef532362618c3c1aab864f3912b5fd8239a3f56a307a
|
7
|
+
data.tar.gz: 0666f64d10d757fafbd982c34104ffc151f85ea622a12bd1f1dfa0be6dd545d16f1ff99a28cb92dd0264a5d536194fa8f031a79b46bbcefaae75f30b7ed9b846
|
data/.gitignore
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
23
|
+
.idea/
|
24
|
+
test/user_key.yml
|
25
|
+
test/cassettes/
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 sandisk
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
# Crunchbase API
|
2
|
+
|
3
|
+
An API wrapper for [Crunchbase API](https://developer.crunchbase.com/docs) version 2.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'crunchbase-api'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install crunchbase-api
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
You will need a Crunchbase API key. You can get one by [signing up here](https://developer.crunchbase.com).
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
require 'crunchbase-api'
|
25
|
+
Crunchbase.user_key = 'YOUR_API_KEY'
|
26
|
+
```
|
27
|
+
|
28
|
+
### Example
|
29
|
+
```ruby
|
30
|
+
# Print acquisitions done by Facebook
|
31
|
+
company = Crunchbase::Organization.get 'facebook'
|
32
|
+
company.acquisitions.each do |a|
|
33
|
+
acquisition = a.fetch
|
34
|
+
sum = acquisition.price.nil? ? 'Unknown amount' : "#{acquisition.price} #{acquisition.price_currency_code}"
|
35
|
+
puts "#{acquisition.announced_on.to_s}: #{acquisition.name} (#{sum})"
|
36
|
+
end
|
37
|
+
|
38
|
+
# 2014-07-02: Acquisition (500000000 USD)
|
39
|
+
# 2014-06-03: Acquisition (Unknown amount)
|
40
|
+
# 2014-04-24: Acquisition (Unknown amount)
|
41
|
+
# 2014-03-25: Facebook acquired Oculus VR (2000000000 USD)
|
42
|
+
# 2014-02-19: Facebook acquired WhatsApp (19000000000 USD)
|
43
|
+
# 2014-01-13: Facebook acquired Branch (15000000 USD)
|
44
|
+
# 2014-01-08: Facebook acquired Little Eye Labs (Unknown amount)
|
45
|
+
# 2013-12-17: Facebook acquired SportStream (Unknown amount)
|
46
|
+
```
|
47
|
+
|
48
|
+
### Notes
|
49
|
+
Failed requests (such as the ones requesting non-existent entities) will throw `Crunchbase::CrunchbaseException`.
|
50
|
+
##### Ordering
|
51
|
+
`.list` methods take an `order` argument. Valid options are `Crunchbase::ORDER_CREATED_AT_DESC` (default), `Crunchbase::ORDER_CREATED_AT_ASC`, `Crunchbase::ORDER_UPDATED_AT_DESC` and `Crunchbase::ORDER_UPDATED_AT_ASC`.
|
52
|
+
##### Relation objects
|
53
|
+
`.list` methods return an array of `Relation` objects, as do the relationship getters for most individual entities. These are summary objects returned by Crunchbase API, containing `type` and `name` of the target entity, along with timestamps. You can retrieve the "full" entity by calling `.fetch` method on the relation object.
|
54
|
+
|
55
|
+
--
|
56
|
+
|
57
|
+
### Organizations
|
58
|
+
|
59
|
+
**Organization.get** – Retrieve an organization by permalink
|
60
|
+
```ruby
|
61
|
+
Crunchbase::Organization.get(permalink)
|
62
|
+
```
|
63
|
+
Properties: `name`, `permalink`, `description`, `short_description`, `homepage_url`, `founded_on`, `is_closed`, `closed_on`, `primary_role`, `total_funding_usd`, `number_of_investments`, `number_of_employees`, `stock_symbol`, `stock_exchange`, `created_at`, `updated_at`.
|
64
|
+
|
65
|
+
Relationships: `competitors`, `funding_rounds`, `founders`, `products`, `acquisitions`, `ipo`.
|
66
|
+
|
67
|
+
|
68
|
+
**Organization.list** – Retrieves a list of organizations
|
69
|
+
```ruby
|
70
|
+
Crunchbase::Organization.list(page, order)
|
71
|
+
```
|
72
|
+
--
|
73
|
+
|
74
|
+
### People
|
75
|
+
|
76
|
+
**Person.get** – Retrieve a person profile by permalink
|
77
|
+
```ruby
|
78
|
+
Crunchbase::Person.get(permalink)
|
79
|
+
```
|
80
|
+
Properties: `first_name`, `last_name`, `permalink`, `bio`, `born_on`, `died_on`, `is_deceased`, `location_uuid`, `created_at`, `updated_at`.
|
81
|
+
|
82
|
+
Relationships: `founded_companies`.
|
83
|
+
|
84
|
+
|
85
|
+
**Person.list** – Retrieve a list of people
|
86
|
+
```ruby
|
87
|
+
Crunchbase::Person.list(page, order)
|
88
|
+
```
|
89
|
+
--
|
90
|
+
|
91
|
+
### Products
|
92
|
+
|
93
|
+
**Product.get** – Retrieve product details by permalink
|
94
|
+
```ruby
|
95
|
+
Crunchbase::Product.get(permalink)
|
96
|
+
```
|
97
|
+
Properties: `name`, `permalink`, `lifecycle_stage`, `owner_id`, `launched_on`, `died_on`, `created_at`, `updated_at`.
|
98
|
+
|
99
|
+
**Product.list** – Retrieve a list of products
|
100
|
+
```ruby
|
101
|
+
Crunchbase::Product.list(page, order)
|
102
|
+
```
|
103
|
+
--
|
104
|
+
|
105
|
+
### Funding rounds, Acquisitions and IPOs
|
106
|
+
**FundingRound.get** – Retrieve information about funding round by uuid
|
107
|
+
```ruby
|
108
|
+
Crunchbase::FundingRound.get(uuid)
|
109
|
+
```
|
110
|
+
Properties: `name`, `permalink`, `funding_type`, `money_raised`, `money_raised_currency_code`, `announced_on`, `canonical_currency_code`, `created_at`, `updated_at`.
|
111
|
+
|
112
|
+
Relationships: `funded_organization`.
|
113
|
+
|
114
|
+
**Acquisition.get** – Retrieve information about acquisition by uuid
|
115
|
+
```ruby
|
116
|
+
Crunchbase::Acquisition.get(uuid)
|
117
|
+
```
|
118
|
+
Properties: `name`, `permalink`, `acquisition_type`, `price`, `price_currency_code`, `announced_on`, `disposition_of_acquired`, `created_at`, `updated_at`.
|
119
|
+
|
120
|
+
Relationships: `acquirer`, `acquiree`.
|
121
|
+
|
122
|
+
**Ipo.get** – Retrieve information about IPO by uuid
|
123
|
+
```ruby
|
124
|
+
Crunchbase::Ipo.get(uuid)
|
125
|
+
```
|
126
|
+
Properties: `name`, `permalink`, `opening_share_price`, `opening_share_price_currency_code`, `stock_symbol`, `stock_exchange_symbol`, `went_public_on`, `canonical_currency_code`, `money_raised`, `money_raised_currency_code`, `opening_valuation`, `opening_valueation_currency_code`, `created_at`, `updated_at`.
|
127
|
+
|
128
|
+
Relationships: `funded_company`.
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'crunchbase-api/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "crunchbase-api"
|
8
|
+
spec.version = Crunchbase::VERSION
|
9
|
+
spec.authors = ["Sandis Klakovskis"]
|
10
|
+
spec.email = ["m@sandis.lv"]
|
11
|
+
spec.summary = %q{Wrapper for Crunchbase API v2}
|
12
|
+
spec.description = ""
|
13
|
+
spec.homepage = "https://github.com/sandisk/crunchbase-api"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "json"
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "webmock"
|
25
|
+
spec.add_development_dependency "minitest"
|
26
|
+
spec.add_development_dependency "vcr"
|
27
|
+
spec.add_development_dependency "minitest-vcr"
|
28
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'crunchbase-api/configuration'
|
2
|
+
require 'crunchbase-api/crunchbase_exception'
|
3
|
+
require 'crunchbase-api/relation'
|
4
|
+
require 'crunchbase-api/entity'
|
5
|
+
require 'crunchbase-api/person'
|
6
|
+
require 'crunchbase-api/product'
|
7
|
+
require 'crunchbase-api/organization'
|
8
|
+
require 'crunchbase-api/acquisition'
|
9
|
+
require 'crunchbase-api/funding_round'
|
10
|
+
require 'crunchbase-api/ipo'
|
11
|
+
require 'crunchbase-api/version'
|
12
|
+
|
13
|
+
module Crunchbase
|
14
|
+
extend Configuration
|
15
|
+
|
16
|
+
ORDER_CREATED_AT_ASC = 'created_at asc'
|
17
|
+
ORDER_CREATED_AT_DESC = 'created_at desc'
|
18
|
+
ORDER_UPDATED_AT_ASC = 'updated_at asc'
|
19
|
+
ORDER_UPDATED_AT_DESC = 'updated_at desc'
|
20
|
+
|
21
|
+
class << self
|
22
|
+
|
23
|
+
def fetch(resource, data = {})
|
24
|
+
data[:user_key] = self.user_key
|
25
|
+
uri = "#{self.api_endpoint}/#{resource}?"
|
26
|
+
uri << data.map { |k, v| "#{CGI::escape(k.to_s)}=#{CGI::escape(v.to_s)}" }.join('&')
|
27
|
+
|
28
|
+
begin
|
29
|
+
response = Net::HTTP.get_response(URI.parse uri)
|
30
|
+
raise CrunchbaseException, response.body.to_s unless response.code.to_i == 200
|
31
|
+
body = response.body.to_s
|
32
|
+
rescue => e
|
33
|
+
raise CrunchbaseException, "Failed to fetch #{uri}: #{e}"
|
34
|
+
end
|
35
|
+
|
36
|
+
begin
|
37
|
+
response = JSON.parse body
|
38
|
+
rescue => e
|
39
|
+
raise CrunchbaseException, "Failed to parse response for #{uri}: #{e}"
|
40
|
+
end
|
41
|
+
|
42
|
+
if response['data']['error'] and response['data']['error']['message']
|
43
|
+
raise CrunchbaseException, response['data']['error']['message']
|
44
|
+
end
|
45
|
+
|
46
|
+
response['data']
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class Acquisition < Entity
|
4
|
+
|
5
|
+
RESOURCE_FIND = 'acquisition'
|
6
|
+
|
7
|
+
attr_reader :name
|
8
|
+
attr_reader :permalink
|
9
|
+
attr_reader :acquisition_type
|
10
|
+
attr_reader :price
|
11
|
+
attr_reader :price_currency_code
|
12
|
+
attr_reader :announced_on
|
13
|
+
attr_reader :disposition_of_acquired
|
14
|
+
attr_reader :created_at
|
15
|
+
attr_reader :updated_at
|
16
|
+
|
17
|
+
attr_reader :acquirer
|
18
|
+
attr_reader :acquiree
|
19
|
+
|
20
|
+
def self.get(uuid)
|
21
|
+
self.fetch_one uuid
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def property_keys
|
27
|
+
%w[
|
28
|
+
name permalink acquisition_type price price_currency_code announced_on disposition_of_acquired created_at updated_at
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
def date_keys
|
33
|
+
%w[announced_on]
|
34
|
+
end
|
35
|
+
|
36
|
+
def relationships
|
37
|
+
%w[acquirer acquiree]
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
module Configuration
|
3
|
+
|
4
|
+
OPTIONS = [:user_key, :api_endpoint].freeze
|
5
|
+
USER_KEY = nil
|
6
|
+
API_ENDPOINT = 'http://api.crunchbase.com/v/2'
|
7
|
+
|
8
|
+
attr_accessor *OPTIONS
|
9
|
+
|
10
|
+
def configure
|
11
|
+
yield self
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.extended(base)
|
15
|
+
base.reset
|
16
|
+
end
|
17
|
+
|
18
|
+
def reset
|
19
|
+
self.user_key, self.api_endpoint = USER_KEY, API_ENDPOINT
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'json'
|
3
|
+
require 'cgi'
|
4
|
+
require 'date'
|
5
|
+
|
6
|
+
module Crunchbase
|
7
|
+
class Entity
|
8
|
+
|
9
|
+
def initialize(data)
|
10
|
+
property_keys.each { |v| instance_variable_set("@#{v}", data['properties'][v] || nil) }
|
11
|
+
date_keys.each { |v| instance_variable_set("@#{v}", data['properties'][v].nil? ? nil : Date.parse(data['properties'][v])) }
|
12
|
+
%w[created_at updated_at].each { |v| instance_variable_set("@#{v}", Time.at(data['properties'][v])) }
|
13
|
+
relationships.each { |v| set_relationships(v, data['relationships'][v] || nil) }
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def self.fetch_one(permalink)
|
19
|
+
self.new Crunchbase::fetch("#{self::RESOURCE_FIND}/#{permalink}")
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.fetch_list(page = 1, order = ORDER_CREATED_AT_DESC)
|
23
|
+
r = Crunchbase::fetch(self::RESOURCE_LIST, {page: page, order: order})['items']
|
24
|
+
r.map { |i| Relation.new i }
|
25
|
+
end
|
26
|
+
|
27
|
+
def property_keys
|
28
|
+
[]
|
29
|
+
end
|
30
|
+
|
31
|
+
def date_keys
|
32
|
+
[]
|
33
|
+
end
|
34
|
+
|
35
|
+
def relationships
|
36
|
+
[]
|
37
|
+
end
|
38
|
+
|
39
|
+
def set_relationships(key, data)
|
40
|
+
return unless data and data['items'].respond_to?(:each)
|
41
|
+
items = []
|
42
|
+
data['items'].each { |v| items << Relation.new(v) }
|
43
|
+
instance_variable_set "@#{key}", items
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class FundingRound < Entity
|
4
|
+
|
5
|
+
RESOURCE_FIND = 'funding-round'
|
6
|
+
|
7
|
+
attr_reader :name
|
8
|
+
attr_reader :permalink
|
9
|
+
attr_reader :funding_type
|
10
|
+
attr_reader :money_raised
|
11
|
+
attr_reader :money_raised_currency_code
|
12
|
+
attr_reader :announced_on
|
13
|
+
attr_reader :canonical_currency_code
|
14
|
+
attr_reader :created_at
|
15
|
+
attr_reader :updated_at
|
16
|
+
|
17
|
+
attr_reader :funded_organization
|
18
|
+
|
19
|
+
def self.get(uuid)
|
20
|
+
self.fetch_one uuid
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def property_keys
|
26
|
+
%w[
|
27
|
+
name permalink funding_type money_raised money_raised_currency_code
|
28
|
+
announced_on canonical_currency_code created_at updated_at
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
def date_keys
|
33
|
+
%w[announced_on]
|
34
|
+
end
|
35
|
+
|
36
|
+
def relationships
|
37
|
+
%w[funded_organization]
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class Ipo < Entity
|
4
|
+
|
5
|
+
RESOURCE_FIND = 'ipo'
|
6
|
+
|
7
|
+
attr_reader :name
|
8
|
+
attr_reader :permalink
|
9
|
+
attr_reader :opening_share_price
|
10
|
+
attr_reader :opening_share_price_currency_code
|
11
|
+
attr_reader :stock_symbol
|
12
|
+
attr_reader :stock_exchange_symbol
|
13
|
+
attr_reader :went_public_on
|
14
|
+
attr_reader :canonical_currency_code
|
15
|
+
attr_reader :money_raised
|
16
|
+
attr_reader :money_raised_currency_code
|
17
|
+
attr_reader :opening_valuation
|
18
|
+
attr_reader :opening_valuation_currency_code
|
19
|
+
attr_reader :created_at
|
20
|
+
attr_reader :updated_at
|
21
|
+
|
22
|
+
attr_reader :funded_company
|
23
|
+
|
24
|
+
def self.get(uuid)
|
25
|
+
self.fetch_one uuid
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def property_keys
|
31
|
+
%w[
|
32
|
+
name permalink opening_share_price opening_share_price_currency_code stock_symbol stock_exchange_symbol went_public_on
|
33
|
+
canonical_currency_code money_raised money_raised_currency_code opening_valuation opening_valuation_currency_code
|
34
|
+
created_at updated_at
|
35
|
+
]
|
36
|
+
end
|
37
|
+
|
38
|
+
def date_keys
|
39
|
+
%w[went_public_on]
|
40
|
+
end
|
41
|
+
|
42
|
+
def relationships
|
43
|
+
%w[funded_company]
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class Organization < Entity
|
4
|
+
|
5
|
+
RESOURCE_FIND = 'organization'
|
6
|
+
RESOURCE_LIST = 'organizations'
|
7
|
+
|
8
|
+
attr_reader :name
|
9
|
+
attr_reader :permalink
|
10
|
+
attr_reader :description
|
11
|
+
attr_reader :short_description
|
12
|
+
attr_reader :homepage_url
|
13
|
+
attr_reader :founded_on
|
14
|
+
attr_reader :is_closed
|
15
|
+
attr_reader :closed_on
|
16
|
+
attr_reader :primary_role
|
17
|
+
attr_reader :total_funding_usd
|
18
|
+
attr_reader :number_of_investments
|
19
|
+
attr_reader :number_of_employees
|
20
|
+
attr_reader :stock_symbol
|
21
|
+
attr_reader :stock_exchange
|
22
|
+
attr_reader :created_at
|
23
|
+
attr_reader :updated_at
|
24
|
+
|
25
|
+
attr_reader :competitors
|
26
|
+
attr_reader :funding_rounds
|
27
|
+
attr_reader :founders
|
28
|
+
attr_reader :products
|
29
|
+
attr_reader :acquisitions
|
30
|
+
attr_reader :ipo
|
31
|
+
|
32
|
+
def self.get(permalink)
|
33
|
+
self.fetch_one permalink
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.list(page = 1, order = ORDER_CREATED_AT_DESC)
|
37
|
+
self.fetch_list page, order
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def property_keys
|
43
|
+
%w[
|
44
|
+
description short_description founded_on permalink primary_role is_closed closed_on homepage_url
|
45
|
+
name created_at updated_at total_funding_usd number_of_investments number_of_employees stock_symbol stock_exchange
|
46
|
+
]
|
47
|
+
end
|
48
|
+
|
49
|
+
def date_keys
|
50
|
+
%w[founded_on closed_on]
|
51
|
+
end
|
52
|
+
|
53
|
+
def relationships
|
54
|
+
%w[
|
55
|
+
competitors funding_rounds founders products acquisitions ipo
|
56
|
+
]
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class Person < Entity
|
4
|
+
|
5
|
+
RESOURCE_FIND = 'person'
|
6
|
+
RESOURCE_LIST = 'people'
|
7
|
+
|
8
|
+
attr_reader :first_name
|
9
|
+
attr_reader :last_name
|
10
|
+
attr_reader :permalink
|
11
|
+
attr_reader :bio
|
12
|
+
attr_reader :born_on
|
13
|
+
attr_reader :died_on
|
14
|
+
attr_reader :is_deceased
|
15
|
+
attr_reader :location_uuid
|
16
|
+
attr_reader :created_at
|
17
|
+
attr_reader :updated_at
|
18
|
+
|
19
|
+
attr_reader :founded_companies
|
20
|
+
|
21
|
+
def self.get(permalink)
|
22
|
+
self.fetch_one permalink
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.list(page = 1, order = ORDER_CREATED_AT_DESC)
|
26
|
+
self.fetch_list page, order
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def property_keys
|
32
|
+
%w[
|
33
|
+
first_name last_name permalink bio born_on died_on is_deceased location_uuid created_at updated_at
|
34
|
+
]
|
35
|
+
end
|
36
|
+
|
37
|
+
def date_keys
|
38
|
+
%w[born_on died_on]
|
39
|
+
end
|
40
|
+
|
41
|
+
def relationships
|
42
|
+
%w[founded_companies]
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class Product < Entity
|
4
|
+
|
5
|
+
RESOURCE_FIND = 'product'
|
6
|
+
RESOURCE_LIST = 'products'
|
7
|
+
|
8
|
+
attr_reader :name
|
9
|
+
attr_reader :permalink
|
10
|
+
attr_reader :lifecycle_stage
|
11
|
+
attr_reader :owner_id
|
12
|
+
attr_reader :description
|
13
|
+
attr_reader :homepage_url
|
14
|
+
attr_reader :launched_on
|
15
|
+
attr_reader :created_at
|
16
|
+
attr_reader :updated_at
|
17
|
+
|
18
|
+
def self.get(permalink)
|
19
|
+
self.fetch_one permalink
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.list(page = 1, order = ORDER_CREATED_AT_DESC)
|
23
|
+
self.fetch_list page, order
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def property_keys
|
29
|
+
%w[
|
30
|
+
lifecycle_stage owner_id description permalink homepage_url name launched_on
|
31
|
+
created_at updated_at
|
32
|
+
]
|
33
|
+
end
|
34
|
+
|
35
|
+
def date_keys
|
36
|
+
%w[launched_on]
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Crunchbase
|
2
|
+
|
3
|
+
class Relation
|
4
|
+
|
5
|
+
attr_reader :type
|
6
|
+
attr_reader :name
|
7
|
+
attr_reader :path
|
8
|
+
attr_reader :created_at
|
9
|
+
attr_reader :updated_at
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
@type = data['type']
|
13
|
+
@name = data['name']
|
14
|
+
@path = data['path']
|
15
|
+
@created_at = Time.at(data['created_at'])
|
16
|
+
@updated_at = Time.at(data['updated_at'])
|
17
|
+
end
|
18
|
+
|
19
|
+
def fetch
|
20
|
+
supported_relations = %w[Organization Person Product FundingRound Acquisition Ipo]
|
21
|
+
unless supported_relations.include?(@type)
|
22
|
+
raise CrunchbaseException, "Fetching of '#{@type}' relations is not supported at this time"
|
23
|
+
end
|
24
|
+
result = Crunchbase.fetch @path
|
25
|
+
Crunchbase.const_get(@type).new result
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe 'Acquisition', :vcr do
|
4
|
+
|
5
|
+
it 'should retrieve acquisition by uuid' do
|
6
|
+
c = Crunchbase::Acquisition.get '860a1cf3033ea1c3d16df80053360021'
|
7
|
+
c.permalink.must_equal '860a1cf3033ea1c3d16df80053360021'
|
8
|
+
c.acquisition_type.must_equal 'Acquisition'
|
9
|
+
c.announced_on.must_equal Date.new(2014, 7, 2)
|
10
|
+
c.price.must_equal 500000000
|
11
|
+
c.price_currency_code.must_equal 'USD'
|
12
|
+
c.name.wont_be_empty
|
13
|
+
c.disposition_of_acquired.must_equal 'Combined'
|
14
|
+
c.created_at.must_be_instance_of Time
|
15
|
+
c.updated_at.must_be_instance_of Time
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should return relationships' do
|
19
|
+
c = Crunchbase::Acquisition.get '860a1cf3033ea1c3d16df80053360021'
|
20
|
+
|
21
|
+
c.acquirer.first.must_be_instance_of Crunchbase::Relation
|
22
|
+
c.acquirer.first.type.must_equal 'Organization'
|
23
|
+
c.acquirer.first.name.wont_be_empty
|
24
|
+
c.acquirer.first.path.wont_be_empty
|
25
|
+
|
26
|
+
c.acquiree.first.must_be_instance_of Crunchbase::Relation
|
27
|
+
c.acquiree.first.type.must_equal 'Organization'
|
28
|
+
c.acquiree.first.name.wont_be_empty
|
29
|
+
c.acquiree.first.path.wont_be_empty
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe 'FundingRound', :vcr do
|
4
|
+
|
5
|
+
it 'should retrieve funding round by uuid' do
|
6
|
+
c = Crunchbase::FundingRound.get '37bd05f961af726ba3c1b279da842805'
|
7
|
+
c.permalink.must_equal '37bd05f961af726ba3c1b279da842805'
|
8
|
+
c.funding_type.must_equal 'private_equity'
|
9
|
+
c.money_raised.must_equal 1500000000
|
10
|
+
c.money_raised_currency_code.must_equal 'USD'
|
11
|
+
c.announced_on.must_equal Date.new(2011, 1, 21)
|
12
|
+
c.canonical_currency_code.must_equal 'USD'
|
13
|
+
c.permalink.wont_be_empty
|
14
|
+
c.name.wont_be_empty
|
15
|
+
c.created_at.must_be_instance_of Time
|
16
|
+
c.updated_at.must_be_instance_of Time
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should return relationships' do
|
20
|
+
c = Crunchbase::FundingRound.get '37bd05f961af726ba3c1b279da842805'
|
21
|
+
|
22
|
+
c.funded_organization.first.must_be_instance_of Crunchbase::Relation
|
23
|
+
c.funded_organization.first.type.must_equal 'Organization'
|
24
|
+
c.funded_organization.first.name.wont_be_empty
|
25
|
+
c.funded_organization.first.path.wont_be_empty
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe 'IPO', :vcr do
|
2
|
+
|
3
|
+
it 'should retrieve IPO by uuid' do
|
4
|
+
c = Crunchbase::Ipo.get '8fd30bb39eb9839d452685f82c1bfdf7'
|
5
|
+
c.permalink.must_equal '8fd30bb39eb9839d452685f82c1bfdf7'
|
6
|
+
c.opening_share_price.must_equal '38.0'
|
7
|
+
c.opening_share_price_currency_code.must_equal 'USD'
|
8
|
+
c.stock_symbol.must_equal 'FB'
|
9
|
+
c.stock_exchange_symbol.must_equal 'NASDAQ'
|
10
|
+
c.went_public_on.must_equal Date.new(2012, 5, 18)
|
11
|
+
c.canonical_currency_code.must_equal 'USD'
|
12
|
+
c.money_raised.must_equal 18400000000
|
13
|
+
c.money_raised_currency_code.must_equal 'USD'
|
14
|
+
c.name.wont_be_empty
|
15
|
+
c.opening_valuation.must_equal 104000000000
|
16
|
+
c.opening_valuation_currency_code.must_equal 'USD'
|
17
|
+
c.created_at.must_be_instance_of Time
|
18
|
+
c.updated_at.must_be_instance_of Time
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should return relationships' do
|
22
|
+
c = Crunchbase::Ipo.get '8fd30bb39eb9839d452685f82c1bfdf7'
|
23
|
+
|
24
|
+
c.funded_company.first.must_be_instance_of Crunchbase::Relation
|
25
|
+
c.funded_company.first.type.must_equal 'Organization'
|
26
|
+
c.funded_company.first.name.wont_be_empty
|
27
|
+
c.funded_company.first.path.wont_be_empty
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe 'Organization', :vcr do
|
4
|
+
|
5
|
+
it 'should retrieve organization by permalink' do
|
6
|
+
c = Crunchbase::Organization.get 'facebook'
|
7
|
+
c.name.must_equal 'Facebook'
|
8
|
+
c.permalink.must_equal 'facebook'
|
9
|
+
c.description.wont_be_empty
|
10
|
+
c.short_description.wont_be_empty
|
11
|
+
c.homepage_url.must_include 'facebook.com'
|
12
|
+
c.founded_on.must_equal Date.new(2004, 02, 01)
|
13
|
+
c.total_funding_usd.must_be_instance_of Fixnum
|
14
|
+
c.number_of_investments.must_be_instance_of Fixnum
|
15
|
+
c.number_of_employees.must_be_instance_of Fixnum
|
16
|
+
c.stock_symbol.must_equal 'FB'
|
17
|
+
c.stock_exchange.must_equal 'NASDAQ'
|
18
|
+
c.created_at.must_be_instance_of Time
|
19
|
+
c.updated_at.must_be_instance_of Time
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should retrieve a list of organizations' do
|
23
|
+
c = Crunchbase::Organization.list
|
24
|
+
c.size.must_equal 1000
|
25
|
+
c.first.must_be_instance_of Crunchbase::Relation
|
26
|
+
c.first.type.must_equal 'Organization'
|
27
|
+
c.first.name.wont_be_empty
|
28
|
+
c.first.path.wont_be_empty
|
29
|
+
c.first.created_at.must_be_instance_of Time
|
30
|
+
c.first.updated_at.must_be_instance_of Time
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should fetch organizations returned by the list' do
|
34
|
+
relation = Crunchbase::Relation.new({
|
35
|
+
'type' => 'Organization',
|
36
|
+
'name' => 'Facebook',
|
37
|
+
'path' => 'organization/facebook',
|
38
|
+
'created_at' => 1180153335,
|
39
|
+
'updated_at' => 1404773288
|
40
|
+
})
|
41
|
+
c = relation.fetch
|
42
|
+
c.must_be_instance_of Crunchbase::Organization
|
43
|
+
c.name.must_equal 'Facebook'
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should return relationships' do
|
47
|
+
c = Crunchbase::Organization.get 'apple'
|
48
|
+
|
49
|
+
c.competitors.first.must_be_instance_of Crunchbase::Relation
|
50
|
+
c.competitors.first.type.must_equal 'Organization'
|
51
|
+
c.competitors.first.name.wont_be_empty
|
52
|
+
c.competitors.first.path.wont_be_empty
|
53
|
+
|
54
|
+
c.founders.first.must_be_instance_of Crunchbase::Relation
|
55
|
+
c.founders.first.type.must_equal 'Person'
|
56
|
+
c.founders.first.name.wont_be_empty
|
57
|
+
c.founders.first.path.wont_be_empty
|
58
|
+
|
59
|
+
c.products.first.must_be_instance_of Crunchbase::Relation
|
60
|
+
c.products.first.type.must_equal 'Product'
|
61
|
+
c.products.first.name.wont_be_empty
|
62
|
+
c.products.first.path.wont_be_empty
|
63
|
+
|
64
|
+
c.acquisitions.first.must_be_instance_of Crunchbase::Relation
|
65
|
+
c.acquisitions.first.type.must_equal 'Acquisition'
|
66
|
+
c.acquisitions.first.name.wont_be_empty
|
67
|
+
c.acquisitions.first.path.wont_be_empty
|
68
|
+
|
69
|
+
c.ipo.first.must_be_instance_of Crunchbase::Relation
|
70
|
+
c.ipo.first.type.must_equal 'Ipo'
|
71
|
+
c.ipo.first.name.wont_be_empty
|
72
|
+
c.ipo.first.path.wont_be_empty
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe 'Person', :vcr do
|
4
|
+
|
5
|
+
it 'should retrieve person by permalink' do
|
6
|
+
c = Crunchbase::Person.get 'steve-jobs'
|
7
|
+
c.first_name.must_equal 'Steve'
|
8
|
+
c.last_name.must_equal 'Jobs'
|
9
|
+
c.permalink.must_equal 'steve-jobs'
|
10
|
+
c.bio.wont_be_empty
|
11
|
+
c.born_on.must_equal Date.new(1955, 2, 24)
|
12
|
+
c.died_on.must_equal Date.new(2011, 10, 5)
|
13
|
+
c.is_deceased.must_equal true
|
14
|
+
c.location_uuid.wont_be_empty
|
15
|
+
c.created_at.must_be_instance_of Time
|
16
|
+
c.updated_at.must_be_instance_of Time
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should retrieve a list of people' do
|
20
|
+
c = Crunchbase::Person.list
|
21
|
+
c.size.must_equal 1000
|
22
|
+
c.first.must_be_instance_of Crunchbase::Relation
|
23
|
+
c.first.type.must_equal 'Person'
|
24
|
+
c.first.name.wont_be_empty
|
25
|
+
c.first.path.wont_be_empty
|
26
|
+
c.first.created_at.must_be_instance_of Time
|
27
|
+
c.first.updated_at.must_be_instance_of Time
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should fetch persons returned by the list' do
|
31
|
+
relation = Crunchbase::Relation.new({
|
32
|
+
'type' => 'Person',
|
33
|
+
'name' => 'Steve Jobs',
|
34
|
+
'path' => 'person/steve-jobs',
|
35
|
+
'created_at' => 1401124619,
|
36
|
+
'updated_at' => 1401124619
|
37
|
+
})
|
38
|
+
c = relation.fetch
|
39
|
+
c.must_be_instance_of Crunchbase::Person
|
40
|
+
c.first_name.must_equal 'Steve'
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should return relationships' do
|
44
|
+
c = Crunchbase::Person.get 'steve-jobs'
|
45
|
+
|
46
|
+
c.founded_companies.first.must_be_instance_of Crunchbase::Relation
|
47
|
+
c.founded_companies.first.type.must_equal 'Organization'
|
48
|
+
c.founded_companies.first.name.wont_be_empty
|
49
|
+
c.founded_companies.first.path.wont_be_empty
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe 'Product', :vcr do
|
4
|
+
|
5
|
+
it 'should retrieve product by permalink' do
|
6
|
+
c = Crunchbase::Product.get 'digg'
|
7
|
+
c.lifecycle_stage.wont_be_empty
|
8
|
+
c.owner_id.wont_be_empty
|
9
|
+
c.description.wont_be_empty
|
10
|
+
c.name.must_equal 'Digg'
|
11
|
+
c.permalink.must_equal 'digg'
|
12
|
+
c.created_at.must_be_instance_of Time
|
13
|
+
c.updated_at.must_be_instance_of Time
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should retrieve a list of products' do
|
17
|
+
c = Crunchbase::Product.list
|
18
|
+
c.size.must_equal 1000
|
19
|
+
c.first.must_be_instance_of Crunchbase::Relation
|
20
|
+
c.first.type.must_equal 'Product'
|
21
|
+
c.first.name.wont_be_empty
|
22
|
+
c.first.path.wont_be_empty
|
23
|
+
c.first.created_at.must_be_instance_of Time
|
24
|
+
c.first.updated_at.must_be_instance_of Time
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should fetch persons returned by the list' do
|
28
|
+
relation = Crunchbase::Relation.new({
|
29
|
+
'type' => 'Product',
|
30
|
+
'name' => 'Digg',
|
31
|
+
'path' => 'product/digg',
|
32
|
+
'created_at' => 1398758998,
|
33
|
+
'updated_at' => 1398758998
|
34
|
+
})
|
35
|
+
c = relation.fetch
|
36
|
+
c.must_be_instance_of Crunchbase::Product
|
37
|
+
c.name.must_equal 'Digg'
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'crunchbase-api'
|
2
|
+
require 'vcr'
|
3
|
+
require 'webmock'
|
4
|
+
require 'minitest/spec'
|
5
|
+
require 'minitest/autorun'
|
6
|
+
require 'minitest-vcr'
|
7
|
+
|
8
|
+
VCR.configure do |c|
|
9
|
+
c.cassette_library_dir = 'test/cassettes'
|
10
|
+
c.hook_into :webmock
|
11
|
+
end
|
12
|
+
|
13
|
+
MinitestVcr::Spec.configure!
|
14
|
+
|
15
|
+
if ENV['CRUNCHBASE_USER_KEY']
|
16
|
+
Crunchbase.user_key = ENV['CRUNCHBASE_USER_KEY']
|
17
|
+
else
|
18
|
+
api_config = YAML.load_file File.join(File.dirname(__FILE__), 'user_key.yml')
|
19
|
+
Crunchbase.user_key = api_config['user_key']
|
20
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
user_key: ~
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: crunchbase-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sandis Klakovskis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: webmock
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: vcr
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest-vcr
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
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
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: ''
|
112
|
+
email:
|
113
|
+
- m@sandis.lv
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- ".travis.yml"
|
120
|
+
- Gemfile
|
121
|
+
- LICENSE.txt
|
122
|
+
- README.md
|
123
|
+
- Rakefile
|
124
|
+
- crunchbase-api.gemspec
|
125
|
+
- lib/crunchbase-api.rb
|
126
|
+
- lib/crunchbase-api/acquisition.rb
|
127
|
+
- lib/crunchbase-api/configuration.rb
|
128
|
+
- lib/crunchbase-api/crunchbase_exception.rb
|
129
|
+
- lib/crunchbase-api/entity.rb
|
130
|
+
- lib/crunchbase-api/funding_round.rb
|
131
|
+
- lib/crunchbase-api/ipo.rb
|
132
|
+
- lib/crunchbase-api/organization.rb
|
133
|
+
- lib/crunchbase-api/person.rb
|
134
|
+
- lib/crunchbase-api/product.rb
|
135
|
+
- lib/crunchbase-api/relation.rb
|
136
|
+
- lib/crunchbase-api/version.rb
|
137
|
+
- test/crunchbase-api/acquisition_test.rb
|
138
|
+
- test/crunchbase-api/funding_round_test.rb
|
139
|
+
- test/crunchbase-api/ipo_test.rb
|
140
|
+
- test/crunchbase-api/organization_test.rb
|
141
|
+
- test/crunchbase-api/person_test.rb
|
142
|
+
- test/crunchbase-api/product_test.rb
|
143
|
+
- test/crunchbase-api/version_test.rb
|
144
|
+
- test/helper.rb
|
145
|
+
- test/user_key.example.yml
|
146
|
+
homepage: https://github.com/sandisk/crunchbase-api
|
147
|
+
licenses:
|
148
|
+
- MIT
|
149
|
+
metadata: {}
|
150
|
+
post_install_message:
|
151
|
+
rdoc_options: []
|
152
|
+
require_paths:
|
153
|
+
- lib
|
154
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: '0'
|
164
|
+
requirements: []
|
165
|
+
rubyforge_project:
|
166
|
+
rubygems_version: 2.2.2
|
167
|
+
signing_key:
|
168
|
+
specification_version: 4
|
169
|
+
summary: Wrapper for Crunchbase API v2
|
170
|
+
test_files:
|
171
|
+
- test/crunchbase-api/acquisition_test.rb
|
172
|
+
- test/crunchbase-api/funding_round_test.rb
|
173
|
+
- test/crunchbase-api/ipo_test.rb
|
174
|
+
- test/crunchbase-api/organization_test.rb
|
175
|
+
- test/crunchbase-api/person_test.rb
|
176
|
+
- test/crunchbase-api/product_test.rb
|
177
|
+
- test/crunchbase-api/version_test.rb
|
178
|
+
- test/helper.rb
|
179
|
+
- test/user_key.example.yml
|