linkedin 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -15,6 +15,7 @@ begin
15
15
 
16
16
  gem.add_dependency('oauth', '~> 0.3.5')
17
17
  gem.add_dependency('roxml', '~> 3.1.3')
18
+ gem.add_dependency('crack', '~> 0.1.4')
18
19
 
19
20
  gem.add_development_dependency('thoughtbot-shoulda', '>= 2.10.1')
20
21
  gem.add_development_dependency('jnunemaker-matchy', '0.4.0')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.1.0
@@ -51,6 +51,20 @@ module LinkedIn
51
51
  response.body
52
52
  end
53
53
 
54
+ def put(path, options={})
55
+ path = "/v1#{path}"
56
+ response = access_token.put(path, options)
57
+ raise_errors(response)
58
+ response
59
+ end
60
+
61
+ def delete(path, options={})
62
+ path = "/v1#{path}"
63
+ response = access_token.delete(path, options)
64
+ raise_errors(response)
65
+ response
66
+ end
67
+
54
68
 
55
69
  def profile(options={})
56
70
 
@@ -81,6 +95,42 @@ module LinkedIn
81
95
  Connections.from_xml(get(path)).profiles
82
96
  end
83
97
 
98
+ def search(options={})
99
+ path = "/people"
100
+ options = {:keywords => options} if options.is_a?(String)
101
+ options = format_options_for_query(options)
102
+
103
+ People.from_xml(get(to_uri(path, options)))
104
+ end
105
+
106
+ def current_status
107
+ path = "/people/~/current-status"
108
+ Crack::XML.parse(get(path))['current_status']
109
+ end
110
+
111
+ def update_status(text)
112
+ path = "/people/~/current-status"
113
+ put(path, status_to_xml(text))
114
+ end
115
+
116
+ def clear_status
117
+ path = "/people/~/current-status"
118
+ delete(path).code
119
+ end
120
+
121
+ def network_statuses(options={})
122
+ options[:type] = 'STAT'
123
+ network_updates(options)
124
+ end
125
+
126
+ def network_updates(options={})
127
+ path = "/people/~/network"
128
+ Network.from_xml(get(to_uri(path, options)))
129
+ end
130
+
131
+
132
+
133
+
84
134
  # helpful in making authenticated calls and writing the
85
135
  # raw xml to a fixture file
86
136
  def write_fixture(path, filename)
@@ -100,15 +150,37 @@ module LinkedIn
100
150
  raise Unavailable, "(#{response.code}): #{response.message}"
101
151
  end
102
152
 
103
- if response.body.include?("<error>")
153
+ if response.body && response.body.include?("<error>")
104
154
  error = LinkedIn::Error.from_xml(response.body)
105
- case error.status
106
- when 404
107
- Raise LinkedInError, "(#{error.status}): #{error.code} - #{error.message}"
108
- end
155
+ Raise LinkedInError, "(#{error.status}): #{error.code} - #{error.message}"
156
+ end
157
+ end
158
+
159
+ def format_options_for_query(opts)
160
+ opts.keys.each do |key|
161
+ value = opts.delete(key)
162
+ value = value.join("+") if value.is_a?(Array)
163
+ value = value.gsub(" ", "+") if value.is_a?(String)
164
+ opts[key.to_s.gsub("_","-")] = value
109
165
  end
166
+ opts
167
+ end
168
+
169
+ def to_query(options)
170
+ options.inject([]) do |collection, opt|
171
+ collection << "#{opt[0]}=#{opt[1]}"
172
+ collection
173
+ end * '&'
110
174
  end
175
+
176
+ def to_uri(path, options)
177
+ uri = URI.parse(path)
111
178
 
179
+ if options && options != {}
180
+ uri.query = to_query(options)
181
+ end
182
+ uri.to_s
183
+ end
112
184
 
113
185
  def person_path(options)
114
186
  path = "/people/"
@@ -123,6 +195,10 @@ module LinkedIn
123
195
  end
124
196
  end
125
197
 
198
+ def status_to_xml(status)
199
+ %Q{<?xml version="1.0" encoding="UTF-8"?>
200
+ <current-status>#{status}</current-status>}
201
+ end
126
202
 
127
203
 
128
204
  end
@@ -0,0 +1,7 @@
1
+ module LinkedIn
2
+ class Network
3
+ include ROXML
4
+ xml_convention {|val| val.gsub("_","-") }
5
+ xml_reader :updates, :as => [Update]
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module LinkedIn
2
+ class People
3
+ include ROXML
4
+ xml_convention {|val| val.gsub("_","-") }
5
+ xml_reader :total, :as => Integer, :from => "@total"
6
+ xml_reader :start, :as => Integer, :from => "@start"
7
+ xml_reader :count, :as => Integer, :from => "@count"
8
+ xml_reader :profiles, :as => [Profile], :from => 'person'
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module LinkedIn
2
+ class Update
3
+ include ROXML
4
+ xml_convention {|val| val.gsub("_","-") }
5
+ xml_reader :timestamp, :as => Integer
6
+ xml_reader :update_key
7
+ xml_reader :update_type
8
+ xml_reader :profile, :as => Profile, :from => 'update-content/person'
9
+ xml_reader :is_commentable?
10
+ end
11
+ end
@@ -7,6 +7,9 @@ require 'oauth'
7
7
  gem 'roxml', '~> 3.1.3'
8
8
  require 'roxml'
9
9
 
10
+ gem 'crack', '~> 0.1.4'
11
+ require 'crack'
12
+
10
13
  require 'cgi'
11
14
 
12
15
  module LinkedIn
@@ -38,5 +41,8 @@ require File.join(directory, 'linked_in', 'education')
38
41
  require File.join(directory, 'linked_in', 'location')
39
42
  require File.join(directory, 'linked_in', 'position')
40
43
  require File.join(directory, 'linked_in', 'profile')
44
+ require File.join(directory, 'linked_in', 'update')
45
+ require File.join(directory, 'linked_in', 'network')
46
+ require File.join(directory, 'linked_in', 'people')
41
47
  require File.join(directory, 'linked_in', 'connections')
42
48
  require File.join(directory, 'linked_in', 'client')
@@ -44,6 +44,61 @@ class ClientTest < Test::Unit::TestCase
44
44
  cons.size.should == 146
45
45
  cons.last.last_name.should == 'Yuchnewicz'
46
46
  end
47
+
48
+ should "perform a search by keyword" do
49
+ stub_get("/v1/people?keywords=github", "search.xml")
50
+ results = @linkedin.search(:keywords => 'github')
51
+ results.start == 0
52
+ results.count == 10
53
+ results.profiles.first.first_name.should == 'Zach'
54
+ results.profiles.first.last_name.should == 'Inglis'
55
+ end
56
+
57
+ should "perform a search by multiple keywords" do
58
+ stub_get("/v1/people?keywords=ruby+rails", "search.xml")
59
+ results = @linkedin.search(:keywords => ["ruby", "rails"])
60
+ results.start == 0
61
+ results.count == 10
62
+ results.profiles.first.first_name.should == 'Zach'
63
+ results.profiles.first.last_name.should == 'Inglis'
64
+ end
65
+
66
+ should "perform a search by name" do
67
+ stub_get("/v1/people?name=Zach+Inglis", "search.xml")
68
+ results = @linkedin.search(:name => "Zach Inglis")
69
+ results.start == 0
70
+ results.count == 10
71
+ results.profiles.first.first_name.should == 'Zach'
72
+ results.profiles.first.last_name.should == 'Inglis'
73
+ end
74
+
75
+ should "update a user's current status" do
76
+ stub_put("/v1/people/~/current-status", "blank.xml")
77
+ @linkedin.update_status("Testing out the LinkedIn API")
78
+ end
79
+
80
+ should "clear a user's current status" do
81
+ stub_delete("/v1/people/~/current-status", "blank.xml")
82
+ @linkedin.clear_status
83
+ end
84
+
85
+ should "retrieve the authenticated user's current status" do
86
+ stub_get("/v1/people/~/current-status", "status.xml")
87
+ @linkedin.current_status.should == "New blog post: What makes a good API wrapper? http://wynnnetherland.com/2009/11/what-makes-a-good-api-wrapper/"
88
+ end
89
+
90
+ should "retrieve status updates for the authenticated user's network" do
91
+ stub_get("/v1/people/~/network?type=STAT", "network_statuses.xml")
92
+ stats = @linkedin.network_statuses
93
+ stats.updates.first.profile.first_name.should == 'Vahid'
94
+ end
95
+
96
+ should "retrieve network updates" do
97
+ stub_get("/v1/people/~/network?type=PICT", "picture_updates.xml")
98
+ stats = @linkedin.network_updates(:type => "PICT")
99
+ stats.updates.size.should == 4
100
+ stats.updates.last.profile.headline.should == "Creative Director for Intridea"
101
+ end
47
102
 
48
103
  end
49
104
 
File without changes
@@ -0,0 +1,279 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <network>
3
+ <network-stats total="2">
4
+ <property key="degree-1-count">146</property>
5
+ <property key="degree-2-count">16998</property>
6
+ </network-stats>
7
+ <updates total="122" start="0" count="10">
8
+ <update>
9
+ <timestamp>1259179809524</timestamp>
10
+ <update-key>STAT-19408512-118-*1</update-key>
11
+ <update-type>STAT</update-type>
12
+ <update-content>
13
+ <person>
14
+ <id>19408512</id>
15
+ <first-name>Vahid</first-name>
16
+ <last-name>Behzadi (vahid@cybercoders.com)</last-name>
17
+ <headline>Executive Recruiter at CyberCoders - Recruiting Manager</headline>
18
+ <current-status>said: Etsy Dallas Jingle Bash – Shop local for the Holidays http://ping.fm/0P80n(I+live+in+Dallas)</current-status>
19
+ <api-standard-profile-request>
20
+ <url>http://api.linkedin.com/v1/people/Hz_9mRaUxh:full</url>
21
+ <headers total="1">
22
+ <http-header>
23
+ <name>x-li-auth-token</name>
24
+ <value>name:EPo9</value>
25
+ </http-header>
26
+ </headers>
27
+ </api-standard-profile-request>
28
+ <site-standard-profile-request>
29
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=19408512&amp;authToken=EPo9&amp;authType=name</url>
30
+ </site-standard-profile-request>
31
+ </person>
32
+ </update-content>
33
+ <is-commentable>true</is-commentable>
34
+ </update>
35
+ <update>
36
+ <timestamp>1259134444850</timestamp>
37
+ <update-key>STAT-10801267-18-*1</update-key>
38
+ <update-type>STAT</update-type>
39
+ <update-content>
40
+ <person>
41
+ <id>10801267</id>
42
+ <first-name>Michael</first-name>
43
+ <last-name>Bleigh</last-name>
44
+ <headline>Creative Director for Intridea</headline>
45
+ <current-status>Hate it when I get the ideas for four or five lengthy blog posts but don't have time to write any of them.</current-status>
46
+ <api-standard-profile-request>
47
+ <url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
48
+ <headers total="1">
49
+ <http-header>
50
+ <name>x-li-auth-token</name>
51
+ <value>name:BcLL</value>
52
+ </http-header>
53
+ </headers>
54
+ </api-standard-profile-request>
55
+ <site-standard-profile-request>
56
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=10801267&amp;authToken=BcLL&amp;authType=name</url>
57
+ </site-standard-profile-request>
58
+ </person>
59
+ </update-content>
60
+ <is-commentable>true</is-commentable>
61
+ </update>
62
+ <update>
63
+ <timestamp>1259118559812</timestamp>
64
+ <update-key>STAT-10801267-17-*1</update-key>
65
+ <update-type>STAT</update-type>
66
+ <update-content>
67
+ <person>
68
+ <id>10801267</id>
69
+ <first-name>Michael</first-name>
70
+ <last-name>Bleigh</last-name>
71
+ <headline>Creative Director for Intridea</headline>
72
+ <current-status>If you aren't exposing it to change in your app's UI, why do you need it in the database at all? Ex. currencies, roles, countries...</current-status>
73
+ <api-standard-profile-request>
74
+ <url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
75
+ <headers total="1">
76
+ <http-header>
77
+ <name>x-li-auth-token</name>
78
+ <value>name:BcLL</value>
79
+ </http-header>
80
+ </headers>
81
+ </api-standard-profile-request>
82
+ <site-standard-profile-request>
83
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=10801267&amp;authToken=BcLL&amp;authType=name</url>
84
+ </site-standard-profile-request>
85
+ </person>
86
+ </update-content>
87
+ <is-commentable>true</is-commentable>
88
+ </update>
89
+ <update>
90
+ <timestamp>1259104574686</timestamp>
91
+ <update-key>STAT-19408512-116-*1</update-key>
92
+ <update-type>STAT</update-type>
93
+ <update-content>
94
+ <person>
95
+ <id>19408512</id>
96
+ <first-name>Vahid</first-name>
97
+ <last-name>Behzadi (vahid@cybercoders.com)</last-name>
98
+ <headline>Executive Recruiter at CyberCoders - Recruiting Manager</headline>
99
+ <current-status>said: Nokia – The story of an Awesomely Innovative Company getting Out-innovated http://ping.fm/yTGmL</current-status>
100
+ <api-standard-profile-request>
101
+ <url>http://api.linkedin.com/v1/people/Hz_9mRaUxh:full</url>
102
+ <headers total="1">
103
+ <http-header>
104
+ <name>x-li-auth-token</name>
105
+ <value>name:EPo9</value>
106
+ </http-header>
107
+ </headers>
108
+ </api-standard-profile-request>
109
+ <site-standard-profile-request>
110
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=19408512&amp;authToken=EPo9&amp;authType=name</url>
111
+ </site-standard-profile-request>
112
+ </person>
113
+ </update-content>
114
+ <is-commentable>true</is-commentable>
115
+ </update>
116
+ <update>
117
+ <timestamp>1259094708174</timestamp>
118
+ <update-key>STAT-16571819-52-*1</update-key>
119
+ <update-type>STAT</update-type>
120
+ <update-content>
121
+ <person>
122
+ <id>16571819</id>
123
+ <first-name>Brian</first-name>
124
+ <last-name>Blankenship</last-name>
125
+ <headline>Interactive Creative Director at Balcom Agency</headline>
126
+ <current-status>Thanks @consuro for keeping @balcomagency humming today!</current-status>
127
+ <api-standard-profile-request>
128
+ <url>http://api.linkedin.com/v1/people/-5o6E7ti32:full</url>
129
+ <headers total="1">
130
+ <http-header>
131
+ <name>x-li-auth-token</name>
132
+ <value>name:NZ8c</value>
133
+ </http-header>
134
+ </headers>
135
+ </api-standard-profile-request>
136
+ <site-standard-profile-request>
137
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=16571819&amp;authToken=NZ8c&amp;authType=name</url>
138
+ </site-standard-profile-request>
139
+ </person>
140
+ </update-content>
141
+ <is-commentable>true</is-commentable>
142
+ </update>
143
+ <update>
144
+ <timestamp>1259094344698</timestamp>
145
+ <update-key>STAT-16571819-50-*1</update-key>
146
+ <update-type>STAT</update-type>
147
+ <update-content>
148
+ <person>
149
+ <id>16571819</id>
150
+ <first-name>Brian</first-name>
151
+ <last-name>Blankenship</last-name>
152
+ <headline>Interactive Creative Director at Balcom Agency</headline>
153
+ <current-status>Balcomites @balcomagency @chiphanna @sanichols etc buzz me via dm on Twit. Can't access anything else. Net still down?</current-status>
154
+ <api-standard-profile-request>
155
+ <url>http://api.linkedin.com/v1/people/-5o6E7ti32:full</url>
156
+ <headers total="1">
157
+ <http-header>
158
+ <name>x-li-auth-token</name>
159
+ <value>name:NZ8c</value>
160
+ </http-header>
161
+ </headers>
162
+ </api-standard-profile-request>
163
+ <site-standard-profile-request>
164
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=16571819&amp;authToken=NZ8c&amp;authType=name</url>
165
+ </site-standard-profile-request>
166
+ </person>
167
+ </update-content>
168
+ <is-commentable>true</is-commentable>
169
+ </update>
170
+ <update>
171
+ <timestamp>1259083650707</timestamp>
172
+ <update-key>STAT-3429308-40-*1</update-key>
173
+ <update-type>STAT</update-type>
174
+ <update-content>
175
+ <person>
176
+ <id>3429308</id>
177
+ <first-name>Daniel</first-name>
178
+ <last-name>Lathrop</last-name>
179
+ <headline>Digital Strategist at InvestigateWest</headline>
180
+ <current-status>My niece texted so much she broke her phone's keyboard. Now she has to text 'the old fashioned way.</current-status>
181
+ <api-standard-profile-request>
182
+ <url>http://api.linkedin.com/v1/people/1bJ9lghNE-:full</url>
183
+ <headers total="1">
184
+ <http-header>
185
+ <name>x-li-auth-token</name>
186
+ <value>name:FBW_</value>
187
+ </http-header>
188
+ </headers>
189
+ </api-standard-profile-request>
190
+ <site-standard-profile-request>
191
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=3429308&amp;authToken=FBW_&amp;authType=name</url>
192
+ </site-standard-profile-request>
193
+ </person>
194
+ </update-content>
195
+ <is-commentable>true</is-commentable>
196
+ </update>
197
+ <update>
198
+ <timestamp>1259080455770</timestamp>
199
+ <update-key>STAT-19408512-114-*1</update-key>
200
+ <update-type>STAT</update-type>
201
+ <update-content>
202
+ <person>
203
+ <id>19408512</id>
204
+ <first-name>Vahid</first-name>
205
+ <last-name>Behzadi (vahid@cybercoders.com)</last-name>
206
+ <headline>Executive Recruiter at CyberCoders - Recruiting Manager</headline>
207
+ <current-status>said: Eliot Spitzer, Now More Than Ever http://ping.fm/vUB3V</current-status>
208
+ <api-standard-profile-request>
209
+ <url>http://api.linkedin.com/v1/people/Hz_9mRaUxh:full</url>
210
+ <headers total="1">
211
+ <http-header>
212
+ <name>x-li-auth-token</name>
213
+ <value>name:EPo9</value>
214
+ </http-header>
215
+ </headers>
216
+ </api-standard-profile-request>
217
+ <site-standard-profile-request>
218
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=19408512&amp;authToken=EPo9&amp;authType=name</url>
219
+ </site-standard-profile-request>
220
+ </person>
221
+ </update-content>
222
+ <is-commentable>true</is-commentable>
223
+ </update>
224
+ <update>
225
+ <timestamp>1259042672786</timestamp>
226
+ <update-key>STAT-10801267-16-*1</update-key>
227
+ <update-type>STAT</update-type>
228
+ <update-content>
229
+ <person>
230
+ <id>10801267</id>
231
+ <first-name>Michael</first-name>
232
+ <last-name>Bleigh</last-name>
233
+ <headline>Creative Director for Intridea</headline>
234
+ <current-status>Anyone have an available couch.io or mongohq invite or code?</current-status>
235
+ <api-standard-profile-request>
236
+ <url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
237
+ <headers total="1">
238
+ <http-header>
239
+ <name>x-li-auth-token</name>
240
+ <value>name:BcLL</value>
241
+ </http-header>
242
+ </headers>
243
+ </api-standard-profile-request>
244
+ <site-standard-profile-request>
245
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=10801267&amp;authToken=BcLL&amp;authType=name</url>
246
+ </site-standard-profile-request>
247
+ </person>
248
+ </update-content>
249
+ <is-commentable>true</is-commentable>
250
+ </update>
251
+ <update>
252
+ <timestamp>1259019816599</timestamp>
253
+ <update-key>STAT-16571819-49-*1</update-key>
254
+ <update-type>STAT</update-type>
255
+ <update-content>
256
+ <person>
257
+ <id>16571819</id>
258
+ <first-name>Brian</first-name>
259
+ <last-name>Blankenship</last-name>
260
+ <headline>Interactive Creative Director at Balcom Agency</headline>
261
+ <current-status>RT @ULTRACEPT Many businesses unprepared for flu-related absences | Top Stories | Star-Telegram.com: http://bit.ly/6CqJ6T via @addthis</current-status>
262
+ <api-standard-profile-request>
263
+ <url>http://api.linkedin.com/v1/people/-5o6E7ti32:full</url>
264
+ <headers total="1">
265
+ <http-header>
266
+ <name>x-li-auth-token</name>
267
+ <value>name:NZ8c</value>
268
+ </http-header>
269
+ </headers>
270
+ </api-standard-profile-request>
271
+ <site-standard-profile-request>
272
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=16571819&amp;authToken=NZ8c&amp;authType=name</url>
273
+ </site-standard-profile-request>
274
+ </person>
275
+ </update-content>
276
+ <is-commentable>true</is-commentable>
277
+ </update>
278
+ </updates>
279
+ </network>
@@ -0,0 +1,117 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <network>
3
+ <network-stats total="2">
4
+ <property key="degree-1-count">146</property>
5
+ <property key="degree-2-count">17000</property>
6
+ </network-stats>
7
+ <updates total="4">
8
+ <update>
9
+ <timestamp>1258714582136</timestamp>
10
+ <update-key>PICU-6043885-ffe88342*3bee0*3453f*38ffb*3460fde2eb011-*1</update-key>
11
+ <update-type>PICU</update-type>
12
+ <update-content>
13
+ <person>
14
+ <id>6043885</id>
15
+ <first-name>Darrin</first-name>
16
+ <last-name>Tvrdy, PMP</last-name>
17
+ <headline>Project Manager / Business Systems Analyst IV at Hewlett-Packard</headline>
18
+ <picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/1/000/03d/0d8/2c32744.jpg</picture-url>
19
+ <api-standard-profile-request>
20
+ <url>http://api.linkedin.com/v1/people/xNOObJb-yZ:full</url>
21
+ <headers total="1">
22
+ <http-header>
23
+ <name>x-li-auth-token</name>
24
+ <value>name:5DNj</value>
25
+ </http-header>
26
+ </headers>
27
+ </api-standard-profile-request>
28
+ <site-standard-profile-request>
29
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=6043885&amp;authToken=5DNj&amp;authType=name</url>
30
+ </site-standard-profile-request>
31
+ </person>
32
+ </update-content>
33
+ <is-commentable>true</is-commentable>
34
+ </update>
35
+ <update>
36
+ <timestamp>1258476132751</timestamp>
37
+ <update-key>PICU-6043885-070638e9*36873*34b5f*3ae0e*38317a0b7f845-*1</update-key>
38
+ <update-type>PICU</update-type>
39
+ <update-content>
40
+ <person>
41
+ <id>6043885</id>
42
+ <first-name>Darrin</first-name>
43
+ <last-name>Tvrdy, PMP</last-name>
44
+ <headline>Project Manager / Business Systems Analyst IV at Hewlett-Packard</headline>
45
+ <picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/1/000/03c/2b2/32dd2ae.jpg</picture-url>
46
+ <api-standard-profile-request>
47
+ <url>http://api.linkedin.com/v1/people/xNOObJb-yZ:full</url>
48
+ <headers total="1">
49
+ <http-header>
50
+ <name>x-li-auth-token</name>
51
+ <value>name:5DNj</value>
52
+ </http-header>
53
+ </headers>
54
+ </api-standard-profile-request>
55
+ <site-standard-profile-request>
56
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=6043885&amp;authToken=5DNj&amp;authType=name</url>
57
+ </site-standard-profile-request>
58
+ </person>
59
+ </update-content>
60
+ <is-commentable>true</is-commentable>
61
+ </update>
62
+ <update>
63
+ <timestamp>1257874533025</timestamp>
64
+ <update-key>PICU-58354393-3ce71c91*32ae4*349e4*39292*3fe67cf5f53e3-*1</update-key>
65
+ <update-type>PICU</update-type>
66
+ <update-content>
67
+ <person>
68
+ <id>58354393</id>
69
+ <first-name>Paula</first-name>
70
+ <last-name>Netherland</last-name>
71
+ <headline>Owner, TreeFrog Studios</headline>
72
+ <picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/3/000/03b/1fd/191b80c.jpg</picture-url>
73
+ <api-standard-profile-request>
74
+ <url>http://api.linkedin.com/v1/people/Wg56CgmrNZ:full</url>
75
+ <headers total="1">
76
+ <http-header>
77
+ <name>x-li-auth-token</name>
78
+ <value>name:ykZL</value>
79
+ </http-header>
80
+ </headers>
81
+ </api-standard-profile-request>
82
+ <site-standard-profile-request>
83
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=58354393&amp;authToken=ykZL&amp;authType=name</url>
84
+ </site-standard-profile-request>
85
+ </person>
86
+ </update-content>
87
+ <is-commentable>true</is-commentable>
88
+ </update>
89
+ <update>
90
+ <timestamp>1257862249721</timestamp>
91
+ <update-key>PICU-10801267-44155327*3e1a1*340bf*38507*313d4f654b91f-*1</update-key>
92
+ <update-type>PICU</update-type>
93
+ <update-content>
94
+ <person>
95
+ <id>10801267</id>
96
+ <first-name>Michael</first-name>
97
+ <last-name>Bleigh</last-name>
98
+ <headline>Creative Director for Intridea</headline>
99
+ <picture-url>http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/03b/1d6/1ae8bb6.jpg</picture-url>
100
+ <api-standard-profile-request>
101
+ <url>http://api.linkedin.com/v1/people/zIVkLLOYia:full</url>
102
+ <headers total="1">
103
+ <http-header>
104
+ <name>x-li-auth-token</name>
105
+ <value>name:BcLL</value>
106
+ </http-header>
107
+ </headers>
108
+ </api-standard-profile-request>
109
+ <site-standard-profile-request>
110
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=10801267&amp;authToken=BcLL&amp;authType=name</url>
111
+ </site-standard-profile-request>
112
+ </person>
113
+ </update-content>
114
+ <is-commentable>true</is-commentable>
115
+ </update>
116
+ </updates>
117
+ </network>
@@ -0,0 +1,538 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <people total="152" start="0" count="10">
3
+ <person>
4
+ <id>U6YB1O2bqv</id>
5
+ <first-name>Zach</first-name>
6
+ <last-name>Inglis</last-name>
7
+ <headline>Partner at London Made</headline>
8
+ <location>
9
+ <name>United Kingdom</name>
10
+ <country>
11
+ <code>gb</code>
12
+ </country>
13
+ </location>
14
+ <industry>Online Media</industry>
15
+ <connections total="333" />
16
+ <num-recommenders>0</num-recommenders>
17
+ <distance>1</distance>
18
+ <positions total="3">
19
+ <position>
20
+ <id>54820459</id>
21
+ <title>Owner</title>
22
+ <summary>London Made is a development and design shop. We also offer training and recruitment.</summary>
23
+ <start-date>
24
+ <year>2008</year>
25
+ <month>11</month>
26
+ </start-date>
27
+ <is-current>true</is-current>
28
+ <company>
29
+ <name>London Made</name>
30
+ </company>
31
+ </position>
32
+ <position>
33
+ <id>47016515</id>
34
+ <title>Writer</title>
35
+ <start-date>
36
+ <year>2008</year>
37
+ <month>8</month>
38
+ </start-date>
39
+ <is-current>true</is-current>
40
+ <company>
41
+ <name>Ruby Inside</name>
42
+ </company>
43
+ </position>
44
+ <position>
45
+ <id>30985289</id>
46
+ <title>Partner</title>
47
+ <summary>Clipgarden allows you to earn money by recording the things you do best. We’re still in the early stages of development but continue to hear positive things.</summary>
48
+ <start-date>
49
+ <year>2007</year>
50
+ <month>8</month>
51
+ </start-date>
52
+ <is-current>true</is-current>
53
+ <company>
54
+ <name>Clipgarden</name>
55
+ </company>
56
+ </position>
57
+ </positions>
58
+ <api-standard-profile-request>
59
+ <url>http://api.linkedin.com/v1/people/U6YB1O2bqv:full</url>
60
+ <headers total="1">
61
+ <http-header>
62
+ <name>x-li-auth-token</name>
63
+ <value>OUT_OF_NETWORK:h0Rc</value>
64
+ </http-header>
65
+ </headers>
66
+ </api-standard-profile-request>
67
+ <site-standard-profile-request>
68
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=3669630&amp;authToken=h0Rc&amp;authType=OUT_OF_NETWORK</url>
69
+ </site-standard-profile-request>
70
+ </person>
71
+ <person>
72
+ <id>OVeaSymWcX</id>
73
+ <first-name>Zach</first-name>
74
+ <last-name>Moazeni</last-name>
75
+ <headline>Founder at Downstream</headline>
76
+ <location>
77
+ <name>Greater Grand Rapids, Michigan Area</name>
78
+ </location>
79
+ <industry>Computer Software</industry>
80
+ <connections total="93" />
81
+ <num-recommenders>0</num-recommenders>
82
+ <distance>2</distance>
83
+ <positions total="2">
84
+ <position>
85
+ <id>78139799</id>
86
+ <title>Founder</title>
87
+ <summary>As a co-founder of Downstream, I am tasked with the development in order to bring the product to launch. I am also responsible for the Application Scaling plans as well as helping give language to the other founders as they communicate to investors.</summary>
88
+ <start-date>
89
+ <year>2009</year>
90
+ <month>5</month>
91
+ </start-date>
92
+ <is-current>true</is-current>
93
+ <company>
94
+ <name>Downstream</name>
95
+ </company>
96
+ </position>
97
+ <position>
98
+ <id>14106883</id>
99
+ <title>Software Developer</title>
100
+ <summary>I've taken the technical lead on many of Elevator Up's projects from decision, design, and the implementation. Beyond the codebase itself, I have also been tasked to train junior developers to become productive contributors to the team. These projects have exposed me to many leading edge open source technologies surrounding the Rails stack.
101
+
102
+ Though my role is primarily as a developer, I've also taken responsibility in a wide variety of non-software areas. Business Planning, Business/Revenue Modeling, Interviewing/Hiring, Proposals, Estimating, Project Management, Server and Network Engineering/Administration, User Interface Design. My role(s) have consistently required me to distill technical knowledge and translate it into business terms.</summary>
103
+ <start-date>
104
+ <year>2007</year>
105
+ <month>1</month>
106
+ </start-date>
107
+ <is-current>true</is-current>
108
+ <company>
109
+ <name>Elevator Up</name>
110
+ </company>
111
+ </position>
112
+ </positions>
113
+ <api-standard-profile-request>
114
+ <url>http://api.linkedin.com/v1/people/OVeaSymWcX:full</url>
115
+ <headers total="1">
116
+ <http-header>
117
+ <name>x-li-auth-token</name>
118
+ <value>OUT_OF_NETWORK:-TzE</value>
119
+ </http-header>
120
+ </headers>
121
+ </api-standard-profile-request>
122
+ <site-standard-profile-request>
123
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=10342418&amp;authToken=-TzE&amp;authType=OUT_OF_NETWORK</url>
124
+ </site-standard-profile-request>
125
+ </person>
126
+ <person>
127
+ <id>HbUhpG4QBG</id>
128
+ <first-name>Kyle</first-name>
129
+ <last-name>Neath</last-name>
130
+ <headline>Designer for GitHub</headline>
131
+ <location>
132
+ <name>San Francisco Bay Area</name>
133
+ </location>
134
+ <industry>Internet</industry>
135
+ <connections total="103" />
136
+ <num-recommenders>0</num-recommenders>
137
+ <distance>2</distance>
138
+ <positions total="1">
139
+ <position>
140
+ <id>91660562</id>
141
+ <title>Designer</title>
142
+ <summary>I make shiny things for http://github.com and other Logical Awesome offerings.</summary>
143
+ <start-date>
144
+ <year>2009</year>
145
+ <month>10</month>
146
+ </start-date>
147
+ <is-current>true</is-current>
148
+ <company>
149
+ <name>Logical Awesome</name>
150
+ </company>
151
+ </position>
152
+ </positions>
153
+ <api-standard-profile-request>
154
+ <url>http://api.linkedin.com/v1/people/HbUhpG4QBG:full</url>
155
+ <headers total="1">
156
+ <http-header>
157
+ <name>x-li-auth-token</name>
158
+ <value>OUT_OF_NETWORK:Tia4</value>
159
+ </http-header>
160
+ </headers>
161
+ </api-standard-profile-request>
162
+ <site-standard-profile-request>
163
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=5178019&amp;authToken=Tia4&amp;authType=OUT_OF_NETWORK</url>
164
+ </site-standard-profile-request>
165
+ </person>
166
+ <person>
167
+ <id>YDJZU3B5E-</id>
168
+ <first-name>Rizwan</first-name>
169
+ <last-name>Reza</last-name>
170
+ <headline>Freelance Web Developer &amp; Interaction Designer</headline>
171
+ <location>
172
+ <name>Saudi Arabia</name>
173
+ </location>
174
+ <industry>Computer Software</industry>
175
+ <connections total="46" />
176
+ <num-recommenders>0</num-recommenders>
177
+ <distance>2</distance>
178
+ <positions total="1">
179
+ <position>
180
+ <id>83027482</id>
181
+ <title>Freelance Web Developer &amp; Interaction Designer</title>
182
+ <summary></summary>
183
+ <start-date>
184
+ <year>2009</year>
185
+ <month>8</month>
186
+ </start-date>
187
+ <is-current>true</is-current>
188
+ <company>
189
+ <name>Rizwan Reza</name>
190
+ </company>
191
+ </position>
192
+ </positions>
193
+ <api-standard-profile-request>
194
+ <url>http://api.linkedin.com/v1/people/YDJZU3B5E-:full</url>
195
+ <headers total="1">
196
+ <http-header>
197
+ <name>x-li-auth-token</name>
198
+ <value>OUT_OF_NETWORK:y2-T</value>
199
+ </http-header>
200
+ </headers>
201
+ </api-standard-profile-request>
202
+ <site-standard-profile-request>
203
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=26468354&amp;authToken=y2-T&amp;authType=OUT_OF_NETWORK</url>
204
+ </site-standard-profile-request>
205
+ </person>
206
+ <person>
207
+ <id>MUidFvxKQ6</id>
208
+ <first-name>Lance</first-name>
209
+ <last-name>Ennen</last-name>
210
+ <headline>Software Consultant at Obtiva</headline>
211
+ <location>
212
+ <name>Greater Chicago Area</name>
213
+ </location>
214
+ <industry>Computer Software</industry>
215
+ <connections total="206" />
216
+ <num-recommenders>0</num-recommenders>
217
+ <distance>2</distance>
218
+ <positions total="1">
219
+ <position>
220
+ <id>82862186</id>
221
+ <title>Software Consultant</title>
222
+ <summary></summary>
223
+ <start-date>
224
+ <year>2009</year>
225
+ <month>5</month>
226
+ </start-date>
227
+ <is-current>true</is-current>
228
+ <company>
229
+ <name>Obtiva</name>
230
+ </company>
231
+ </position>
232
+ </positions>
233
+ <api-standard-profile-request>
234
+ <url>http://api.linkedin.com/v1/people/MUidFvxKQ6:full</url>
235
+ <headers total="1">
236
+ <http-header>
237
+ <name>x-li-auth-token</name>
238
+ <value>OUT_OF_NETWORK:etcX</value>
239
+ </http-header>
240
+ </headers>
241
+ </api-standard-profile-request>
242
+ <site-standard-profile-request>
243
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=19558926&amp;authToken=etcX&amp;authType=OUT_OF_NETWORK</url>
244
+ </site-standard-profile-request>
245
+ </person>
246
+ <person>
247
+ <id>KH1gMc_rDG</id>
248
+ <first-name>Dominic</first-name>
249
+ <last-name>Da Silva</last-name>
250
+ <headline>Enterprise Application Developer specilizing in Java, .NET and Ruby technologies</headline>
251
+ <location>
252
+ <name>Orlando, Florida Area</name>
253
+ </location>
254
+ <industry>Information Technology and Services</industry>
255
+ <connections total="191" />
256
+ <num-recommenders>0</num-recommenders>
257
+ <distance>2</distance>
258
+ <positions total="2">
259
+ <position>
260
+ <id>71614339</id>
261
+ <title>Software Engineer</title>
262
+ <summary>Develop .NET applications using Microsoft and ALT.NET technologies, Service Oriented Architecture, and proven enterprise and software design patterns.
263
+
264
+ Follow the SCRUM agile development methodology.</summary>
265
+ <start-date>
266
+ <year>2009</year>
267
+ <month>4</month>
268
+ </start-date>
269
+ <is-current>true</is-current>
270
+ <company>
271
+ <name>Aptitude Solutions</name>
272
+ </company>
273
+ </position>
274
+ <position>
275
+ <id>18897619</id>
276
+ <title>President / Technical Architect / Lead Developer</title>
277
+ <summary>Owner, technical architect and lead developer for an independent software development consultancy.
278
+
279
+ SilvaSoft has built numerous customer facing business web sites using Java web technologies that integrate with existing web service, shipping and secure credit card processing APIs.
280
+
281
+ We use technologies such as Java (1.4, 5, 6), Struts, JBoss Seam, Tomcat (5, 6), XFire, Apache Axis, Apache CXF and Sun Metro.
282
+
283
+ We have integrated with third party web services such as:
284
+ 1. Amazon S3
285
+ 2. PayPal credit card payment API
286
+ 3. Authorize.net credit card / check payment API
287
+ 4. UPS shipping API.
288
+
289
+ Clients include Intellavia LLC, Amazon Web Services, Chenoa Information Services, adaptiveblue and Developer.com.
290
+
291
+ Client work includes:
292
+
293
+ JVI Inspection - http://www.jviinspection.com/
294
+
295
+ Coolaroo USA - http://www.coolaroousa.com/
296
+
297
+ IAPP - http://www.iappnet.org/
298
+
299
+ BMS Biowrap - http://biometricwrap.com/
300
+
301
+ Building a Struts-Based Web Application on Amazon S3 - http://tinyurl.com/d596b6
302
+
303
+ Building a Web Application with Ruby on Rails and Amazon S3 - http://tinyurl.com/236yk4</summary>
304
+ <start-date>
305
+ <year>2003</year>
306
+ <month>9</month>
307
+ </start-date>
308
+ <is-current>true</is-current>
309
+ <company>
310
+ <name>SilvaSoft, Inc.</name>
311
+ </company>
312
+ </position>
313
+ </positions>
314
+ <api-standard-profile-request>
315
+ <url>http://api.linkedin.com/v1/people/KH1gMc_rDG:full</url>
316
+ <headers total="1">
317
+ <http-header>
318
+ <name>x-li-auth-token</name>
319
+ <value>OUT_OF_NETWORK:VunB</value>
320
+ </http-header>
321
+ </headers>
322
+ </api-standard-profile-request>
323
+ <site-standard-profile-request>
324
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=13457424&amp;authToken=VunB&amp;authType=OUT_OF_NETWORK</url>
325
+ </site-standard-profile-request>
326
+ </person>
327
+ <person>
328
+ <id>k8ASaj0HMi</id>
329
+ <first-name>Barry</first-name>
330
+ <last-name>Hess</last-name>
331
+ <headline>Independent consultant in the web world</headline>
332
+ <location>
333
+ <name>Rochester, Minnesota Area</name>
334
+ </location>
335
+ <industry>Internet</industry>
336
+ <connections total="64" />
337
+ <num-recommenders>0</num-recommenders>
338
+ <distance>2</distance>
339
+ <positions total="2">
340
+ <position>
341
+ <id>17303961</id>
342
+ <title>Prime Hacker</title>
343
+ <summary>Helping Harvest be all that it can be. Primary developer on Co-op. Manage Iridesco programmer outreach.
344
+
345
+ http://getharvest.com
346
+ http://coopapp.com
347
+ http://github.com/iridesco</summary>
348
+ <start-date>
349
+ <year>2007</year>
350
+ </start-date>
351
+ <is-current>true</is-current>
352
+ <company>
353
+ <name>Iridesco</name>
354
+ </company>
355
+ </position>
356
+ <position>
357
+ <id>16038108</id>
358
+ <title>Prime Hacker</title>
359
+ <summary>Backend programming in Ruby on Rails, I also have a sense of design and interface. Live projects:
360
+
361
+ http://followcost.com
362
+ http://scrawlers.com
363
+ http://ventorium.com
364
+ http://gethoffed.com</summary>
365
+ <start-date>
366
+ <year>2007</year>
367
+ <month>2</month>
368
+ </start-date>
369
+ <is-current>true</is-current>
370
+ <company>
371
+ <name>bjhess.com</name>
372
+ </company>
373
+ </position>
374
+ </positions>
375
+ <api-standard-profile-request>
376
+ <url>http://api.linkedin.com/v1/people/k8ASaj0HMi:full</url>
377
+ <headers total="1">
378
+ <http-header>
379
+ <name>x-li-auth-token</name>
380
+ <value>OUT_OF_NETWORK:WcpW</value>
381
+ </http-header>
382
+ </headers>
383
+ </api-standard-profile-request>
384
+ <site-standard-profile-request>
385
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=9202576&amp;authToken=WcpW&amp;authType=OUT_OF_NETWORK</url>
386
+ </site-standard-profile-request>
387
+ </person>
388
+ <person>
389
+ <id>SvKzNaGjHa</id>
390
+ <first-name>Sukhchander</first-name>
391
+ <last-name>Khanna</last-name>
392
+ <headline>Software Manufacturer, Plumber, and Mechanic</headline>
393
+ <location>
394
+ <name>Greater New York City Area</name>
395
+ </location>
396
+ <industry>Internet</industry>
397
+ <connections total="276" />
398
+ <num-recommenders>0</num-recommenders>
399
+ <distance>2</distance>
400
+ <positions total="1">
401
+ <position>
402
+ <id>95304666</id>
403
+ <title>Software Manufacturer, Plumber, and Mechanic</title>
404
+ <summary></summary>
405
+ <start-date>
406
+ <year>2009</year>
407
+ <month>11</month>
408
+ </start-date>
409
+ <is-current>true</is-current>
410
+ <company>
411
+ <name>16012</name>
412
+ </company>
413
+ </position>
414
+ </positions>
415
+ <api-standard-profile-request>
416
+ <url>http://api.linkedin.com/v1/people/SvKzNaGjHa:full</url>
417
+ <headers total="1">
418
+ <http-header>
419
+ <name>x-li-auth-token</name>
420
+ <value>OUT_OF_NETWORK:_YOz</value>
421
+ </http-header>
422
+ </headers>
423
+ </api-standard-profile-request>
424
+ <site-standard-profile-request>
425
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=7452363&amp;authToken=_YOz&amp;authType=OUT_OF_NETWORK</url>
426
+ </site-standard-profile-request>
427
+ </person>
428
+ <person>
429
+ <id>qpgZ6hzBr7</id>
430
+ <first-name>John</first-name>
431
+ <last-name>Griffiths</last-name>
432
+ <headline>Web / Media / iPhone</headline>
433
+ <location>
434
+ <name>Colchester, United Kingdom</name>
435
+ </location>
436
+ <industry>Internet</industry>
437
+ <connections total="271" />
438
+ <num-recommenders>0</num-recommenders>
439
+ <distance>2</distance>
440
+ <positions total="1">
441
+ <position>
442
+ <id>16016691</id>
443
+ <title>Owner</title>
444
+ <summary>Personal site, now 7 years &amp; going strong. Technical tutorials, code snippets &amp; research. Ported from Typo to my own RoR CMS.</summary>
445
+ <start-date>
446
+ <year>2000</year>
447
+ <month>1</month>
448
+ </start-date>
449
+ <is-current>true</is-current>
450
+ <company>
451
+ <name>Red91.com</name>
452
+ </company>
453
+ </position>
454
+ </positions>
455
+ <api-standard-profile-request>
456
+ <url>http://api.linkedin.com/v1/people/qpgZ6hzBr7:full</url>
457
+ <headers total="1">
458
+ <http-header>
459
+ <name>x-li-auth-token</name>
460
+ <value>OUT_OF_NETWORK:VtL8</value>
461
+ </http-header>
462
+ </headers>
463
+ </api-standard-profile-request>
464
+ <site-standard-profile-request>
465
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=7104192&amp;authToken=VtL8&amp;authType=OUT_OF_NETWORK</url>
466
+ </site-standard-profile-request>
467
+ </person>
468
+ <person>
469
+ <id>6Vt1KQjwGB</id>
470
+ <first-name>Matt</first-name>
471
+ <last-name>Aimonetti</last-name>
472
+ <headline>Senior Software Engineer</headline>
473
+ <location>
474
+ <name>Greater San Diego Area</name>
475
+ </location>
476
+ <industry>Computer Software</industry>
477
+ <connections total="237" />
478
+ <num-recommenders>0</num-recommenders>
479
+ <distance>2</distance>
480
+ <positions total="3">
481
+ <position>
482
+ <id>59051476</id>
483
+ <title>Evangelist/Developer Relation Engineer</title>
484
+ <summary></summary>
485
+ <start-date>
486
+ <year>2008</year>
487
+ <month>12</month>
488
+ </start-date>
489
+ <is-current>true</is-current>
490
+ <company>
491
+ <name>Ruby on Rails</name>
492
+ </company>
493
+ </position>
494
+ <position>
495
+ <id>49599478</id>
496
+ <title>Lead Evangelist/ Developer</title>
497
+ <summary>Build a critical mass of support and awareness around Merb, a flexible yet powerful Ruby framework.</summary>
498
+ <start-date>
499
+ <year>2008</year>
500
+ <month>9</month>
501
+ </start-date>
502
+ <is-current>true</is-current>
503
+ <company>
504
+ <name>Merb</name>
505
+ </company>
506
+ </position>
507
+ <position>
508
+ <id>17113878</id>
509
+ <title>Owner and Lead Developer</title>
510
+ <summary>- Help the customer evaluate and define their IT needs using Agile Methodologies
511
+ - Develop Ruby on Rails / Merb based solutions
512
+ - Evaluate effectiveness of provided solutions
513
+ - Audit on existing project
514
+ - Provide training/coaching for on-site teams</summary>
515
+ <start-date>
516
+ <year>2005</year>
517
+ <month>6</month>
518
+ </start-date>
519
+ <is-current>true</is-current>
520
+ <company>
521
+ <name>m|a agile consulting, inc.</name>
522
+ </company>
523
+ </position>
524
+ </positions>
525
+ <api-standard-profile-request>
526
+ <url>http://api.linkedin.com/v1/people/6Vt1KQjwGB:full</url>
527
+ <headers total="1">
528
+ <http-header>
529
+ <name>x-li-auth-token</name>
530
+ <value>OUT_OF_NETWORK:1QZs</value>
531
+ </http-header>
532
+ </headers>
533
+ </api-standard-profile-request>
534
+ <site-standard-profile-request>
535
+ <url>http://www.linkedin.com/profile?viewProfile=&amp;key=6347192&amp;authToken=1QZs&amp;authType=OUT_OF_NETWORK</url>
536
+ </site-standard-profile-request>
537
+ </person>
538
+ </people>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <current-status>New blog post: What makes a good API wrapper? http://wynnnetherland.com/2009/11/what-makes-a-good-api-wrapper/</current-status>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linkedin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland
@@ -32,6 +32,16 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.1.3
34
34
  version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: crack
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.1.4
44
+ version:
35
45
  - !ruby/object:Gem::Dependency
36
46
  name: thoughtbot-shoulda
37
47
  type: :development
@@ -94,16 +104,24 @@ files:
94
104
  - lib/linked_in/education.rb
95
105
  - lib/linked_in/error.rb
96
106
  - lib/linked_in/location.rb
107
+ - lib/linked_in/network.rb
108
+ - lib/linked_in/people.rb
97
109
  - lib/linked_in/position.rb
98
110
  - lib/linked_in/profile.rb
111
+ - lib/linked_in/update.rb
99
112
  - lib/linked_in/url_resource.rb
100
113
  - lib/linkedin.rb
101
114
  - test/client_test.rb
115
+ - test/fixtures/blank.xml
102
116
  - test/fixtures/connections.xml
103
117
  - test/fixtures/error.xml
118
+ - test/fixtures/network_statuses.xml
119
+ - test/fixtures/picture_updates.xml
104
120
  - test/fixtures/profile.xml
105
121
  - test/fixtures/profile_full.xml
106
122
  - test/fixtures/profile_with_positions.xml
123
+ - test/fixtures/search.xml
124
+ - test/fixtures/status.xml
107
125
  - test/oauth_test.rb
108
126
  - test/test_helper.rb
109
127
  has_rdoc: true