linkedin 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d8b5cc310b3dee430de6ffcd0881d71cb6abbf70
4
- data.tar.gz: 2a4a132a5cb4b0a9771e86a4a729394f858bdb5f
3
+ metadata.gz: bfe7308054e4ded9f8fabfdbfc04ee68eae04257
4
+ data.tar.gz: 446b1003b220d412dcd323fa7b5a5ebefa689713
5
5
  SHA512:
6
- metadata.gz: d4c43db6e21a6c51ce2d26a0a67605f5f06dbac0c699661a15322ec1629b0986b729422f79a87ad37adaed48b9a0e88eb483d2c429a12749f4baa7f2df28e3df
7
- data.tar.gz: 6450d72297adf6f0415d895727e3364dc7e8e4ca05d090a78cbbeee42dcd29a8049ceed846e198bab7fdf05cb65aaca7a666f0f770b746c3a7c653432b66ee88
6
+ metadata.gz: 3459938df6bee5b3e97434b626a55a790778a02017b09fc1ca761ec2a39088c82f15a992eb65b77fc81c3170bbf900d3bfd1527ded889fb45480c2d6dec67529
7
+ data.tar.gz: ac1f9808e63d3830562f24905d20a82fed94df13795ccf7c4e51b80c6066fe1ca58f1a8618d3aa8ae8e7a2b3300350dc21ed2acebcc1fff0727b7a9668602539
data/.travis.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  rvm:
2
- - 1.8.7
3
- - 1.9.2
4
- - 1.9.3
5
- - ree
2
+ - 2.0.0
3
+ - jruby-19mode
4
+ - rbx-19mode
data/README.markdown CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Ruby wrapper for the [LinkedIn API](http://developer.linkedin.com). Heavily inspired by [John Nunemaker's](http://github.com/jnunemaker) [Twitter gem](http://github.com/jnunemaker/twitter), the LinkedIn gem provides an easy-to-use wrapper for LinkedIn's Oauth/XML APIs.
4
4
 
5
- Travis CI : [![Build Status](https://secure.travis-ci.org/pengwynn/linkedin.png)](http://travis-ci.org/pengwynn/linkedin)
5
+ Travis CI : [![Build Status](https://secure.travis-ci.org/hexgnu/linkedin.png)](http://travis-ci.org/hexgnu/linkedin)
6
6
 
7
7
  ## Installation
8
8
 
@@ -23,6 +23,26 @@ module LinkedIn
23
23
  simple_query(path, options)
24
24
  end
25
25
 
26
+ def company_updates(options={})
27
+ path = "#{company_path(options)}/updates"
28
+ simple_query(path, options)
29
+ end
30
+
31
+ def company_statistics(options={})
32
+ path = "#{company_path(options)}/company-statistics"
33
+ simple_query(path, options)
34
+ end
35
+
36
+ def company_updates_comments(update_key, options={})
37
+ path = "#{company_path(options)}/updates/key=#{update_key}/update-comments"
38
+ simple_query(path, options)
39
+ end
40
+
41
+ def company_updates_likes(update_key, options={})
42
+ path = "#{company_path(options)}/updates/key=#{update_key}/likes"
43
+ simple_query(path, options)
44
+ end
45
+
26
46
  def job(options = {})
27
47
  path = jobs_path(options)
28
48
  simple_query(path, options)
@@ -67,6 +87,12 @@ module LinkedIn
67
87
  path = "#{person_path(options)}/network/updates/key=#{update_key}/likes"
68
88
  simple_query(path, options)
69
89
  end
90
+
91
+ def picture_urls(options={})
92
+ picture_size = options.delete(:picture_size) || 'original'
93
+ path = "#{picture_urls_path(options)}::(#{picture_size})"
94
+ simple_query(path, options)
95
+ end
70
96
 
71
97
  private
72
98
 
@@ -88,7 +114,7 @@ module LinkedIn
88
114
 
89
115
  headers = options.delete(:headers) || {}
90
116
  params = to_query(options)
91
- path += "?#{params}" if !params.empty?
117
+ path += "#{path.include?("?") ? "&" : "?"}#{params}" if !params.empty?
92
118
 
93
119
  Mash.from_json(get(path, headers))
94
120
  end
@@ -115,11 +141,18 @@ module LinkedIn
115
141
  path += "/url=#{CGI.escape(url)}"
116
142
  elsif name = options.delete(:name)
117
143
  path += "/universal-name=#{CGI.escape(name)}"
144
+ elsif is_admin = options.delete(:is_admin)
145
+ path += "?is-company-admin=#{CGI.escape(is_admin)}"
118
146
  else
119
147
  path += "/~"
120
148
  end
121
149
  end
122
150
 
151
+ def picture_urls_path(options)
152
+ path = person_path(options)
153
+ path += "/picture-urls"
154
+ end
155
+
123
156
  def jobs_path(options)
124
157
  path = "/jobs"
125
158
  if id = options.delete(:id)
@@ -9,6 +9,23 @@ module LinkedIn
9
9
  post(path, defaults.merge(share).to_json, "Content-Type" => "application/json")
10
10
  end
11
11
 
12
+ def add_company_share(company_id, share)
13
+ path = "/companies/#{company_id}/shares"
14
+ defaults = {:visibility => {:code => "anyone"}}
15
+ post(path, defaults.merge(share).to_json, "Content-Type" => "application/json")
16
+ end
17
+
18
+ def follow_company(company_id)
19
+ path = "/people/~/following/companies"
20
+ body = {:id => company_id }
21
+ post(path, body.to_json, "Content-Type" => "application/json")
22
+ end
23
+
24
+ def unfollow_company(company_id)
25
+ path = "/people/~/following/companies/id=#{company_id}"
26
+ delete(path)
27
+ end
28
+
12
29
  def join_group(group_id)
13
30
  path = "/people/~/group-memberships/#{group_id}"
14
31
  body = {'membership-state' => {'code' => 'member' }}
@@ -3,7 +3,7 @@ module LinkedIn
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 0
5
5
  MINOR = 4
6
- PATCH = 3
6
+ PATCH = 4
7
7
  PRE = nil
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
9
9
  end
@@ -19,6 +19,11 @@ describe LinkedIn::Api do
19
19
  stub_request(:get, "https://api.linkedin.com/v1/people/id=123").to_return(:body => "{}")
20
20
  client.profile(:id => 123).should be_an_instance_of(LinkedIn::Mash)
21
21
  end
22
+
23
+ it "should be able to view the picture urls" do
24
+ stub_request(:get, "https://api.linkedin.com/v1/people/~/picture-urls::(original)").to_return(:body => "{}")
25
+ client.picture_urls.should be_an_instance_of(LinkedIn::Mash)
26
+ end
22
27
 
23
28
  it "should be able to view connections" do
24
29
  stub_request(:get, "https://api.linkedin.com/v1/people/~/connections").to_return(:body => "{}")
@@ -63,6 +68,13 @@ describe LinkedIn::Api do
63
68
  response.code.should == "201"
64
69
  end
65
70
 
71
+ it "should be able to share a new company status" do
72
+ stub_request(:post, "https://api.linkedin.com/v1/companies/123456/shares").to_return(:body => "", :status => 201)
73
+ response = client.add_company_share("123456", { :comment => "Testing, 1, 2, 3" })
74
+ response.body.should == nil
75
+ response.code.should == "201"
76
+ end
77
+
66
78
  it "returns the shares for a person" do
67
79
  stub_request(:get, "https://api.linkedin.com/v1/people/~/network/updates?type=SHAR&scope=self&after=1234&count=35").to_return(
68
80
  :body => "{}")
@@ -129,6 +141,16 @@ describe LinkedIn::Api do
129
141
  client.company(:domain => 'acme.com').should be_an_instance_of(LinkedIn::Mash)
130
142
  end
131
143
 
144
+ it "should be able to view a user's company pages" do
145
+ stub_request(:get, "https://api.linkedin.com/v1/companies?is-company-admin=true").to_return(:body => "{}")
146
+ client.company(:is_admin => 'true').should be_an_instance_of(LinkedIn::Mash)
147
+ end
148
+
149
+ it "should be able to page a user's company pages" do
150
+ stub_request(:get, "https://api.linkedin.com/v1/companies?is-company-admin=true&count=10&start=0").to_return(:body => "{}")
151
+ client.company(:is_admin => 'true', :count => 10, :start => 0).should be_an_instance_of(LinkedIn::Mash)
152
+ end
153
+
132
154
  it "should load correct company data" do
133
155
  client.company(:id => 1586).name.should == "Amazon"
134
156
 
@@ -140,6 +162,43 @@ describe LinkedIn::Api do
140
162
  data.locations.all[0].address.city.should == "Seattle"
141
163
  data.locations.all[0].is_headquarters.should == true
142
164
  end
165
+
166
+ it "should be able to view company_updates" do
167
+ stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/updates").to_return(:body => "{}")
168
+ client.company_updates(:id => 1586).should be_an_instance_of(LinkedIn::Mash)
169
+ end
170
+
171
+ it "should be able to view company_statistic" do
172
+ stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/company-statistics").to_return(:body => "{}")
173
+ client.company_statistics(:id => 1586).should be_an_instance_of(LinkedIn::Mash)
174
+ end
175
+
176
+ it "should be able to view company updates comments" do
177
+ stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/updates/key=company_update_key/update-comments").to_return(:body => "{}")
178
+ client.company_updates_comments("company_update_key", :id => 1586).should be_an_instance_of(LinkedIn::Mash)
179
+ end
180
+
181
+ it "should be able to view company updates likes" do
182
+ stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/updates/key=company_update_key/likes").to_return(:body => "{}")
183
+ client.company_updates_likes("company_update_key", :id => 1586).should be_an_instance_of(LinkedIn::Mash)
184
+ end
185
+
186
+ it "should be able to follow a company" do
187
+ stub_request(:post, "https://api.linkedin.com/v1/people/~/following/companies").to_return(:body => "", :status => 201)
188
+
189
+ response = client.follow_company(1586)
190
+ response.body.should == nil
191
+ response.code.should == "201"
192
+ end
193
+
194
+ it "should be able to unfollow a company" do
195
+ stub_request(:delete, "https://api.linkedin.com/v1/people/~/following/companies/id=1586").to_return(:body => "", :status => 201)
196
+
197
+ response = client.unfollow_company(1586)
198
+ response.body.should == nil
199
+ response.code.should == "201"
200
+ end
201
+
143
202
  end
144
203
 
145
204
  context "Job API" do
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.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wynn Netherland
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-30 00:00:00.000000000 Z
12
+ date: 2013-11-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
@@ -221,30 +221,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  version: '0'
222
222
  requirements: []
223
223
  rubyforge_project:
224
- rubygems_version: 2.0.2
224
+ rubygems_version: 2.0.3
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: Ruby wrapper for the LinkedIn API
228
- test_files:
229
- - spec/cases/api_spec.rb
230
- - spec/cases/linkedin_spec.rb
231
- - spec/cases/mash_spec.rb
232
- - spec/cases/oauth_spec.rb
233
- - spec/cases/search_spec.rb
234
- - spec/fixtures/cassette_library/LinkedIn_Api/Company_API.yml
235
- - spec/fixtures/cassette_library/LinkedIn_Client/_authorize_from_request.yml
236
- - spec/fixtures/cassette_library/LinkedIn_Client/_request_token.yml
237
- - spec/fixtures/cassette_library/LinkedIn_Client/_request_token/with_a_callback_url.yml
238
- - spec/fixtures/cassette_library/LinkedIn_Client/_request_token/with_default_options.yml
239
- - spec/fixtures/cassette_library/LinkedIn_Search/_search/by_company_name_option.yml
240
- - spec/fixtures/cassette_library/LinkedIn_Search/_search/by_first_name_and_last_name_options.yml
241
- - spec/fixtures/cassette_library/LinkedIn_Search/_search/by_first_name_and_last_name_options_with_fields.yml
242
- - spec/fixtures/cassette_library/LinkedIn_Search/_search/by_keywords_string_parameter.yml
243
- - spec/fixtures/cassette_library/LinkedIn_Search/_search/by_single_keywords_option.yml
244
- - spec/fixtures/cassette_library/LinkedIn_Search/_search/by_single_keywords_option_with_pagination.yml
245
- - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_keywords_options_with_fields.yml
246
- - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_keywords_string_parameter.yml
247
- - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_single_keywords_option.yml
248
- - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_single_keywords_option_with_facets_to_return.yml
249
- - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_single_keywords_option_with_pagination.yml
250
- - spec/helper.rb
228
+ test_files: []