crunchbase 0.0.1

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/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Tyler Cunnion
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,13 @@
1
+ = crunchbase
2
+
3
+ Library for pulling data from the CrunchBase API.
4
+
5
+ == Usage
6
+
7
+ require 'crunchbase'
8
+
9
+ == Copyright
10
+
11
+ Copyright (c) 2011 Tyler Cunnion. See LICENSE.txt for
12
+ further details.
13
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/lib/crunchbase.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'crunchbase/api'
2
+ require 'crunchbase/cb_object'
3
+ require 'crunchbase/company'
4
+ require 'crunchbase/person'
5
+ require 'crunchbase/crunch_exception'
6
+
7
+ module Crunchbase
8
+ VERSION = "0.0.1"
9
+ end
@@ -0,0 +1,33 @@
1
+ require 'net/http'
2
+ require 'json'
3
+ require 'timeout'
4
+
5
+ module Crunchbase
6
+ class API
7
+ CB_URL = 'http://api.crunchbase.com/v/1/'
8
+
9
+ def self.person(permalink)
10
+ fetch_uri = URI.parse(CB_URL + "person/#{permalink}.js")
11
+ fetch(fetch_uri)
12
+ end
13
+
14
+ def self.company(permalink)
15
+ fetch_uri = URI.parse(CB_URL + "company/#{permalink}.js")
16
+ fetch(fetch_uri)
17
+ end
18
+
19
+ # Fetches URI and parses JSON. Raises Timeout::Error if fetching times out.
20
+ # Raises CrunchException if the returned JSON indicates an error.
21
+ def self.fetch(uri)
22
+ resp = Timeout::timeout(5) {
23
+ Net::HTTP.get(uri)
24
+ }
25
+ j = JSON.parse(resp)
26
+ raise CrunchException, j["error"] if j["error"]
27
+ return j
28
+ end
29
+
30
+
31
+ end
32
+ end
33
+
@@ -0,0 +1,18 @@
1
+ module Crunchbase
2
+ class CB_Object
3
+
4
+ # Returns an array of tags
5
+ def tags
6
+ @tag_list.respond_to?('split') ? @tag_list.split(', ') : []
7
+ end
8
+
9
+ def aliases
10
+ @alias_list.respond_to?('split') ? @alias_list.split(", ") : []
11
+ end
12
+
13
+ def ===(other)
14
+ @permalink == other.permalink && @updated_at == other.updated_at
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,83 @@
1
+ require 'date'
2
+ module Crunchbase
3
+ class Company < CB_Object
4
+
5
+ attr_reader :name, :permalink, :crunchbase_url, :homepage_url, :blog_url,
6
+ :blog_feed_url, :twitter_username, :category_code, :number_of_employees,
7
+ :founded_year, :founded_month, :founded_day, :deadpooled_year,
8
+ :deadpooled_month, :deadpooled_day, :deadpooled_url, :tag_list,
9
+ :alias_list, :email_address, :phone_number, :description, :created_at,
10
+ :updated_at, :overview, :image, :products, :relationships, :competitions,
11
+ :providerships, :total_money_raised, :funding_rounds, :investments,
12
+ :acquisition, :acquisitions, :offices, :milestones, :ipo, :video_embeds,
13
+ :screenshots, :external_links
14
+
15
+ def self.get(permalink)
16
+ j = API.company(permalink)
17
+ c = Company.new(j)
18
+ return c
19
+ end
20
+
21
+ def initialize(json)
22
+ @name = json["name"]
23
+ @permalink = json["permalink"]
24
+ @crunchbase_url = json["crunchbase_url"]
25
+ @homepage_url = json["homepage_url"]
26
+ @blog_url = json["blog_url"]
27
+ @blog_feed_url = json["blog_feed_url"]
28
+ @twitter_username = json["twitter_username"]
29
+ @category_code = json["category_code"]
30
+ @number_of_employees = json["number_of_employees"]
31
+ @founded_year = json["founded_year"]
32
+ @founded_month = json["founded_month"]
33
+ @founded_day = json["founded_day"]
34
+ @deadpooled_year = json["deadpooled_year"]
35
+ @deadpooled_month = json["deadpooled_month"]
36
+ @deadpooled_day = json["deadpooled_day"]
37
+ @deadpooled_url = json["deadpooled_url"]
38
+ @tag_list = json["tag_list"]
39
+ @alias_list = json["alias_list"]
40
+ @email_address = json["email_address"]
41
+ @phone_number = json["phone_number"]
42
+ @description = json["description"]
43
+ @created_at = DateTime.parse(json["created_at"])
44
+ @updated_at = DateTime.parse(json["updated_at"])
45
+ @overview = json["overview"]
46
+ @image = json["image"]
47
+ @products = json["products"]
48
+ @relationships = json["relationships"]
49
+ @competitions = json["competitions"]
50
+ @providerships = json["providerships"]
51
+ @total_money_raised = json["total_money_raised"]
52
+ @funding_rounds = json["funding_rounds"]
53
+ @investments = json["investments"]
54
+ @acquisition = json["acquisition"]
55
+ @acquisitions = json["acquisitions"]
56
+ @offices = json["offices"]
57
+ @milestones = json["milestones"]
58
+ @ipo = json["ipo"]
59
+ @video_embeds = json["video_embeds"]
60
+ @screenshots = json["screenshots"]
61
+ @external_links = json["external_links"]
62
+ end
63
+
64
+ def founded
65
+ begin
66
+ founded = Date.new(@founded_year, @founded_month, @founded_day)
67
+ rescue
68
+ founded = nil
69
+ end
70
+ return founded
71
+ end
72
+
73
+ def deadpooled
74
+ begin
75
+ dp = Date.new(@deadpooled_year, @deadpooled_month, @deadpooled_day)
76
+ rescue
77
+ dp = nil
78
+ end
79
+ return dp
80
+ end
81
+
82
+ end
83
+ end
@@ -0,0 +1,4 @@
1
+ module Crunchbase
2
+ class CrunchException < StandardError
3
+ end
4
+ end
@@ -0,0 +1,56 @@
1
+ require 'date'
2
+ module Crunchbase
3
+ class Person < CB_Object
4
+
5
+ attr_reader :first_name, :last_name, :permalink, :crunchbase_url,
6
+ :homepage_url, :birthplace, :twitter_username, :blog_url, :blog_feed_url,
7
+ :affiliation_name, :born_year, :born_month, :born_day, :created_at,
8
+ :updated_at, :overview, :tag_list
9
+
10
+ def self.get(permalink)
11
+ j = API.person(permalink)
12
+ p = Person.new(j)
13
+ return p
14
+ end
15
+
16
+ def initialize(json)
17
+ @first_name = json["first_name"]
18
+ @last_name = json["last_name"]
19
+ @permalink = json["permalink"]
20
+ @crunchbase_url = json["crunchbase_url"]
21
+ @homepage_url = json["homepage_url"]
22
+ @birthplace = json["birthplace"]
23
+ @twitter_username = json["twitter_username"]
24
+ @blog_url = json["blog_url"]
25
+ @blog_feed_url = json["blog_feed_url"]
26
+ @affiliation_name = json["affiliation_name"]
27
+ @born_year = json["born_year"]
28
+ @born_month = json["born_month"]
29
+ @born_day = json["born_day"]
30
+ @tag_list = json["tag_list"]
31
+ @alias_list = json["alias_list"]
32
+ @created_at = DateTime.parse(json["created_at"])
33
+ @updated_at = DateTime.parse(json["updated_at"])
34
+ @overview = json["overview"]
35
+
36
+ @relationships = json["relationships"]
37
+ @investments = json["investments"]
38
+ @milestones = json["milestones"]
39
+ @video_embeds = json["video_embeds"]
40
+ @external_links = json["external_links"]
41
+ @web_presences = json["web_presences"]
42
+ end
43
+
44
+ # Returns a date object, or nil if Date cannot be created from
45
+ # provided information.
46
+ def born
47
+ begin
48
+ born = Date.new(@born_year, @born_month, @born_day)
49
+ rescue
50
+ born = nil
51
+ end
52
+ born
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,22 @@
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 return a JSON hash" do
8
+ j = API.fetch(URI.parse(API::CB_URL + "person/steve-jobs.js"))
9
+ j.class.should == Hash
10
+ end
11
+
12
+ it "should return JSON from person permalink" do
13
+ j = API.person("steve-jobs")
14
+ j.class.should == Hash
15
+ end
16
+
17
+ it "should raise exception on unfound person" do
18
+ expect { API.person("not-real") }.to raise_error
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
2
+
3
+ module Crunchbase
4
+ describe Company do
5
+
6
+ it "should pull from web api" do
7
+ company = Company.get("facebook")
8
+ company.name.should == "Facebook"
9
+ end
10
+
11
+ it "should return date for founded" do
12
+ company = Company.new({"founded_year" => 2004, "founded_month" => 2,
13
+ "founded_day" => 1, "created_at" => "Sat Dec 22 08:42:28 UTC 2007",
14
+ "updated_at" => "Sat Dec 22 08:42:28 UTC 2007"})
15
+ company.founded.should === Date.new(2004, 2, 1)
16
+ end
17
+
18
+ it "should return date for deadpooled" do
19
+ company = Company.new({"deadpooled_year" => 2004, "deadpooled_month" => 2,
20
+ "deadpooled_day" => 1, "created_at" => "Sat Dec 22 08:42:28 UTC 2007",
21
+ "updated_at" => "Sat Dec 22 08:42:28 UTC 2007"})
22
+ company.deadpooled.should === Date.new(2004, 2, 1)
23
+ end
24
+
25
+
26
+ end
27
+ end
@@ -0,0 +1,71 @@
1
+ require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
2
+ require 'json'
3
+
4
+ module Crunchbase
5
+ describe Person do
6
+
7
+ before(:all) do
8
+ @steve = File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "steve-jobs.js"))
9
+ @brad = File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "brad-fitzpatrick.js"))
10
+ end
11
+
12
+ before(:each) do
13
+ @steve.rewind
14
+ @brad.rewind
15
+ end
16
+
17
+ it "should ask for JSON object" do
18
+ API.should_receive(:person).with("brad-fitzpatrick").and_return(JSON.parse(@brad.read))
19
+ person = Person.get("brad-fitzpatrick")
20
+ end
21
+
22
+ it "should get information from supplied file" do
23
+ API.should_receive(:person).with("steve-jobs").and_return(JSON.parse(@steve.read))
24
+ person = Person.get("steve-jobs")
25
+ person.first_name.should == "Steve"
26
+
27
+ API.should_receive(:person).with("brad-fitzpatrick").and_return(JSON.parse(@brad.read))
28
+ person = Person.get("brad-fitzpatrick")
29
+ person.first_name.should == "Brad"
30
+ end
31
+
32
+ it "should return a date for born" do
33
+ person = Person.new(JSON.parse(@steve.read))
34
+ date = Date.new(1955, 2, 24)
35
+ person.born.should === date
36
+ end
37
+
38
+ it "should return nil when birthday is unavailable" do
39
+ person = Person.new({
40
+ "created_at" => "Sat Dec 22 08:42:28 UTC 2007",
41
+ "updated_at" => "Sat Dec 22 08:42:28 UTC 2007"})
42
+ person.born.should be_nil
43
+ end
44
+
45
+ it "should get an array of tags" do
46
+ person = Person.new({"tag_list" => "computers, technology",
47
+ "created_at" => "Sat Dec 22 08:42:28 UTC 2007",
48
+ "updated_at" => "Sat Dec 22 08:42:28 UTC 2007"})
49
+ person.tags.should == ["computers", "technology"]
50
+ end
51
+
52
+ it "should return empty array for null tags" do
53
+ person = Person.new({"tag_list" => nil,
54
+ "created_at" => "Sat Dec 22 08:42:28 UTC 2007",
55
+ "updated_at" => "Sat Dec 22 08:42:28 UTC 2007"})
56
+ person.tags.should == []
57
+ end
58
+
59
+ it "should get from web" do
60
+ person = Person.get("steve-jobs")
61
+ person.first_name.should == "Steve"
62
+ end
63
+
64
+ it "should be equal to another with the same permalink and last updated" do
65
+ person = Person.get("steve-jobs")
66
+ person2 = Person.get("steve-jobs")
67
+ person.should === person2
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,70 @@
1
+ {"first_name": "Brad",
2
+ "last_name": "Fitzpatrick",
3
+ "permalink": "brad-fitzpatrick",
4
+ "crunchbase_url": "http://www.crunchbase.com/person/brad-fitzpatrick",
5
+ "homepage_url": "http://bradfitz.com",
6
+ "birthplace": "Iowa",
7
+ "twitter_username": null,
8
+ "blog_url": "http://brad.livejournal.com",
9
+ "blog_feed_url": "http://brad.livejournal.com/data/rss",
10
+ "affiliation_name": "LiveJournal",
11
+ "born_year": 1980,
12
+ "born_month": 2,
13
+ "born_day": 5,
14
+ "tag_list": "",
15
+ "alias_list": null,
16
+ "created_at": "Sun Dec 09 14:29:02 UTC 2007",
17
+ "updated_at": "Wed Feb 02 19:23:16 UTC 2011",
18
+ "overview": "\u003Cp\u003EBrad Fitzpatrick originated the \u003Ca href=\"http://www.crunchbase.com/product/openid\" title=\"OpenID\"\u003EOpenID\u003C/a\u003E protocol in 2005 while working at \u003Ca href=\"http://www.crunchbase.com/company/six+apart\" title=\"Six Apart\"\u003ESix Apart\u003C/a\u003E, which he started in 1999.\u003C/p\u003E\n\n\u003Cp\u003EHe\u0026#8217;s also known creating memcached, MogileFS (a GFS-like filesystem), djabberd (a Jabber server), Gearman (and RPC balancer), and other open source backend software.\u003C/p\u003E\n\n\u003Cp\u003EHe now works at Google.\u003C/p\u003E",
19
+ "image":
20
+ {"available_sizes":
21
+ [[[112,
22
+ 150],
23
+ "assets/images/resized/0001/6259/16259v3-max-150x150.jpg"],
24
+ [[188,
25
+ 250],
26
+ "assets/images/resized/0001/6259/16259v3-max-250x250.jpg"],
27
+ [[188,
28
+ 250],
29
+ "assets/images/resized/0001/6259/16259v3-max-450x450.jpg"]],
30
+ "attribution": ""},
31
+ "degrees":
32
+ [],
33
+ "relationships":
34
+ [{"is_past": true,
35
+ "title": "Founder",
36
+ "firm":
37
+ {"name": "LiveJournal",
38
+ "permalink": "livejournal",
39
+ "type_of_entity": "company"}},
40
+ {"is_past": false,
41
+ "title": "",
42
+ "firm":
43
+ {"name": "Google",
44
+ "permalink": "google",
45
+ "type_of_entity": "company"}},
46
+ {"is_past": true,
47
+ "title": "",
48
+ "firm":
49
+ {"name": "OpenID Foundation",
50
+ "permalink": "openid-foundation",
51
+ "type_of_entity": "company"}},
52
+ {"is_past": true,
53
+ "title": "",
54
+ "firm":
55
+ {"name": "Six Apart",
56
+ "permalink": "six-apart",
57
+ "type_of_entity": "company"}}],
58
+ "investments":
59
+ [],
60
+ "milestones":
61
+ [],
62
+ "video_embeds":
63
+ [],
64
+ "external_links":
65
+ [],
66
+ "web_presences":
67
+ [{"external_url": "http://en.wikipedia.org/wiki/Brad_Fitzpatrick",
68
+ "title": "Wikipedia"},
69
+ {"external_url": "http://www.linkedin.com/in/bradfitz",
70
+ "title": "Linkedin"}]}
@@ -0,0 +1,83 @@
1
+ {"first_name": "Steve",
2
+ "last_name": "Jobs",
3
+ "permalink": "steve-jobs",
4
+ "crunchbase_url": "http://www.crunchbase.com/person/steve-jobs",
5
+ "homepage_url": "",
6
+ "birthplace": "",
7
+ "twitter_username": "",
8
+ "blog_url": "",
9
+ "blog_feed_url": "",
10
+ "affiliation_name": "Apple",
11
+ "born_year": 1955,
12
+ "born_month": 2,
13
+ "born_day": 24,
14
+ "tag_list": "",
15
+ "alias_list": "",
16
+ "created_at": "Sat Dec 22 08:42:28 UTC 2007",
17
+ "updated_at": "Thu Aug 25 19:22:47 UTC 2011",
18
+ "overview": "\u003Cp\u003ESteve Jobs is the co-founder and CEO of \u003Ca href=\"http://www.crunchbase.com/person/steve-jobs\" title=\"Apple\"\u003EApple\u003C/a\u003E and formerly \u003Ca href=\"/company/pixar\" title=\"Pixar\" rel=\"nofollow\"\u003EPixar\u003C/a\u003E.\u003C/p\u003E\n\n\u003Cp\u003E\u0026#8220;Innovation distinguishes between a leader and a follower.\u0026#8221; -Steve Jobs\u003C/p\u003E\n\n\u003Cp\u003ESteve Jobs regularly makes most rosters of the rich and powerful. It is surprising for a guy who takes home an annual salary of U.S. $1. The reasons why he is on all power lists are; \u003Ca href=\"/company/apple\" title=\"Apple\" rel=\"nofollow\"\u003EApple\u003C/a\u003E, \u003Ca href=\"/company/next\" title=\"Next\" rel=\"nofollow\"\u003ENext\u003C/a\u003E, \u003Ca href=\"/product/ipod\" title=\"iPod\" rel=\"nofollow\"\u003EiPod\u003C/a\u003E and \u003Ca href=\"/company/pixar\" title=\"Pixar\" rel=\"nofollow\"\u003EPixar\u003C/a\u003E. Jobs is also known as the one man who could have upstaged \u003Ca href=\"/person/bill-gates\" title=\"Bill Gates\" rel=\"nofollow\"\u003EBill Gates\u003C/a\u003E. But Jobs was as excited about innovation as \u003Ca href=\"/person/bill-gates\" title=\"Bill Gates\" rel=\"nofollow\"\u003EBill Gates\u003C/a\u003E was interested in making money.\u003C/p\u003E\n\n\u003Cp\u003ESteve Jobs was born in Green Bay, Wisconsin to Joanne Simpson and a Syrian father Abdulfattah Jandali (who became a political science professor). Paul and Clara Jobs of \u003Ca href=\"/maps/city/Mountain%2520View\" title=\"Mountain View, Santa Clara County, California\" rel=\"nofollow\"\u003EMountain View, Santa Clara County, California\u003C/a\u003E then adopted him. The writer Mona Simpson is Jobs\u2019 biological sister. In 1972, Jobs graduated from Homestead High School in Cupertino, California and enrolled in Reed College in Portland, Oregon. One semester later he had dropped out. But instead of going back home he hung around college and took up the study of philosophy and foreign cultures.\u003C/p\u003E\n\n\u003Cp\u003ESteve Jobs had a deep-seated interest in technology so he took up a job at \u003Ca href=\"/company/atari-interactive\" title=\"Atari Inc.\" rel=\"nofollow\"\u003EAtari Inc.\u003C/a\u003E which was a leading manufacturer of video games. He struck a friendship with fellow designer \u003Ca href=\"/person/steve-wozniak\" title=\"Steve Wozniak\" rel=\"nofollow\"\u003ESteve Wozniak\u003C/a\u003E and attended meetings of the \u0026#8220;Homebrew Computer Club\u0026#8221; with him. \u003Ca href=\"/person/steve-wozniak\" title=\"Wozniak\" rel=\"nofollow\"\u003EWozniak\u003C/a\u003E and Jobs developed a system with a toy whistle available in the Cap\u0026#8217;n Crunch cereal box to make it possible to make free long distance telephone calls. They called off the amateur venture after someone told them of the possible legal consequences.\u003C/p\u003E\n\n\u003Cp\u003EAfter saving up some money Steve Jobs took off for India in the search of enlightenment with his friend Dan Kottke. Once he returned he convinced Wozniak to quit his job at \u003Ca href=\"/company/hewlett-packard\" title=\"Hewlett Packard\" rel=\"nofollow\"\u003EHewlett Packard\u003C/a\u003E and join him in his venture that concerned personal computers. They sold items like a scientific calculator to raise the seed capital. \u003C/p\u003E\n\n\u003Cp\u003EIn 1976, Jobs, then 21, and Wozniak, 26, founded \u003Ca href=\"/company/apple\" title=\"Apple Computer Co.\" rel=\"nofollow\"\u003EApple Computer Co.\u003C/a\u003E in the Jobs family garage. The first personal computer was sold for $666.66. By 1980, \u003Ca href=\"/company/apple\" title=\"Apple\" rel=\"nofollow\"\u003EApple\u003C/a\u003E had already released three improved versions of the personal computer. It had a wildly successful IPO, which made both founders millionaires many times over. Steve Jobs had managed to rope in John Scully of Pepsi to head the marketing function in \u003Ca href=\"/company/apple\" title=\"Apple\" rel=\"nofollow\"\u003EApple\u003C/a\u003E.\u003C/p\u003E\n\n\u003Cp\u003EA tiff with the \u003Ca href=\"/company/apple\" title=\"Apple\" rel=\"nofollow\"\u003EApple\u003C/a\u003E board and John Scully led to the resignation of Steve Jobs. As soon as he resigned he immersed himself in his brand new venture. Steve Jobs decided that he wanted to change the hardware industry. The company was called \u003Ca href=\"/company/next\" title=\"NeXTStep\" rel=\"nofollow\"\u003ENeXTStep\u003C/a\u003E and the new machine was called NeXT Computer. He ploughed in more than U.S. $250 million into the company. The machine was a commercial washout but it did help in object-oriented programming, PostScript, and magneto-optical devices. \u003Ca href=\"/person/tim-berners-lee\" title=\"Tim Berners-Lee\" rel=\"nofollow\"\u003ETim Berners-Lee\u003C/a\u003E developed the original World Wide Web system at CERN on a NeXT machine. Bitterly disappointed with \u003Ca href=\"/company/next\" title=\"NeXTStep\" rel=\"nofollow\"\u003ENeXTStep\u003C/a\u003E, Jobs accepted the offer that \u003Ca href=\"/company/apple\" title=\"Apple\" rel=\"nofollow\"\u003EApple\u003C/a\u003E made him.\u003C/p\u003E\n\n\u003Cp\u003ESteve Jobs also started \u003Ca href=\"/company/pixar\" title=\"Pixar Inc.\" rel=\"nofollow\"\u003EPixar Inc.\u003C/a\u003E, which has gone on to produce animated movies such as Toy Story (1995); A Bug\u0026#8217;s Life (1998); Toy Story 2 (1999); Monsters, Inc. (2001); Finding Nemo (2003); and The Incredibles (2004). This venture has made him one of the most sought after men in Hollywood.\u003C/p\u003E\n\n\u003Cp\u003EPost \u003Ca href=\"/company/pixar\" title=\"Pixar\" rel=\"nofollow\"\u003EPixar\u003C/a\u003E, Steve Jobs wanted another round of revolutionizing to do. This time it was the music industry. He introduced the \u003Ca href=\"/product/ipod\" title=\"iPod\" rel=\"nofollow\"\u003EiPod\u003C/a\u003E in 2003. Later he came up with \u003Ca href=\"/product/itunes\" title=\"iTunes\" rel=\"nofollow\"\u003EiTunes\u003C/a\u003E, which was a digital jukebox. A million and a half \u003Ca href=\"/product/ipod\" title=\"iPods\" rel=\"nofollow\"\u003EiPods\u003C/a\u003E later, the music industry still does not know whether this invention will save it or destroy it. \u003Ca href=\"/company/apple\" title=\"Apple\" rel=\"nofollow\"\u003EApple\u003C/a\u003E has a great advertising track record and its \u2018Rip, Mix, Burn\u2019 campaign was another feather in its cap. Now the industry uses a Mac to make the music and an \u003Ca href=\"/product/ipod\" title=\"iPod\" rel=\"nofollow\"\u003EiPod\u003C/a\u003E to store it.\u003C/p\u003E\n\n\u003Cp\u003ESteve Jobs lives with his wife, Laurene Powell and their three children in Silicon Valley. He also has a daughter, Lisa Jobs from a previous relationship. In 2004, there was a cancerous tumor in his pancreas, which was successfully operated upon. Jobs continued to struggle with his health, and in 2009 he underwent a successful liver transplant.\u003C/p\u003E\n\n\u003Cp\u003EJobs resigned as CEO of Apple in August 2011 and subsequently assumed the role of Chairman of the Board.\u003C/p\u003E",
19
+ "image":
20
+ {"available_sizes":
21
+ [[[150,
22
+ 150],
23
+ "assets/images/resized/0001/0974/10974v3-max-150x150.jpg"],
24
+ [[250,
25
+ 250],
26
+ "assets/images/resized/0001/0974/10974v3-max-250x250.jpg"],
27
+ [[400,
28
+ 400],
29
+ "assets/images/resized/0001/0974/10974v3-max-450x450.jpg"]],
30
+ "attribution": ""},
31
+ "degrees":
32
+ [],
33
+ "relationships":
34
+ [{"is_past": true,
35
+ "title": "CEO",
36
+ "firm":
37
+ {"name": "Apple",
38
+ "permalink": "apple",
39
+ "type_of_entity": "company"}},
40
+ {"is_past": false,
41
+ "title": "Founder",
42
+ "firm":
43
+ {"name": "Pixar",
44
+ "permalink": "pixar",
45
+ "type_of_entity": "company"}},
46
+ {"is_past": false,
47
+ "title": "Founder",
48
+ "firm":
49
+ {"name": "NeXT",
50
+ "permalink": "next",
51
+ "type_of_entity": "company"}},
52
+ {"is_past": false,
53
+ "title": "Chairman, Co-Founder",
54
+ "firm":
55
+ {"name": "Apple",
56
+ "permalink": "apple",
57
+ "type_of_entity": "company"}}],
58
+ "investments":
59
+ [],
60
+ "milestones":
61
+ [{"description": "Named one of Time Magazine's top 25 most influential people on the web (2008)",
62
+ "stoned_year": 2009,
63
+ "stoned_month": 4,
64
+ "stoned_day": 30,
65
+ "source_url": "http://images.businessweek.com/ss/08/09/0929_most_influential/1.htm",
66
+ "source_text": "",
67
+ "source_description": "The 25 Most Influential People on the Web",
68
+ "stoneable_type": "Person",
69
+ "stoned_value": null,
70
+ "stoned_value_type": null,
71
+ "stoned_acquirer": null,
72
+ "stoneable":
73
+ {"first_name": "Steve",
74
+ "last_name": "Jobs",
75
+ "permalink": "steve-jobs"}}],
76
+ "video_embeds":
77
+ [{"embed_code": "\u003Cobject width=\"480\" height=\"385\"\u003E\u003Cparam name=\"movie\" value=\"http://www.youtube.com/v/D1R-jKKp3NA\u0026hl=en\u0026fs=1\"\u003E\u003C/param\u003E\u003Cparam name=\"allowFullScreen\" value=\"true\"\u003E\u003C/param\u003E\u003Cparam name=\"allowscriptaccess\" value=\"always\"\u003E\u003C/param\u003E\u003Cembed src=\"http://www.youtube.com/v/D1R-jKKp3NA\u0026hl=en\u0026fs=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"480\" height=\"385\"\u003E\u003C/embed\u003E\u003C/object\u003E",
78
+ "description": "\u003Cp\u003ESteve Jobs delivering his commencement speech to the graduates of Stanford University in 2005\u003C/p\u003E"}],
79
+ "external_links":
80
+ [{"external_url": "http://thcx.org/tech-news/ipad-the-apple-tablet-all-you-need-to-know.html",
81
+ "title": "iPad"}],
82
+ "web_presences":
83
+ []}
@@ -0,0 +1,4 @@
1
+ $LOAD_PATH << File.join(File.dirname(__FILE__), "..", "lib")
2
+ require 'rspec'
3
+ require 'crunchbase'
4
+ require 'date'
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: crunchbase
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Tyler Cunnion
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-12 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: &70283755317100 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70283755317100
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &70283755316060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70283755316060
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &70283755314920 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70283755314920
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &70283755313820 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.4
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70283755313820
58
+ - !ruby/object:Gem::Dependency
59
+ name: rcov
60
+ requirement: &70283755312820 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70283755312820
69
+ description:
70
+ email: tyler.cunnion@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files:
74
+ - LICENSE.txt
75
+ - README.rdoc
76
+ files:
77
+ - VERSION
78
+ - lib/crunchbase.rb
79
+ - lib/crunchbase/api.rb
80
+ - lib/crunchbase/cb_object.rb
81
+ - lib/crunchbase/company.rb
82
+ - lib/crunchbase/crunch_exception.rb
83
+ - lib/crunchbase/person.rb
84
+ - spec/crunchbase/api_spec.rb
85
+ - spec/crunchbase/company_spec.rb
86
+ - spec/crunchbase/person_spec.rb
87
+ - spec/fixtures/brad-fitzpatrick.js
88
+ - spec/fixtures/steve-jobs.js
89
+ - spec/spec_helper.rb
90
+ - LICENSE.txt
91
+ - README.rdoc
92
+ homepage: http://github.com/tylercunnion/crunchbase
93
+ licenses:
94
+ - MIT
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ segments:
106
+ - 0
107
+ hash: 4570443541107244094
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubyforge_project:
116
+ rubygems_version: 1.8.6
117
+ signing_key:
118
+ specification_version: 3
119
+ summary: Ruby wrapper for CrunchBase API
120
+ test_files: []