linkedin 1.1.0 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- metadata.gz: dd6d4dae4abd8702575aed09cfbf73bc0a8af14b
4
- data.tar.gz: 48b257dbc6cf4e1a8805ed72527efd12e75aa3fd
5
- SHA512:
6
- metadata.gz: 1f2638d368f7a1813bf8cd36064a7be057c8839ddad610950a8c030a49992a3f8ba105bbc76300d033a75ba9978952288db66dc198d8cbe56c491cc59c3755ac
7
- data.tar.gz: 13b8466c819815000f4deef1eff23f2af53781f29e34f8b564ac30a98f41fb547602984a3a8610248e27ecda21942707d8dc134155723cb0cad1d6378e2e7289
1
+ ---
2
+ SHA256:
3
+ metadata.gz: '08e347913e1e07f57fc795eea8905e879acb8ca3e85252447d01f067e8d27669'
4
+ data.tar.gz: 33826a5f7d4ec9bd6feb55ff322ad88431912ac407871a85b0d0c1d1eede2862
5
+ SHA512:
6
+ metadata.gz: b25e4ff03e783768fb91e8428c8fd463dac35560f0251591bcb6ad5857b583c8e17fd2d3fbbfb1aa5c60e62aa908645ac6c775082c68469a510e4f467181997b
7
+ data.tar.gz: ee7007f936d2800af5334b377631947f96e29dce4e3b3664fa3ab9e9c12ce2578de79fb75ec040df624c9839e092f2b5db9e8d6d31113b066060b5bedf630282
@@ -1,6 +1,8 @@
1
1
  rvm:
2
+ - 2.5
3
+ - 2.4
4
+ - 2.3
2
5
  - 2.0.0
3
6
  - 2.1.0
4
7
  - 1.9.3
5
8
  - jruby-19mode
6
- - rbx
@@ -4,6 +4,10 @@
4
4
  * Re-organize modules under Api to match organization in LinkedIn's REST
5
5
  API documentation
6
6
 
7
+ ## 1.1.1 - August 8, 2018
8
+
9
+ * Switch to OAuth2
10
+
7
11
  ## 0.4.4 - Jan 11, 2014
8
12
 
9
13
  * Group share add
@@ -1,6 +1,6 @@
1
1
  # Linkedin Gem Examples
2
2
 
3
- ## OAuth 1.0a Authentication
3
+ ## OAuth2 Authentication
4
4
 
5
5
  Here's an example of authenticating with the LinkedIn API
6
6
 
@@ -13,22 +13,18 @@ client = LinkedIn::Client.new('your_consumer_key', 'your_consumer_secret')
13
13
 
14
14
  # If you want to use one of the scopes from linkedin you have to pass it in at this point
15
15
  # You can learn more about it here: http://developer.linkedin.com/documents/authentication
16
- request_token = client.request_token({}, :scope => "r_basicprofile r_emailaddress")
17
-
18
- rtoken = request_token.token
19
- rsecret = request_token.secret
20
16
 
21
17
  # to test from your desktop, open the following url in your browser
22
18
  # and record the pin it gives you
23
- request_token.authorize_url
24
- => "https://api.linkedin.com/uas/oauth/authorize?oauth_token=<generated_token>"
19
+ client.authorize_url(:redirect_uri => 'https:://www.yourdomain.com/callback', :state => SecureRandom.uuid, :scope => "r_basicprofile+r_emailaddress")
20
+ => "https://api.linkedin.com/uas/oauth2/authorization?"
25
21
 
26
22
  # then fetch your access keys
27
- client.authorize_from_request(rtoken, rsecret, pin)
28
- => ["OU812", "8675309"] # <= save these for future requests
23
+ client.authorize_from_request(code, :redirect_uri => 'https:://www.yourdomain.com/callback')
24
+ => "OU812" # <= save this for future requests
29
25
 
30
26
  # or authorize from previously fetched access keys
31
- client.authorize_from_access("OU812", "8675309")
27
+ client.authorize_from_access("OU812")
32
28
 
33
29
  # you're now free to move about the cabin, call any API method
34
30
  ```
@@ -145,7 +141,7 @@ helpers do
145
141
  private
146
142
  def linkedin_client
147
143
  client = LinkedIn::Client.new(settings.api, settings.secret)
148
- client.authorize_from_access(session[:atoken], session[:asecret])
144
+ client.authorize_from_access(session[:atoken])
149
145
  client
150
146
  end
151
147
 
@@ -24,7 +24,7 @@ module LinkedIn
24
24
  # message
25
25
  # @return [void]
26
26
  def send_message(subject, body, recipient_paths)
27
- path = "/people/~/mailbox"
27
+ path = '/people/~/mailbox'
28
28
 
29
29
  message = {
30
30
  'subject' => subject,
@@ -3,8 +3,8 @@ module LinkedIn
3
3
 
4
4
  # Companies API
5
5
  #
6
- # @see http://developer.linkedin.com/documents/companies Companies API
7
- # @see http://developer.linkedin.com/documents/company-lookup-api-and-fields Company Fields
6
+ # @see https://developer.linkedin.com/docs/company-pages Companies API
7
+ # @see https://developer.linkedin.com/docs/fields/companies Company Fields
8
8
  #
9
9
  # The following API actions do not have corresponding methods in
10
10
  # this module
@@ -18,7 +18,8 @@ module LinkedIn
18
18
 
19
19
  # Retrieve a Company Profile
20
20
  #
21
- # @see http://developer.linkedin.com/documents/company-lookup-api-and-fields
21
+ # @see https://developer.linkedin.com/docs/fields/company-profile Company Profile field
22
+ # @see https://developer.linkedin.com/docs/company-pages#company_profile Company Profile
22
23
  #
23
24
  # @macro company_path_options
24
25
  # @option options [String] :scope
@@ -27,13 +28,13 @@ module LinkedIn
27
28
  # @option options [String] :start
28
29
  # @return [LinkedIn::Mash]
29
30
  def company(options = {})
30
- path = company_path(options)
31
+ path = company_path(options)
31
32
  simple_query(path, options)
32
33
  end
33
34
 
34
35
  # Retrieve a feed of event items for a Company
35
36
  #
36
- # @see http://developer.linkedin.com/reading-company-shares
37
+ # @see https://developer.linkedin.com/docs/company-pages#get_update Get Specific Company Update
37
38
  #
38
39
  # @macro company_path_options
39
40
  # @option options [String] :event-type
@@ -49,7 +50,7 @@ module LinkedIn
49
50
  #
50
51
  # Permissions: rw_company_admin
51
52
  #
52
- # @see http://developer.linkedin.com/documents/company-statistics
53
+ # @see https://developer.linkedin.com/docs/company-pages#statistics Get Company Statistics
53
54
  #
54
55
  # @macro company_path_options
55
56
  # @return [LinkedIn::Mash]
@@ -60,7 +61,7 @@ module LinkedIn
60
61
 
61
62
  # Retrieve comments on a particular company update:
62
63
  #
63
- # @see http://developer.linkedin.com/reading-company-shares
64
+ # @see https://developer.linkedin.com/docs/company-pages#get_update_comments Get comments for a specific Company update
64
65
  #
65
66
  # @param [String] update_key a update/update-key representing a
66
67
  # particular company update
@@ -73,7 +74,7 @@ module LinkedIn
73
74
 
74
75
  # Retrieve likes on a particular company update:
75
76
  #
76
- # @see http://developer.linkedin.com/reading-company-shares
77
+ # @see https://developer.linkedin.com/docs/company-pages#get_update_likes Get likes for a specific Company update
77
78
  #
78
79
  # @param [String] update_key a update/update-key representing a
79
80
  # particular company update
@@ -89,15 +90,15 @@ module LinkedIn
89
90
  #
90
91
  # Permissions: rw_company_admin
91
92
  #
92
- # @see http://developer.linkedin.com/creating-company-shares
93
- # @see http://developer.linkedin.com/documents/targeting-company-shares Targeting Company Shares
93
+ # @see https://developer.linkedin.com/docs/company-pages#company_share Create a company share
94
+ # @see https://developer.linkedin.com/docs/company-pages#targetting_shares Targeting company shares
94
95
  #
95
96
  # @param [String] company_id Company ID
96
97
  # @macro share_input_fields
97
98
  # @return [void]
98
99
  def add_company_share(company_id, share)
99
100
  path = "/companies/#{company_id}/shares"
100
- defaults = {:visibility => {:code => "anyone"}}
101
+ defaults = { visibility: { code: 'anyone' } }
101
102
  post(path, MultiJson.dump(defaults.merge(share)), "Content-Type" => "application/json")
102
103
  end
103
104
 
@@ -109,7 +110,7 @@ module LinkedIn
109
110
  # @return [void]
110
111
  def follow_company(company_id)
111
112
  path = "/people/~/following/companies"
112
- body = {:id => company_id }
113
+ body = { id: company_id }
113
114
  post(path, MultiJson.dump(body), "Content-Type" => "application/json")
114
115
  end
115
116
 
@@ -3,8 +3,8 @@ module LinkedIn
3
3
 
4
4
  # People APIs
5
5
  #
6
- # @see http://developer.linkedin.com/documents/people People API
7
- # @see http://developer.linkedin.com/documents/profile-fields Profile Fields
6
+ #
7
+ # @see https://developer.linkedin.com/docs/fields/basic-profile Profile Fields
8
8
  # @see http://developer.linkedin.com/documents/field-selectors Field Selectors
9
9
  # @see http://developer.linkedin.com/documents/accessing-out-network-profiles Accessing Out of Network Profiles
10
10
  module People
@@ -13,7 +13,7 @@ module LinkedIn
13
13
  #
14
14
  # Permissions: r_basicprofile, r_fullprofile
15
15
  #
16
- # @see http://developer.linkedin.com/documents/profile-api
16
+ # @see https://developer.linkedin.com/docs/signin-with-linkedin#content-par_componenttabbedlist_resource_1_resourceparagraph_6
17
17
  # @macro person_path_options
18
18
  # @option options [string] :secure-urls if 'true' URLs in responses will be HTTPS
19
19
  # @return [LinkedIn::Mash]
@@ -3,8 +3,7 @@ module LinkedIn
3
3
 
4
4
  # Share and Social Stream APIs
5
5
  #
6
- # @see http://developer.linkedin.com/documents/share-and-social-stream
7
- # @see http://developer.linkedin.com/documents/share-api Share API
6
+ # @see https://developer.linkedin.com/docs/share-on-linkedin Share API
8
7
  #
9
8
  # The following API actions do not have corresponding methods in
10
9
  # this module
@@ -85,7 +84,7 @@ module LinkedIn
85
84
  #
86
85
  # Permissions: rw_nus
87
86
  #
88
- # @see http://developer.linkedin.com/documents/share-api
87
+ # @see https://developer.linkedin.com/docs/share-on-linkedin Share API
89
88
  #
90
89
  # @macro share_input_fields
91
90
  # @return [void]
@@ -18,12 +18,12 @@ module LinkedIn
18
18
  class AccessDeniedError < LinkedInError; end
19
19
 
20
20
  # Raised when a 404 response status code is received
21
- class NotFoundError < StandardError; end
21
+ class NotFoundError < LinkedInError; end
22
22
 
23
23
  # Raised when a 500 response status code is received
24
- class InformLinkedInError < StandardError; end
24
+ class InformLinkedInError < LinkedInError; end
25
25
 
26
26
  # Raised when a 502 or 503 response status code is received
27
- class UnavailableError < StandardError; end
27
+ class UnavailableError < LinkedInError; end
28
28
  end
29
29
  end
@@ -4,38 +4,32 @@ module LinkedIn
4
4
  module Authorization
5
5
 
6
6
  DEFAULT_OAUTH_OPTIONS = {
7
- :request_token_path => "/uas/oauth/requestToken",
8
- :access_token_path => "/uas/oauth/accessToken",
9
- :authorize_path => "/uas/oauth/authorize",
7
+ :token_path => "/uas/oauth2/accessToken",
8
+ :authorize_path => "/uas/oauth2/authorization",
10
9
  :api_host => "https://api.linkedin.com",
11
10
  :auth_host => "https://www.linkedin.com"
12
11
  }
13
12
 
14
13
  def consumer
15
- @consumer ||= ::OAuth::Consumer.new(@consumer_token, @consumer_secret, parse_oauth_options)
16
- end
17
-
18
- # Note: If using oauth with a web app, be sure to provide :oauth_callback.
19
- # Options:
20
- # :oauth_callback => String, url that LinkedIn should redirect to
21
- def request_token(options={}, *arguments, &block)
22
- @request_token ||= consumer.get_request_token(options, *arguments, &block)
14
+ @consumer ||= ::OAuth2::Client.new(@consumer_token, @consumer_secret, parse_oauth_options)
23
15
  end
24
16
 
25
17
  # For web apps use params[:oauth_verifier], for desktop apps,
26
18
  # use the verifier is the pin that LinkedIn gives users.
27
- def authorize_from_request(request_token, request_secret, verifier_or_pin)
28
- request_token = ::OAuth::RequestToken.new(consumer, request_token, request_secret)
29
- access_token = request_token.get_access_token(:oauth_verifier => verifier_or_pin)
30
- @auth_token, @auth_secret = access_token.token, access_token.secret
19
+ def authorize_from_request(code, params = {})
20
+ @auth_token = consumer.auth_code.get_token(code, params).token
31
21
  end
32
22
 
33
23
  def access_token
34
- @access_token ||= ::OAuth::AccessToken.new(consumer, @auth_token, @auth_secret)
24
+ @access_token ||= ::OAuth2::AccessToken.new(consumer, @auth_token)
25
+ end
26
+
27
+ def authorize_url(params = {})
28
+ consumer.auth_code.authorize_url(params)
35
29
  end
36
30
 
37
- def authorize_from_access(atoken, asecret)
38
- @auth_token, @auth_secret = atoken, asecret
31
+ def authorize_from_access(atoken)
32
+ @auth_token = atoken
39
33
  end
40
34
 
41
35
  private
@@ -45,11 +39,10 @@ module LinkedIn
45
39
  # of the url creation ourselves.
46
40
  def parse_oauth_options
47
41
  {
48
- :request_token_url => full_oauth_url_for(:request_token, :api_host),
49
- :access_token_url => full_oauth_url_for(:access_token, :api_host),
50
- :authorize_url => full_oauth_url_for(:authorize, :auth_host),
42
+ :token_url => full_oauth_url_for(:token, :api_host),
43
+ :authorize_url => full_oauth_url_for(:authorize, :auth_host),
51
44
  :site => @consumer_options[:site] || @consumer_options[:api_host] || DEFAULT_OAUTH_OPTIONS[:api_host],
52
- :proxy => @consumer_options.fetch(:proxy, nil)
45
+ :raise_errors => false
53
46
  }
54
47
  end
55
48
 
@@ -12,25 +12,25 @@ module LinkedIn
12
12
  protected
13
13
 
14
14
  def get(path, options={})
15
- response = access_token.get("#{API_PATH}#{path}", DEFAULT_HEADERS.merge(options))
15
+ response = access_token.get("#{API_PATH}#{path}", {:headers => DEFAULT_HEADERS.merge(options)})
16
16
  raise_errors(response)
17
17
  response.body
18
18
  end
19
19
 
20
20
  def post(path, body='', options={})
21
- response = access_token.post("#{API_PATH}#{path}", body, DEFAULT_HEADERS.merge(options))
21
+ response = access_token.post("#{API_PATH}#{path}", {:body => body, :headers => DEFAULT_HEADERS.merge(options)})
22
22
  raise_errors(response)
23
23
  response
24
24
  end
25
25
 
26
26
  def put(path, body, options={})
27
- response = access_token.put("#{API_PATH}#{path}", body, DEFAULT_HEADERS.merge(options))
27
+ response = access_token.put("#{API_PATH}#{path}", {:body => body, :headers => DEFAULT_HEADERS.merge(options)})
28
28
  raise_errors(response)
29
29
  response
30
30
  end
31
31
 
32
32
  def delete(path, options={})
33
- response = access_token.delete("#{API_PATH}#{path}", DEFAULT_HEADERS.merge(options))
33
+ response = access_token.delete("#{API_PATH}#{path}", {:headers => DEFAULT_HEADERS.merge(options)})
34
34
  raise_errors(response)
35
35
  response
36
36
  end
@@ -40,7 +40,7 @@ module LinkedIn
40
40
  def raise_errors(response)
41
41
  # Even if the json answer contains the HTTP status code, LinkedIn also sets this code
42
42
  # in the HTTP answer (thankfully).
43
- case response.code.to_i
43
+ case response.status.to_i
44
44
  when 401
45
45
  data = Mash.from_json(response.body)
46
46
  raise LinkedIn::Errors::UnauthorizedError.new(data), "(#{data.status}): #{data.message}"
@@ -51,11 +51,11 @@ module LinkedIn
51
51
  data = Mash.from_json(response.body)
52
52
  raise LinkedIn::Errors::AccessDeniedError.new(data), "(#{data.status}): #{data.message}"
53
53
  when 404
54
- raise LinkedIn::Errors::NotFoundError, "(#{response.code}): #{response.message}"
54
+ raise LinkedIn::Errors::NotFoundError, "(#{response.status}): #{response.message}"
55
55
  when 500
56
- raise LinkedIn::Errors::InformLinkedInError, "LinkedIn had an internal error. Please let them know in the forum. (#{response.code}): #{response.message}"
56
+ raise LinkedIn::Errors::InformLinkedInError, "LinkedIn had an internal error. Please let them know in the forum. (#{response.status}): #{response.message}"
57
57
  when 502..503
58
- raise LinkedIn::Errors::UnavailableError, "(#{response.code}): #{response.message}"
58
+ raise LinkedIn::Errors::UnavailableError, "(#{response.status}): #{response.message}"
59
59
  end
60
60
  end
61
61
 
@@ -2,8 +2,8 @@ module LinkedIn
2
2
 
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 1
5
- MINOR = 1
6
- PATCH = 0
5
+ MINOR = 1
6
+ PATCH = 1
7
7
  PRE = nil
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
9
9
  end
@@ -1,4 +1,4 @@
1
- require 'oauth'
1
+ require 'oauth2'
2
2
 
3
3
  module LinkedIn
4
4
 
@@ -4,7 +4,7 @@ require File.expand_path('../lib/linked_in/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.add_dependency 'hashie', '~> 3.0'
6
6
  gem.add_dependency 'multi_json', '~> 1.0'
7
- gem.add_dependency 'oauth', '~> 0.4'
7
+ gem.add_dependency 'oauth2', '~> 1.0'
8
8
  # gem.add_development_dependency 'json', '~> 1.6'
9
9
  gem.add_development_dependency 'rake', '~> 10'
10
10
  gem.add_development_dependency 'yard'
@@ -4,11 +4,11 @@ describe LinkedIn::Api do
4
4
  before do
5
5
  LinkedIn.default_profile_fields = nil
6
6
  client.stub(:consumer).and_return(consumer)
7
- client.authorize_from_access('atoken', 'asecret')
7
+ client.authorize_from_access('77j2rfbjbmkcdh')
8
8
  end
9
9
 
10
10
  let(:client){LinkedIn::Client.new('token', 'secret')}
11
- let(:consumer){OAuth::Consumer.new('token', 'secret', {:site => 'https://api.linkedin.com'})}
11
+ let(:consumer){OAuth2::Client.new('token', 'secret', {:site => 'https://api.linkedin.com', :raise_errors => false})}
12
12
 
13
13
  it "should be able to view the account profile" do
14
14
  stub_request(:get, "https://api.linkedin.com/v1/people/~").to_return(:body => "{}")
@@ -70,15 +70,15 @@ describe LinkedIn::Api do
70
70
  it "should be able to share a new status" do
71
71
  stub_request(:post, "https://api.linkedin.com/v1/people/~/shares").to_return(:body => "", :status => 201)
72
72
  response = client.add_share(:comment => "Testing, 1, 2, 3")
73
- response.body.should == nil
74
- response.code.should == "201"
73
+ response.body.should == ""
74
+ response.status.should == 201
75
75
  end
76
76
 
77
77
  it "should be able to share a new company status" do
78
78
  stub_request(:post, "https://api.linkedin.com/v1/companies/123456/shares").to_return(:body => "", :status => 201)
79
79
  response = client.add_company_share("123456", { :comment => "Testing, 1, 2, 3" })
80
- response.body.should == nil
81
- response.code.should == "201"
80
+ response.body.should == ""
81
+ response.status.should == 201
82
82
  end
83
83
 
84
84
  it "returns the shares for a person" do
@@ -96,41 +96,30 @@ describe LinkedIn::Api do
96
96
  stub_request(:post, "https://api.linkedin.com/v1/people/~/network/updates/key=SOMEKEY/update-comments").to_return(
97
97
  :body => "", :status => 201)
98
98
  response = client.update_comment('SOMEKEY', "Testing, 1, 2, 3")
99
- response.body.should == nil
100
- response.code.should == "201"
99
+ response.body.should == ""
100
+ response.status.should == 201
101
101
  end
102
102
 
103
103
  it "should be able to like a network update" do
104
104
  stub_request(:put, "https://api.linkedin.com/v1/people/~/network/updates/key=SOMEKEY/is-liked").
105
105
  with(:body => "true").to_return(:body => "", :status => 201)
106
106
  response = client.like_share('SOMEKEY')
107
- response.body.should == nil
108
- response.code.should == "201"
107
+ response.body.should == ""
108
+ response.status.should == 201
109
109
  end
110
110
 
111
111
  it "should be able to unlike a network update" do
112
112
  stub_request(:put, "https://api.linkedin.com/v1/people/~/network/updates/key=SOMEKEY/is-liked").
113
113
  with(:body => "false").to_return(:body => "", :status => 201)
114
114
  response = client.unlike_share('SOMEKEY')
115
- response.body.should == nil
116
- response.code.should == "201"
117
- end
118
-
119
- it "should be able to pass down the additional arguments to OAuth's get_request_token" do
120
- consumer.should_receive(:get_request_token).with(
121
- {:oauth_callback => "http://localhost:3000/auth/callback"}, :scope => "rw_nus").and_return("request_token")
122
-
123
- request_token = client.request_token(
124
- {:oauth_callback => "http://localhost:3000/auth/callback"}, :scope => "rw_nus"
125
- )
126
-
127
- request_token.should == "request_token"
115
+ response.body.should == ""
116
+ response.status.should == 201
128
117
  end
129
118
 
130
119
  context "Company API", :vcr do
131
120
 
132
121
  it "should be able to view a company profile" do
133
- stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586").to_return(:body => "{}")
122
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586").to_return(:body => "{}")
134
123
  client.company(:id => 1586).should be_an_instance_of(LinkedIn::Mash)
135
124
  end
136
125
 
@@ -155,8 +144,9 @@ describe LinkedIn::Api do
155
144
  end
156
145
 
157
146
  it "should load correct company data" do
147
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586:(id,name,industry,locations:(address:(city,state,country-code),is-headquarters),employee-count-range)").to_return(:body => "{\"id\":1586,\"name\":\"Amazon\",\"employee_count_range\":{\"name\":\"10001+\"},\"industry\":\"Internet\",\"locations\":{\"all\":[{\"address\":{\"city\":\"Seattle\"},\"is_headquarters\":true}]}}")
148
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586").to_return(:body => "{\"id\":1586,\"name\":\"Amazon\"}")
158
149
  client.company(:id => 1586).name.should == "Amazon"
159
-
160
150
  data = client.company(:id => 1586, :fields => %w{ id name industry locations:(address:(city state country-code) is-headquarters) employee-count-range })
161
151
  data.id.should == 1586
162
152
  data.name.should == "Amazon"
@@ -167,22 +157,22 @@ describe LinkedIn::Api do
167
157
  end
168
158
 
169
159
  it "should be able to view company_updates" do
170
- stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/updates").to_return(:body => "{}")
160
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586/updates").to_return(:body => "{}")
171
161
  client.company_updates(:id => 1586).should be_an_instance_of(LinkedIn::Mash)
172
162
  end
173
163
 
174
164
  it "should be able to view company_statistic" do
175
- stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/company-statistics").to_return(:body => "{}")
165
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586/company-statistics").to_return(:body => "{}")
176
166
  client.company_statistics(:id => 1586).should be_an_instance_of(LinkedIn::Mash)
177
167
  end
178
168
 
179
169
  it "should be able to view company updates comments" do
180
- stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/updates/key=company_update_key/update-comments").to_return(:body => "{}")
170
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586/updates/key=company_update_key/update-comments").to_return(:body => "{}")
181
171
  client.company_updates_comments("company_update_key", :id => 1586).should be_an_instance_of(LinkedIn::Mash)
182
172
  end
183
173
 
184
174
  it "should be able to view company updates likes" do
185
- stub_request(:get, "https://api.linkedin.com/v1/companies/id=1586/updates/key=company_update_key/likes").to_return(:body => "{}")
175
+ stub_request(:get, "https://api.linkedin.com/v1/companies/1586/updates/key=company_update_key/likes").to_return(:body => "{}")
186
176
  client.company_updates_likes("company_update_key", :id => 1586).should be_an_instance_of(LinkedIn::Mash)
187
177
  end
188
178
 
@@ -190,16 +180,16 @@ describe LinkedIn::Api do
190
180
  stub_request(:post, "https://api.linkedin.com/v1/people/~/following/companies").to_return(:body => "", :status => 201)
191
181
 
192
182
  response = client.follow_company(1586)
193
- response.body.should == nil
194
- response.code.should == "201"
183
+ response.body.should == ""
184
+ response.status.should == 201
195
185
  end
196
186
 
197
187
  it "should be able to unfollow a company" do
198
188
  stub_request(:delete, "https://api.linkedin.com/v1/people/~/following/companies/id=1586").to_return(:body => "", :status => 201)
199
189
 
200
190
  response = client.unfollow_company(1586)
201
- response.body.should == nil
202
- response.code.should == "201"
191
+ response.body.should == ""
192
+ response.status.should == 201
203
193
  end
204
194
 
205
195
  end
@@ -224,8 +214,8 @@ describe LinkedIn::Api do
224
214
  it "should be able to add a bookmark" do
225
215
  stub_request(:post, "https://api.linkedin.com/v1/people/~/job-bookmarks").to_return(:body => "", :status => 201)
226
216
  response = client.add_job_bookmark(:id => 1452577)
227
- response.body.should == nil
228
- response.code.should == "201"
217
+ response.body.should == ""
218
+ response.status.should == 201
229
219
  end
230
220
  end
231
221
 
@@ -251,8 +241,8 @@ describe LinkedIn::Api do
251
241
  stub_request(:put, "https://api.linkedin.com/v1/people/~/group-memberships/123").to_return(:body => "", :status => 201)
252
242
 
253
243
  response = client.join_group(123)
254
- response.body.should == nil
255
- response.code.should == "201"
244
+ response.body.should == ""
245
+ response.status.should == 201
256
246
  end
257
247
 
258
248
  it "should be able to list a group profile" do
@@ -278,15 +268,15 @@ describe LinkedIn::Api do
278
268
 
279
269
  stub_request(:post, "https://api.linkedin.com/v1/groups/123/posts").with(:body => expected).to_return(:body => "", :status => 201)
280
270
  response = client.post_group_discussion(123, expected)
281
- response.body.should == nil
282
- response.code.should == '201'
271
+ response.body.should == ""
272
+ response.status.should == 201
283
273
  end
284
274
 
285
275
  it "should be able to share a new group status" do
286
276
  stub_request(:post, "https://api.linkedin.com/v1/groups/1/posts").to_return(:body => "", :status => 201)
287
277
  response = client.add_group_share(1, :comment => "Testing, 1, 2, 3")
288
- response.body.should == nil
289
- response.code.should == "201"
278
+ response.body.should == ""
279
+ response.status.should == 201
290
280
  end
291
281
  end
292
282
 
@@ -294,8 +284,8 @@ describe LinkedIn::Api do
294
284
  it "should be able to send a message" do
295
285
  stub_request(:post, "https://api.linkedin.com/v1/people/~/mailbox").to_return(:body => "", :status => 201)
296
286
  response = client.send_message("subject", "body", ["recip1", "recip2"])
297
- response.body.should == nil
298
- response.code.should == "201"
287
+ response.body.should == ""
288
+ response.status.should == 201
299
289
  end
300
290
  end
301
291
 
@@ -14,22 +14,8 @@ describe "LinkedIn::Client" do
14
14
 
15
15
  it "should return a configured OAuth consumer" do
16
16
  consumer.site.should == 'https://api.linkedin.com'
17
- consumer.request_token_url.should == 'https://api.linkedin.com/uas/oauth/requestToken'
18
- consumer.access_token_url.should == 'https://api.linkedin.com/uas/oauth/accessToken'
19
- consumer.authorize_url.should == 'https://www.linkedin.com/uas/oauth/authorize'
20
- end
21
- end
22
-
23
- describe "proxy oauth options" do
24
- let(:proxy) { "http://dummy.proxy" }
25
- let(:consumer) do
26
- LinkedIn::Client.new('1234', '1234', {
27
- :proxy => proxy,
28
- }).consumer
29
- end
30
-
31
- it "should send requests though proxy" do
32
- consumer.proxy.should eq proxy
17
+ consumer.token_url.should == 'https://api.linkedin.com/uas/oauth2/accessToken'
18
+ consumer.authorize_url.should == 'https://www.linkedin.com/uas/oauth2/authorization'
33
19
  end
34
20
  end
35
21
 
@@ -43,43 +29,38 @@ describe "LinkedIn::Client" do
43
29
 
44
30
  it "should return a configured OAuth consumer" do
45
31
  consumer.site.should == 'https://api.josh.com'
46
- consumer.request_token_url.should == 'https://api.josh.com/uas/oauth/requestToken'
47
- consumer.access_token_url.should == 'https://api.josh.com/uas/oauth/accessToken'
48
- consumer.authorize_url.should == 'https://www.josh.com/uas/oauth/authorize'
32
+ consumer.token_url.should == 'https://api.josh.com/uas/oauth2/accessToken'
33
+ consumer.authorize_url.should == 'https://www.josh.com/uas/oauth2/authorization'
49
34
  end
50
35
  end
51
36
 
52
37
  describe "different oauth paths" do
53
38
  let(:consumer) do
54
39
  LinkedIn::Client.new('1234', '1234', {
55
- :request_token_path => "/secure/oauth/requestToken",
56
- :access_token_path => "/secure/oauth/accessToken",
57
- :authorize_path => "/secure/oauth/authorize",
40
+ :token_path => "/secure/oauth2/accessToken",
41
+ :authorize_path => "/secure/oauth2/authorization",
58
42
  }).consumer
59
43
  end
60
44
 
61
45
  it "should return a configured OAuth consumer" do
62
46
  consumer.site.should == 'https://api.linkedin.com'
63
- consumer.request_token_url.should == 'https://api.linkedin.com/secure/oauth/requestToken'
64
- consumer.access_token_url.should == 'https://api.linkedin.com/secure/oauth/accessToken'
65
- consumer.authorize_url.should == 'https://www.linkedin.com/secure/oauth/authorize'
47
+ consumer.token_url.should == 'https://api.linkedin.com/secure/oauth2/accessToken'
48
+ consumer.authorize_url.should == 'https://www.linkedin.com/secure/oauth2/authorization'
66
49
  end
67
50
  end
68
51
 
69
52
  describe "specify oauth urls" do
70
53
  let(:consumer) do
71
54
  LinkedIn::Client.new('1234', '1234', {
72
- :request_token_url => "https://api.josh.com/secure/oauth/requestToken",
73
- :access_token_url => "https://api.josh.com/secure/oauth/accessToken",
74
- :authorize_url => "https://www.josh.com/secure/oauth/authorize",
55
+ :token_url => "https://api.josh.com/secure/oauth2/accessToken",
56
+ :authorize_url => "https://www.josh.com/secure/oauth2/authorization",
75
57
  }).consumer
76
58
  end
77
59
 
78
60
  it "should return a configured OAuth consumer" do
79
61
  consumer.site.should == 'https://api.linkedin.com'
80
- consumer.request_token_url.should == 'https://api.josh.com/secure/oauth/requestToken'
81
- consumer.access_token_url.should == 'https://api.josh.com/secure/oauth/accessToken'
82
- consumer.authorize_url.should == 'https://www.josh.com/secure/oauth/authorize'
62
+ consumer.token_url.should == 'https://api.josh.com/secure/oauth2/accessToken'
63
+ consumer.authorize_url.should == 'https://www.josh.com/secure/oauth2/authorization'
83
64
  end
84
65
  end
85
66
 
@@ -92,87 +73,22 @@ describe "LinkedIn::Client" do
92
73
 
93
74
  it "should return a configured OAuth consumer" do
94
75
  consumer.site.should == 'https://api.josh.com'
95
- consumer.request_token_url.should == 'https://api.josh.com/uas/oauth/requestToken'
96
- consumer.access_token_url.should == 'https://api.josh.com/uas/oauth/accessToken'
97
- consumer.authorize_url.should == 'https://api.josh.com/uas/oauth/authorize'
76
+ consumer.token_url.should == 'https://api.josh.com/uas/oauth2/accessToken'
77
+ consumer.authorize_url.should == 'https://api.josh.com/uas/oauth2/authorization'
98
78
  end
99
79
  end
100
80
  end
101
81
 
102
- describe "#request_token" do
103
- vcr_options = { :record => :new_episodes}
104
- describe "with default options", vcr: vcr_options do
105
-
106
- it "should return a valid request token" do
107
- request_token = client.request_token
108
-
109
- request_token.should be_a_kind_of OAuth::RequestToken
110
- request_token.authorize_url.should include("https://www.linkedin.com/uas/oauth/authorize?oauth_token=")
111
-
112
- a_request(:post, "https://api.linkedin.com/uas/oauth/requestToken").should have_been_made.once
113
- end
114
- end
115
-
116
- describe "with a callback url", vcr: vcr_options do
117
-
118
- it "should return a valid access token" do
119
- request_token = client.request_token(:oauth_callback => 'http://www.josh.com')
120
-
121
- request_token.should be_a_kind_of OAuth::RequestToken
122
- request_token.authorize_url.should include("https://www.linkedin.com/uas/oauth/authorize?oauth_token=")
123
- request_token.callback_confirmed?.should == true
124
-
125
- a_request(:post, "https://api.linkedin.com/uas/oauth/requestToken").should have_been_made.once
126
- end
127
- end
128
- end
129
-
130
- describe "#authorize_from_request" do
131
- let(:access_token) do
132
- # if you remove the related casssette you will need to do the following
133
- # authorize_from_request request manually
134
- #
135
- # request_token = client.request_token
136
- # puts "token : #{request_token.token} - secret #{request_token.secret}"
137
- # puts "auth url : #{request_token.authorize_url}"
138
- # raise 'keep note of the token and secret'
139
- #
140
- client.authorize_from_request('dummy-token', 'dummy-secret', 'dummy-pin')
141
- end
142
-
143
- vcr_options = { :record => :new_episodes, :match_requests_on => [ :uri, :method] }
144
-
145
- it "should return a valid access token", vcr: vcr_options do
146
- access_token.should be_a_kind_of Array
147
- access_token[0].should be_a_kind_of String
148
- access_token[1].should be_a_kind_of String
149
-
150
- a_request(:post, "https://api.linkedin.com/uas/oauth/accessToken").should have_been_made.once
151
- end
152
- end
153
-
154
82
  describe "#access_token" do
155
83
  let(:access_token) do
156
- client.authorize_from_access('dummy-token', 'dummy-secret')
84
+ client.authorize_from_access('dummy-token')
157
85
  client.access_token
158
86
  end
159
87
 
160
88
  it "should return a valid auth token" do
161
- access_token.should be_a_kind_of OAuth::AccessToken
89
+ access_token.should be_a_kind_of OAuth2::AccessToken
162
90
  access_token.token.should be_a_kind_of String
163
91
  end
164
92
  end
165
93
 
166
- describe "#authorize_from_access" do
167
- let(:auth_token) do
168
- client.authorize_from_access('dummy-token', 'dummy-secret')
169
- end
170
-
171
- it "should return a valid auth token" do
172
- auth_token.should be_a_kind_of Array
173
- auth_token[0].should be_a_kind_of String
174
- auth_token[1].should be_a_kind_of String
175
- end
176
- end
177
-
178
94
  end
@@ -11,8 +11,7 @@ describe LinkedIn::Search do
11
11
  client = LinkedIn::Client.new(consumer_token, consumer_secret)
12
12
 
13
13
  auth_token = ENV['LINKED_IN_AUTH_KEY'] || 'key'
14
- auth_secret = ENV['LINKED_IN_AUTH_SECRET'] || 'secret'
15
- client.authorize_from_access(auth_token, auth_secret)
14
+ client.authorize_from_access(auth_token)
16
15
  client
17
16
  end
18
17
 
@@ -2,19 +2,21 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://api.linkedin.com/v1/companies/id=1586
5
+ uri: https://api.linkedin.com/v1/companies/1586
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
10
12
  X-Li-Format:
11
13
  - json
12
- User-Agent:
13
- - OAuth gem v0.4.5
14
14
  Authorization:
15
- - OAuth oauth_consumer_key="consumer_key", oauth_nonce="nonce", oauth_signature="signature",
16
- oauth_signature_method="HMAC-SHA1", oauth_timestamp="1319129843", oauth_token="token",
17
- oauth_version="1.0"
15
+ - Bearer atoken
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
18
20
  response:
19
21
  status:
20
22
  code: 200
metadata CHANGED
@@ -1,135 +1,172 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: linkedin
3
- version: !ruby/object:Gem::Version
4
- version: 1.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Matthew Kirk
8
8
  - Wynn Netherland
9
9
  - Josh Kalderimis
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2016-01-27 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
13
+ date: 2018-08-08 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: hashie
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ~>
22
- - !ruby/object:Gem::Version
23
- version: "3.0"
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: multi_json
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: "1.0"
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '3.0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: multi_json
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '1.0'
34
36
  type: :runtime
35
- version_requirements: *id002
36
- - !ruby/object:Gem::Dependency
37
- name: oauth
38
37
  prerelease: false
39
- requirement: &id003 !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: "0.4"
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: oauth2
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.0'
44
50
  type: :runtime
45
- version_requirements: *id003
46
- - !ruby/object:Gem::Dependency
47
- name: rake
48
51
  prerelease: false
49
- requirement: &id004 !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: "10"
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '1.0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '10'
54
64
  type: :development
55
- version_requirements: *id004
56
- - !ruby/object:Gem::Dependency
57
- name: yard
58
65
  prerelease: false
59
- requirement: &id005 !ruby/object:Gem::Requirement
60
- requirements:
61
- - &id006
62
- - ">="
63
- - !ruby/object:Gem::Version
64
- version: "0"
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '10'
71
+ - !ruby/object:Gem::Dependency
72
+ name: yard
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
65
78
  type: :development
66
- version_requirements: *id005
67
- - !ruby/object:Gem::Dependency
68
- name: kramdown
69
79
  prerelease: false
70
- requirement: &id007 !ruby/object:Gem::Requirement
71
- requirements:
72
- - *id006
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: kramdown
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
73
92
  type: :development
74
- version_requirements: *id007
75
- - !ruby/object:Gem::Dependency
76
- name: rspec
77
93
  prerelease: false
78
- requirement: &id008 !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ~>
81
- - !ruby/object:Gem::Version
82
- version: "2.13"
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rspec
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '2.13'
83
106
  type: :development
84
- version_requirements: *id008
85
- - !ruby/object:Gem::Dependency
86
- name: simplecov
87
107
  prerelease: false
88
- requirement: &id009 !ruby/object:Gem::Requirement
89
- requirements:
90
- - - ~>
91
- - !ruby/object:Gem::Version
92
- version: "0.7"
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '2.13'
113
+ - !ruby/object:Gem::Dependency
114
+ name: simplecov
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0.7'
93
120
  type: :development
94
- version_requirements: *id009
95
- - !ruby/object:Gem::Dependency
96
- name: vcr
97
121
  prerelease: false
98
- requirement: &id010 !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ~>
101
- - !ruby/object:Gem::Version
102
- version: "2.5"
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '0.7'
127
+ - !ruby/object:Gem::Dependency
128
+ name: vcr
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '2.5'
103
134
  type: :development
104
- version_requirements: *id010
105
- - !ruby/object:Gem::Dependency
106
- name: webmock
107
135
  prerelease: false
108
- requirement: &id011 !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ~>
111
- - !ruby/object:Gem::Version
112
- version: "1.11"
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '2.5'
141
+ - !ruby/object:Gem::Dependency
142
+ name: webmock
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '1.11'
113
148
  type: :development
114
- version_requirements: *id011
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '1.11'
115
155
  description: Ruby wrapper for the LinkedIn API
116
- email:
156
+ email:
117
157
  - meteor.kirk@gmail.com
118
158
  - wynn.netherland@gmail.com
119
159
  - josh.kalderimis@gmail.com
120
160
  executables: []
121
-
122
161
  extensions: []
123
-
124
162
  extra_rdoc_files: []
125
-
126
- files:
127
- - .autotest
128
- - .gemtest
129
- - .gitignore
130
- - .rspec
131
- - .travis.yml
132
- - .yardopts
163
+ files:
164
+ - ".autotest"
165
+ - ".gemtest"
166
+ - ".gitignore"
167
+ - ".rspec"
168
+ - ".travis.yml"
169
+ - ".yardopts"
133
170
  - CHANGELOG.md
134
171
  - EXAMPLES.md
135
172
  - Gemfile
@@ -180,29 +217,30 @@ files:
180
217
  - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_single_keywords_option_with_pagination/should_perform_a_search.yml
181
218
  - spec/helper.rb
182
219
  homepage: http://github.com/hexgnu/linkedin
183
- licenses:
220
+ licenses:
184
221
  - MIT
185
222
  metadata: {}
186
-
187
223
  post_install_message:
188
224
  rdoc_options: []
189
-
190
- require_paths:
225
+ require_paths:
191
226
  - lib
192
- required_ruby_version: !ruby/object:Gem::Requirement
193
- requirements:
194
- - *id006
195
- required_rubygems_version: !ruby/object:Gem::Requirement
196
- requirements:
197
- - *id006
227
+ required_ruby_version: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ required_rubygems_version: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
198
237
  requirements: []
199
-
200
238
  rubyforge_project:
201
- rubygems_version: 2.4.8
239
+ rubygems_version: 2.7.3
202
240
  signing_key:
203
241
  specification_version: 4
204
242
  summary: This gem interfaces with the Linkedin XML and JSON APis
205
- test_files:
243
+ test_files:
206
244
  - spec/cases/api_spec.rb
207
245
  - spec/cases/linkedin_spec.rb
208
246
  - spec/cases/mash_spec.rb
@@ -228,4 +266,3 @@ test_files:
228
266
  - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_single_keywords_option_with_facets_to_return/should_return_a_facet.yml
229
267
  - spec/fixtures/cassette_library/LinkedIn_Search/_search_company/by_single_keywords_option_with_pagination/should_perform_a_search.yml
230
268
  - spec/helper.rb
231
- has_rdoc: