linkedin 1.1.0 → 1.1.1

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
- ---
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: