crunchbase 0.3.0 → 0.4.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.
@@ -104,4 +104,21 @@ module Crunchbase
104
104
  end
105
105
 
106
106
  end
107
+
108
+ class Location < Search
109
+
110
+ # Performs a Crunchbase geo-location search for query.
111
+ def self.geo(query)
112
+ j = API.geo(query)
113
+ s = Location.new(query, j)
114
+ end
115
+
116
+ # Retrieves the search page containing the given index
117
+ def retrieve_for_index(index)
118
+ page = (index / 10) + 1
119
+ populate_results(API.geo(@query, page))
120
+ end
121
+
122
+ end
123
+
107
124
  end
@@ -7,7 +7,7 @@ module Crunchbase
7
7
 
8
8
  attr_reader :name, :permalink, :crunchbase_url, :homepage_url,
9
9
  :phone_number, :created_at, :updated_at, :overview, :image, :offices,
10
- :providerships, :external_links
10
+ :external_links
11
11
 
12
12
  def initialize(json)
13
13
  @name = json["name"]
@@ -20,12 +20,15 @@ module Crunchbase
20
20
  @created_at = DateTime.parse(json["created_at"])
21
21
  @updated_at = DateTime.parse(json["updated_at"])
22
22
  @overview = json["overview"]
23
- @image = json["image"]
23
+ @image = Image.create(json["image"])
24
24
  @offices = json["offices"]
25
- @providerships = Relationship.array_from_relationship_list(json["providerships"]) if json["providerships"]
25
+ @providerships_list = json["providerships"]
26
26
  @external_links = json["external_links"]
27
27
  end
28
28
 
29
+ def providerships
30
+ @providerships ||= Relationship.array_from_list(@providerships_list)
31
+ end
29
32
 
30
33
  end
31
34
  end
metadata CHANGED
@@ -1,96 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crunchbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
5
- prerelease:
4
+ version: 0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tyler Cunnion
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-10-26 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: bundler
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: 1.0.0
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 1.0.0
46
- - !ruby/object:Gem::Dependency
47
- name: jeweler
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: 1.6.4
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: 1.6.4
62
- - !ruby/object:Gem::Dependency
63
- name: rcov
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: rdoc
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
11
+ date: 2013-11-30 00:00:00.000000000 Z
12
+ dependencies: []
94
13
  description:
95
14
  email: tyler.cunnion@gmail.com
96
15
  executables: []
@@ -99,22 +18,17 @@ extra_rdoc_files:
99
18
  - LICENSE.txt
100
19
  - README.rdoc
101
20
  files:
102
- - Gemfile
103
- - Gemfile.lock
104
- - LICENSE.txt
105
- - README.rdoc
106
- - Rakefile
107
- - VERSION
108
- - crunchbase.gemspec
109
- - lib/crunchbase.rb
110
21
  - lib/crunchbase/api.rb
22
+ - lib/crunchbase/array_from_list.rb
111
23
  - lib/crunchbase/cb_object.rb
112
24
  - lib/crunchbase/company.rb
113
25
  - lib/crunchbase/crunch_exception.rb
114
26
  - lib/crunchbase/date_methods.rb
115
27
  - lib/crunchbase/entity_list_item.rb
116
28
  - lib/crunchbase/financial_organization.rb
29
+ - lib/crunchbase/image.rb
117
30
  - lib/crunchbase/investment.rb
31
+ - lib/crunchbase/milestone.rb
118
32
  - lib/crunchbase/person.rb
119
33
  - lib/crunchbase/product.rb
120
34
  - lib/crunchbase/relationship.rb
@@ -124,45 +38,31 @@ files:
124
38
  - lib/crunchbase/search.rb
125
39
  - lib/crunchbase/search_result.rb
126
40
  - lib/crunchbase/service_provider.rb
127
- - spec/apikey.example.yml
128
- - spec/crunchbase/api_spec.rb
129
- - spec/crunchbase/company_spec.rb
130
- - spec/crunchbase/financial_organization_spec.rb
131
- - spec/crunchbase/person_spec.rb
132
- - spec/crunchbase/product_spec.rb
133
- - spec/crunchbase/search_result_spec.rb
134
- - spec/crunchbase/search_spec.rb
135
- - spec/crunchbase/service_provider_spec.rb
136
- - spec/fixtures/brad-fitzpatrick.js
137
- - spec/fixtures/cargurus.js
138
- - spec/fixtures/steve-jobs.js
139
- - spec/spec_helper.rb
41
+ - lib/crunchbase.rb
42
+ - LICENSE.txt
43
+ - README.rdoc
140
44
  homepage: http://github.com/tylercunnion/crunchbase
141
45
  licenses:
142
46
  - MIT
47
+ metadata: {}
143
48
  post_install_message:
144
49
  rdoc_options: []
145
50
  require_paths:
146
51
  - lib
147
52
  required_ruby_version: !ruby/object:Gem::Requirement
148
- none: false
149
53
  requirements:
150
- - - ! '>='
54
+ - - '>='
151
55
  - !ruby/object:Gem::Version
152
56
  version: '0'
153
- segments:
154
- - 0
155
- hash: 1391900359395549373
156
57
  required_rubygems_version: !ruby/object:Gem::Requirement
157
- none: false
158
58
  requirements:
159
- - - ! '>='
59
+ - - '>='
160
60
  - !ruby/object:Gem::Version
161
61
  version: '0'
162
62
  requirements: []
163
63
  rubyforge_project:
164
- rubygems_version: 1.8.23
64
+ rubygems_version: 2.0.14
165
65
  signing_key:
166
- specification_version: 3
66
+ specification_version: 4
167
67
  summary: Ruby wrapper for CrunchBase API
168
68
  test_files: []
data/Gemfile DELETED
@@ -1,9 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- group :development do
4
- gem "rspec"
5
- gem "bundler", "~> 1.0.0"
6
- gem "jeweler", "~> 1.6.4"
7
- gem "rcov", ">= 0"
8
- gem "rdoc"
9
- end
data/Gemfile.lock DELETED
@@ -1,30 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- diff-lcs (1.1.3)
5
- git (1.2.5)
6
- jeweler (1.6.4)
7
- bundler (~> 1.0)
8
- git (>= 1.2.5)
9
- rake
10
- rake (0.9.2)
11
- rcov (0.9.10)
12
- rdoc (3.9.4)
13
- rspec (2.6.0)
14
- rspec-core (~> 2.6.0)
15
- rspec-expectations (~> 2.6.0)
16
- rspec-mocks (~> 2.6.0)
17
- rspec-core (2.6.4)
18
- rspec-expectations (2.6.0)
19
- diff-lcs (~> 1.1.2)
20
- rspec-mocks (2.6.0)
21
-
22
- PLATFORMS
23
- ruby
24
-
25
- DEPENDENCIES
26
- bundler (~> 1.0.0)
27
- jeweler (~> 1.6.4)
28
- rcov
29
- rdoc
30
- rspec
data/Rakefile DELETED
@@ -1,52 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "crunchbase"
18
- gem.homepage = "http://github.com/tylercunnion/crunchbase"
19
- gem.license = "MIT"
20
- gem.summary = %Q{Ruby wrapper for CrunchBase API}
21
- gem.email = "tyler.cunnion@gmail.com"
22
- gem.authors = ["Tyler Cunnion"]
23
- # dependencies defined in Gemfile
24
- end
25
- Jeweler::RubygemsDotOrgTasks.new
26
-
27
- require 'rake/testtask'
28
- Rake::TestTask.new(:test) do |test|
29
- test.libs << 'lib' << 'test'
30
- test.pattern = 'test/**/test_*.rb'
31
- test.verbose = true
32
- end
33
-
34
- require 'rcov/rcovtask'
35
- Rcov::RcovTask.new do |test|
36
- test.libs << 'test'
37
- test.pattern = 'test/**/test_*.rb'
38
- test.verbose = true
39
- test.rcov_opts << '--exclude "gems/*"'
40
- end
41
-
42
- task :default => :test
43
-
44
- require 'rake/rdoctask'
45
- Rake::RDocTask.new do |rdoc|
46
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
47
-
48
- rdoc.rdoc_dir = 'rdoc'
49
- rdoc.title = "crunchbase #{version}"
50
- rdoc.rdoc_files.include('README*')
51
- rdoc.rdoc_files.include('lib/**/*.rb')
52
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.0
data/crunchbase.gemspec DELETED
@@ -1,88 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "crunchbase"
8
- s.version = "0.3.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Tyler Cunnion"]
12
- s.date = "2012-10-26"
13
- s.email = "tyler.cunnion@gmail.com"
14
- s.extra_rdoc_files = [
15
- "LICENSE.txt",
16
- "README.rdoc"
17
- ]
18
- s.files = [
19
- "Gemfile",
20
- "Gemfile.lock",
21
- "LICENSE.txt",
22
- "README.rdoc",
23
- "Rakefile",
24
- "VERSION",
25
- "crunchbase.gemspec",
26
- "lib/crunchbase.rb",
27
- "lib/crunchbase/api.rb",
28
- "lib/crunchbase/cb_object.rb",
29
- "lib/crunchbase/company.rb",
30
- "lib/crunchbase/crunch_exception.rb",
31
- "lib/crunchbase/date_methods.rb",
32
- "lib/crunchbase/entity_list_item.rb",
33
- "lib/crunchbase/financial_organization.rb",
34
- "lib/crunchbase/investment.rb",
35
- "lib/crunchbase/person.rb",
36
- "lib/crunchbase/product.rb",
37
- "lib/crunchbase/relationship.rb",
38
- "lib/crunchbase/relationships/firm_relationship.rb",
39
- "lib/crunchbase/relationships/person_relationship.rb",
40
- "lib/crunchbase/relationships/provider_relationship.rb",
41
- "lib/crunchbase/search.rb",
42
- "lib/crunchbase/search_result.rb",
43
- "lib/crunchbase/service_provider.rb",
44
- "spec/apikey.example.yml",
45
- "spec/crunchbase/api_spec.rb",
46
- "spec/crunchbase/company_spec.rb",
47
- "spec/crunchbase/financial_organization_spec.rb",
48
- "spec/crunchbase/person_spec.rb",
49
- "spec/crunchbase/product_spec.rb",
50
- "spec/crunchbase/search_result_spec.rb",
51
- "spec/crunchbase/search_spec.rb",
52
- "spec/crunchbase/service_provider_spec.rb",
53
- "spec/fixtures/brad-fitzpatrick.js",
54
- "spec/fixtures/cargurus.js",
55
- "spec/fixtures/steve-jobs.js",
56
- "spec/spec_helper.rb"
57
- ]
58
- s.homepage = "http://github.com/tylercunnion/crunchbase"
59
- s.licenses = ["MIT"]
60
- s.require_paths = ["lib"]
61
- s.rubygems_version = "1.8.23"
62
- s.summary = "Ruby wrapper for CrunchBase API"
63
-
64
- if s.respond_to? :specification_version then
65
- s.specification_version = 3
66
-
67
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
68
- s.add_development_dependency(%q<rspec>, [">= 0"])
69
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
70
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
71
- s.add_development_dependency(%q<rcov>, [">= 0"])
72
- s.add_development_dependency(%q<rdoc>, [">= 0"])
73
- else
74
- s.add_dependency(%q<rspec>, [">= 0"])
75
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
76
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
77
- s.add_dependency(%q<rcov>, [">= 0"])
78
- s.add_dependency(%q<rdoc>, [">= 0"])
79
- end
80
- else
81
- s.add_dependency(%q<rspec>, [">= 0"])
82
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
83
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
84
- s.add_dependency(%q<rcov>, [">= 0"])
85
- s.add_dependency(%q<rdoc>, [">= 0"])
86
- end
87
- end
88
-
@@ -1 +0,0 @@
1
- key: <your_key_goes_here>
@@ -1,50 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
2
- require 'net/http'
3
-
4
- module Crunchbase
5
- describe API do
6
-
7
- it "should raise exception for missing API key" do
8
- key = API.key
9
- API.key = nil
10
- expect { API.fetch('steve-jobs', 'person') }.to raise_error
11
- API.key = key
12
- end
13
-
14
- it "should remove control characters" do
15
- cargurus = File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "cargurus.js")).read
16
- API.should_receive(:get_url_following_redirects).with(/^http:\/\/api.crunchbase.com\/v\/1\/company\/cargurus.js/, 2).and_return(cargurus)
17
- lambda { API.single_entity("cargurus", "company") }.should_not raise_error
18
- end
19
-
20
- it "should return a JSON hash" do
21
- j = API.fetch('steve-jobs', 'person')
22
- j.class.should == Hash
23
- end
24
-
25
- it "should return JSON from person permalink" do
26
- j = API.single_entity("steve-jobs", "person")
27
- j.class.should == Hash
28
- end
29
-
30
- it "should raise exception on unfound person" do
31
- expect { API.single_entity("not-real", "person") }.to raise_error, "Sorry, we could not find the record you were looking for."
32
- end
33
-
34
- it "should raise exception for incorrect entity name" do
35
- expect { API.single_entity("whatever", "wrong") }.to raise_error, "Unsupported Entity Type"
36
- end
37
-
38
- it "should follow redirects" do
39
- c = Company.get("adobe")
40
- c.name.should == "Adobe Systems"
41
- end
42
-
43
- it "should find a permalink from a well-formed search" do
44
- j = API.permalink({name: "Accel Partners"}, "financial-organizations")
45
- j.class.should == Hash
46
- j["permalink"].should == 'accel-partners'
47
- end
48
-
49
- end
50
- end