xing_api_client 0.0.1 → 0.0.2
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 +15 -0
- data/.gitignore +1 -0
- data/.ruby-gemset +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +19 -1
- data/README.md +7 -2
- data/lib/xing_api_client/call/users_visits_call.rb +22 -0
- data/lib/xing_api_client/call.rb +1 -0
- data/lib/xing_api_client/object.rb +6 -6
- data/lib/xing_api_client/request/error.rb +3 -1
- data/lib/xing_api_client/request.rb +31 -18
- data/lib/xing_api_client/version.rb +1 -1
- data/lib/xing_api_client.rb +1 -1
- data/spec/spec_helper.rb +5 -0
- data/spec/xing_api_client/call/users_visits_call_spec.rb +46 -0
- data/spec/xing_api_client/object/base_spec.rb +20 -0
- data/spec/xing_api_client/object/company_spec.rb +37 -0
- data/spec/xing_api_client/request_spec.rb +81 -2
- metadata +14 -21
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NWExNTVmMzA2NTc3MjBlOGM4MjRkNjEzZDA1MjNlMDRmMzViNWMwZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NzdkZWIyYzgyMDE0OGZjMjY0YzhkYmIwYzU5NGRhOGM3YTU5NGEyZQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjZlNTFmMTEwMmE0ZGQzZjhjYmFjM2E5ODk4NDNmN2VhN2ZjNDJlZGE1Yjhl
|
10
|
+
ZWI4YzJkOWM1YmJmYzU3ZGJmNzE4ODA5OWU0NWZkZGI4ZGUxZTJlMDM5NmY1
|
11
|
+
MjZkNzAyYWYwZTc2MDA0Y2I1MjNiMmQzMzM0MzBlMDdkODBhYjM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YjZhNjY5NTg4YmI1YTU5MWQ2YjI5ZjkyYmNkMjI1YmMzY2U0YWRkMzhiNjc2
|
14
|
+
NzE0OGE0ZWEyZmRjNGEyYzIwZTFhM2I1NTZkODRkNDMwNjJhMTdlZjAzZGNj
|
15
|
+
ZTFjNDQzMDM4ZTc4YzA0ZTRjNzg2NTFjNzVmOTVjZDE1ZDJkZTE=
|
data/.gitignore
CHANGED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
xing_api_client
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
xing_api_client (0.0.
|
4
|
+
xing_api_client (0.0.2)
|
5
5
|
activesupport
|
6
6
|
bundler (~> 1.3)
|
7
7
|
oauth
|
@@ -21,6 +21,12 @@ GEM
|
|
21
21
|
celluloid (0.15.2)
|
22
22
|
timers (~> 1.1.0)
|
23
23
|
coderay (1.0.9)
|
24
|
+
coveralls (0.7.0)
|
25
|
+
multi_json (~> 1.3)
|
26
|
+
rest-client
|
27
|
+
simplecov (>= 0.7)
|
28
|
+
term-ansicolor
|
29
|
+
thor
|
24
30
|
diff-lcs (1.2.4)
|
25
31
|
ffi (1.9.0)
|
26
32
|
formatador (0.2.4)
|
@@ -40,6 +46,7 @@ GEM
|
|
40
46
|
rb-inotify (>= 0.9)
|
41
47
|
lumberjack (1.0.4)
|
42
48
|
method_source (0.8.2)
|
49
|
+
mime-types (1.25)
|
43
50
|
minitest (4.7.5)
|
44
51
|
multi_json (1.8.2)
|
45
52
|
oauth (0.4.7)
|
@@ -52,6 +59,8 @@ GEM
|
|
52
59
|
rb-fsevent (0.9.3)
|
53
60
|
rb-inotify (0.9.2)
|
54
61
|
ffi (>= 0.5.0)
|
62
|
+
rest-client (1.6.7)
|
63
|
+
mime-types (>= 1.16)
|
55
64
|
rspec (2.14.1)
|
56
65
|
rspec-core (~> 2.14.0)
|
57
66
|
rspec-expectations (~> 2.14.0)
|
@@ -60,17 +69,26 @@ GEM
|
|
60
69
|
rspec-expectations (2.14.3)
|
61
70
|
diff-lcs (>= 1.1.3, < 2.0)
|
62
71
|
rspec-mocks (2.14.4)
|
72
|
+
simplecov (0.7.1)
|
73
|
+
multi_json (~> 1.0)
|
74
|
+
simplecov-html (~> 0.7.1)
|
75
|
+
simplecov-html (0.7.1)
|
63
76
|
slop (3.4.6)
|
77
|
+
term-ansicolor (1.2.2)
|
78
|
+
tins (~> 0.8)
|
64
79
|
thor (0.18.1)
|
65
80
|
thread_safe (0.1.3)
|
66
81
|
atomic
|
67
82
|
timers (1.1.0)
|
83
|
+
tins (0.12.0)
|
68
84
|
tzinfo (0.3.38)
|
69
85
|
|
70
86
|
PLATFORMS
|
71
87
|
ruby
|
72
88
|
|
73
89
|
DEPENDENCIES
|
90
|
+
coveralls
|
74
91
|
guard-rspec
|
75
92
|
rspec
|
93
|
+
simplecov
|
76
94
|
xing_api_client!
|
data/README.md
CHANGED
@@ -7,6 +7,11 @@ Special thanks go to [Jan-Oliver Jahner (jojahner)](https://github.com/jojahner)
|
|
7
7
|
|
8
8
|
Tested with ruby 1.9.3p448 and 2.0.0-p0.
|
9
9
|
|
10
|
+
[](http://travis-ci.org/ependichter/xing_api_client)
|
11
|
+
[](https://codeclimate.com/github/ependichter/xing_api_client)
|
12
|
+
[](https://coveralls.io/r/ependichter/xing_api_client)
|
13
|
+
[](https://gemnasium.com/ependichter/xing_api_client)
|
14
|
+
|
10
15
|
## Quickstart
|
11
16
|
### Make a handshake
|
12
17
|
```ruby
|
@@ -222,8 +227,8 @@ client.request.get_users(id: 'me')
|
|
222
227
|
- [ ] DELETE /v1/activities/:activity_id/like
|
223
228
|
|
224
229
|
### Profile Visits
|
225
|
-
- [
|
226
|
-
- [
|
230
|
+
- [x] GET /v1/users/:user_id/visits
|
231
|
+
- [x] POST /v1/users/:user_id/visits
|
227
232
|
|
228
233
|
### Recommendations
|
229
234
|
- [ ] GET /v1/users/:user_id/network/recommendations
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class XingApiClient
|
2
|
+
module Call
|
3
|
+
module UsersVisitsCall
|
4
|
+
def get_users_visits(options = {})
|
5
|
+
id = options[:id] || 'me'
|
6
|
+
|
7
|
+
offset = options[:offset]
|
8
|
+
limit = options[:limit]
|
9
|
+
strip_html = options[:strip_html] || false
|
10
|
+
|
11
|
+
params = { strip_html: strip_html }
|
12
|
+
params.merge!(since: options[:since]) unless options[:since].nil?
|
13
|
+
|
14
|
+
make_request!(:get, "v1/users/#{id}/visits", params.merge(limit: (limit || 100), offset: offset), array_keys: "visits")
|
15
|
+
end
|
16
|
+
|
17
|
+
def post_users_visits(user_id)
|
18
|
+
make_request!(:post, "v1/users/#{user_id}/visits", {}, allowed_codes: 201, content_type: 'text' )
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/xing_api_client/call.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
require_relative 'object/base'
|
2
|
+
require_relative 'object/user'
|
3
|
+
require_relative 'object/address'
|
4
|
+
require_relative 'object/company'
|
5
|
+
require_relative 'object/school'
|
6
|
+
require_relative 'object/year_month'
|
7
7
|
|
8
8
|
class XingApiClient
|
9
9
|
class Object
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class XingApiClient
|
2
2
|
class Request
|
3
|
-
|
3
|
+
require_relative 'request/error'
|
4
4
|
require 'parallel'
|
5
5
|
include Config
|
6
6
|
include XingApiClient::Call
|
@@ -28,25 +28,13 @@ class XingApiClient
|
|
28
28
|
def make_request!(verb, url, params = nil, options = {})
|
29
29
|
options = { array_keys: [], allowed_codes: [200] }.merge(options)
|
30
30
|
url = [config.host, url].join('/')
|
31
|
-
request_params = add_default_values(params)
|
32
31
|
|
33
|
-
|
34
|
-
consumer_token.request(verb, url + generate_url_params(request_params))
|
35
|
-
else
|
36
|
-
consumer_token.request(verb, url, request_params)
|
37
|
-
end
|
38
|
-
|
39
|
-
code = result.code.to_i
|
32
|
+
request_params = add_default_values(params)
|
40
33
|
|
41
|
-
|
42
|
-
|
43
|
-
result.body
|
44
|
-
else
|
45
|
-
JSON.parse(result.body)
|
46
|
-
end
|
47
|
-
end
|
34
|
+
result = handle_request(verb, url, request_params)
|
35
|
+
data = handle_result(result, options[:content_type])
|
48
36
|
|
49
|
-
handle_error!(code, data
|
37
|
+
handle_error!(result.code, data, options[:allowed_codes])
|
50
38
|
|
51
39
|
Array(options[:array_keys]).each { |key| data = data[key] }
|
52
40
|
|
@@ -76,7 +64,32 @@ class XingApiClient
|
|
76
64
|
end
|
77
65
|
end
|
78
66
|
|
79
|
-
def
|
67
|
+
def handle_request(verb, url, params)
|
68
|
+
if verb != :post
|
69
|
+
consumer_token.request(verb, url + generate_url_params(params))
|
70
|
+
else
|
71
|
+
consumer_token.request(verb, url, params)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def handle_result(result, content_type)
|
76
|
+
unless result.body.nil?
|
77
|
+
if content_type == 'text'
|
78
|
+
result.body
|
79
|
+
else
|
80
|
+
begin
|
81
|
+
JSON.parse(result.body)
|
82
|
+
rescue JSON::ParserError
|
83
|
+
raise XingApiClient::Error
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def handle_error!(code, data, allowed_codes)
|
90
|
+
code = code.to_i
|
91
|
+
return if Array(allowed_codes).include?(code)
|
92
|
+
|
80
93
|
error_class = ERROR_CLASSES[data.nil? ? code : data['error_name']] || Error
|
81
94
|
|
82
95
|
raise error_class.new(code, data['error_name'], data)
|
data/lib/xing_api_client.rb
CHANGED
@@ -4,7 +4,7 @@ require 'open-uri'
|
|
4
4
|
require 'yaml'
|
5
5
|
require 'ostruct'
|
6
6
|
require 'active_support/core_ext/hash/indifferent_access'
|
7
|
-
%w{ version config object call request}.each{ |name|
|
7
|
+
%w{ version config object call request}.each{ |name| require_relative "xing_api_client/#{name}"}
|
8
8
|
|
9
9
|
class XingApiClient
|
10
10
|
include Config
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler/setup'
|
3
|
+
require 'coveralls'
|
4
|
+
require 'simplecov'
|
5
|
+
|
6
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
7
|
+
SimpleCov.start { add_filter('spec') }
|
3
8
|
|
4
9
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
5
10
|
require 'xing_api_client'
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe XingApiClient::Call::UsersVisitsCall do
|
4
|
+
let(:call) { Object.new.tap{ |object| object.extend(XingApiClient::Call::UsersVisitsCall) } }
|
5
|
+
|
6
|
+
describe '#get_users_visits' do
|
7
|
+
context 'with no options' do
|
8
|
+
subject do
|
9
|
+
call.
|
10
|
+
should_receive(:make_request!).
|
11
|
+
with(:get, "v1/users/me/visits", {:strip_html=>false, :limit=>100, :offset=>nil}, {:array_keys=>"visits"}).
|
12
|
+
and_return([])
|
13
|
+
|
14
|
+
call.get_users_visits()
|
15
|
+
end
|
16
|
+
|
17
|
+
its(:class) { should == Array }
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with all options' do
|
21
|
+
subject do
|
22
|
+
call.
|
23
|
+
should_receive(:make_request!).
|
24
|
+
with(:get, "v1/users/:user_id/visits", {:strip_html=>true, :since=>"12345", :limit=>"99", :offset=>"30"}, {:array_keys=>"visits"}).
|
25
|
+
and_return([])
|
26
|
+
|
27
|
+
call.get_users_visits(id: ':user_id', offset: '30', limit: '99', strip_html: true, since: '12345')
|
28
|
+
end
|
29
|
+
|
30
|
+
its(:class) { should == Array }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#post_users_visits' do
|
35
|
+
subject do
|
36
|
+
call.
|
37
|
+
should_receive(:make_request!).
|
38
|
+
with(:post, "v1/users/some-message/visits", {}, {:allowed_codes=>201, :content_type=>"text"}).
|
39
|
+
and_return(nil)
|
40
|
+
|
41
|
+
call.post_users_visits('some-message')
|
42
|
+
end
|
43
|
+
|
44
|
+
its(:class) { should == NilClass }
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe XingApiClient::Object::Base do
|
4
|
+
subject do
|
5
|
+
class TestObjectParent < Object
|
6
|
+
def other_key; 'stub' end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestObject < TestObjectParent
|
10
|
+
include XingApiClient::Object::Base
|
11
|
+
end.new({key1: 'value1', key2: 'value2'})
|
12
|
+
end
|
13
|
+
|
14
|
+
its(:key1) { should == 'value1' }
|
15
|
+
its(:key2) { should == 'value2' }
|
16
|
+
|
17
|
+
it "calls the parent object, if it dosn't find a method" do
|
18
|
+
subject.other_key.should == 'stub'
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe XingApiClient::Object::User do
|
4
|
+
subject do
|
5
|
+
XingApiClient::Object::User.new(XingApiClient::Object::User::EXAMPLE_RESPONSE["users"].first)
|
6
|
+
end
|
7
|
+
|
8
|
+
its(:id) { should == '13802856_c7551a' }
|
9
|
+
its(:first_name) { should == 'Firstname' }
|
10
|
+
its(:last_name) { should == 'Lastname' }
|
11
|
+
its(:display_name) { should == 'Firstname Lastname' }
|
12
|
+
its(:page_name) { should == 'Firstname_Lastname8' }
|
13
|
+
its(:employment_status) { should == 'EMPLOYEE' }
|
14
|
+
its(:gender) { should == 'm' }
|
15
|
+
its(:birth_date) { should == Date.parse("1983-01-03") }
|
16
|
+
its(:active_email) { should == 'somemailaddress@gmail.com' }
|
17
|
+
its(:time_zone) { should == {"utc_offset"=>2, "name"=>"Europe/Berlin"} }
|
18
|
+
its(:premium_services) { should == ["SEARCH", "PRIVATEMESSAGES"] }
|
19
|
+
its(:badges) { should == ["PREMIUM", "MODERATOR"] }
|
20
|
+
its(:wants) { should == 'new gems, cool rails stuff, pizza' }
|
21
|
+
its(:haves) { should == 'Jenkins CI, MySQL, REST, TDD, UML' }
|
22
|
+
its(:interests) { should == 'CSS, CoffeeScript, HTML5, Robotics, jQuery' }
|
23
|
+
its(:organisation_member) { should == nil }
|
24
|
+
its(:languages) { should == {"en"=>"FLUENT", "de"=>"NATIVE"} }
|
25
|
+
its(:private_address) { should be_kind_of XingApiClient::Object::Address }
|
26
|
+
its(:business_address) { should be_kind_of XingApiClient::Object::Address }
|
27
|
+
its(:web_profiles) { should == {} }
|
28
|
+
its(:instant_messaging_accounts) { should == {"skype"=>"username"} }
|
29
|
+
its(:professional_experience) { should_not be_empty }
|
30
|
+
its(:professional_experience) { subject.professional_experience.all?{ |e| e.kind_of?(XingApiClient::Object::Company) }.should be_true }
|
31
|
+
its(:photo_urls) { should == {"large"=>"https://x1.xingassets.com/img/users/3/5/1/238ddffce.13802856,9.140x185.jpg",
|
32
|
+
"maxi_thumb"=>"https://x1.xingassets.com/img/users/3/5/1/238ddffce.13802856,9.70x93.jpg",
|
33
|
+
"medium_thumb"=>"https://x1.xingassets.com/img/users/3/5/1/238ddffce.13802856,9.57x75.jpg",
|
34
|
+
"mini_thumb"=>"https://x1.xingassets.com/img/users/3/5/1/238ddffce.13802856,9.18x24.jpg",
|
35
|
+
"thumb"=>"https://x1.xingassets.com/img/users/3/5/1/238ddffce.13802856,9.30x40.jpg"} }
|
36
|
+
its(:permalink) { should == 'https://www.xing.com/profile/Firstname_Lastname8' }
|
37
|
+
end
|
@@ -50,11 +50,90 @@ describe XingApiClient::Request do
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
describe '#make_request!' do
|
54
|
+
it 'adds the params to the url' do
|
55
|
+
params = { some_param: 'some_value' }
|
56
|
+
options = { array_keys: 'users', allowed_codes: 204, content_type: 'text' }
|
57
|
+
request_params = { other_param: 'some_value'}
|
58
|
+
result = stub('result', code: 204)
|
59
|
+
|
60
|
+
instance.should_receive(:add_default_values).with(params).and_return(request_params)
|
61
|
+
instance.should_receive(:handle_request).with(:get, 'https://api.xing.com/v1/something', request_params).and_return(result)
|
62
|
+
instance.should_receive(:handle_result).with(result, options[:content_type]).and_return('users' => 'some data')
|
63
|
+
|
64
|
+
instance.send(:make_request!, :get, 'v1/something', params, options).should == 'some data'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe '#handle_request!' do
|
69
|
+
let(:url){ 'www.test.com' }
|
70
|
+
let(:params) { {param1: '1', param2: '2'} }
|
71
|
+
|
72
|
+
context 'get requests' do
|
73
|
+
let(:verb){ :get }
|
74
|
+
|
75
|
+
it 'adds the params to the url' do
|
76
|
+
consumer_token_object.should_receive(:request).with(:get, "www.test.com?param1=1¶m2=2")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context 'post request' do
|
81
|
+
let(:verb){ :post }
|
82
|
+
|
83
|
+
it 'adds the params to the body' do
|
84
|
+
consumer_token_object.should_receive(:request).with(:post, "www.test.com", {:param1=>"1", :param2=>"2"})
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
after{ instance.send(:handle_request, verb, url, params) }
|
89
|
+
end
|
90
|
+
|
91
|
+
describe '#handle_result' do
|
92
|
+
|
93
|
+
context 'the result body is nil' do
|
94
|
+
let(:result){ stub('result') }
|
95
|
+
let(:content_type){}
|
96
|
+
|
97
|
+
before{ result.should_receive(:body).and_return(nil) }
|
98
|
+
|
99
|
+
it 'returns nil' do
|
100
|
+
instance.send(:handle_result, result, content_type).should be_nil
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context 'the result body is not nil' do
|
105
|
+
let(:result){ stub('result') }
|
106
|
+
before{ result.stub(:body).and_return('{ "male": true }') }
|
107
|
+
|
108
|
+
context 'the content_type is == "text"' do
|
109
|
+
let(:content_type){ 'text' }
|
110
|
+
|
111
|
+
it 'returns a String' do
|
112
|
+
instance.send(:handle_result, result, content_type).should == '{ "male": true }'
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
context 'the content_type is nil' do
|
117
|
+
let(:content_type){ nil }
|
118
|
+
|
119
|
+
it 'returns a Hash' do
|
120
|
+
instance.send(:handle_result, result, content_type).should == { "male" => true }
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
53
126
|
describe '#handle_error!' do
|
127
|
+
context 'If there is no error, it...' do
|
128
|
+
it 'does not raise' do
|
129
|
+
instance.send(:handle_error!, 200, {}, 200)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
54
133
|
context 'If the error is defined, it...' do
|
55
134
|
XingApiClient::Request::ERROR_CLASSES.each_pair do |api_error_code, error_class|
|
56
135
|
it "raises an #{error_class}" do
|
57
|
-
expect { instance.send(:handle_error!,'1234', 'error_name' => api_error_code) }.
|
136
|
+
expect { instance.send(:handle_error!,'1234', {'error_name' => api_error_code}, 200) }.
|
58
137
|
to raise_error( error_class )
|
59
138
|
end
|
60
139
|
end
|
@@ -62,7 +141,7 @@ describe XingApiClient::Request do
|
|
62
141
|
|
63
142
|
context 'If the error is undefined, it...' do
|
64
143
|
it "raises an XingApiClient::Request::Error" do
|
65
|
-
expect { instance.send(:handle_error!,'1234', 'error_name' => 'RSPEC_TEST_EXCEPTION') }.
|
144
|
+
expect { instance.send(:handle_error!, '1234', {'error_name' => 'RSPEC_TEST_EXCEPTION'}, 200) }.
|
66
145
|
to raise_error( XingApiClient::Request::Error )
|
67
146
|
end
|
68
147
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xing_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Martin Brendel
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: guard-rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bundler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: oauth
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: activesupport
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: parallel
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -132,6 +117,8 @@ extra_rdoc_files: []
|
|
132
117
|
files:
|
133
118
|
- .gitignore
|
134
119
|
- .rspec
|
120
|
+
- .ruby-gemset
|
121
|
+
- .travis.yml
|
135
122
|
- Gemfile
|
136
123
|
- Gemfile.lock
|
137
124
|
- Guardfile
|
@@ -153,6 +140,7 @@ files:
|
|
153
140
|
- lib/xing_api_client/call/users_me_id_card_call.rb
|
154
141
|
- lib/xing_api_client/call/users_network_paths_call.rb
|
155
142
|
- lib/xing_api_client/call/users_profile_message_call.rb
|
143
|
+
- lib/xing_api_client/call/users_visits_call.rb
|
156
144
|
- lib/xing_api_client/config.rb
|
157
145
|
- lib/xing_api_client/object.rb
|
158
146
|
- lib/xing_api_client/object/address.rb
|
@@ -175,7 +163,10 @@ files:
|
|
175
163
|
- spec/xing_api_client/call/users_me_id_card_call_spec.rb
|
176
164
|
- spec/xing_api_client/call/users_network_paths_call_spec.rb
|
177
165
|
- spec/xing_api_client/call/users_profile_message_call_spec.rb
|
166
|
+
- spec/xing_api_client/call/users_visits_call_spec.rb
|
178
167
|
- spec/xing_api_client/config_spec.rb
|
168
|
+
- spec/xing_api_client/object/base_spec.rb
|
169
|
+
- spec/xing_api_client/object/company_spec.rb
|
179
170
|
- spec/xing_api_client/object/user_spec.rb
|
180
171
|
- spec/xing_api_client/object/year_month_spec.rb
|
181
172
|
- spec/xing_api_client/request/error_spec.rb
|
@@ -185,27 +176,26 @@ files:
|
|
185
176
|
homepage: ''
|
186
177
|
licenses:
|
187
178
|
- MIT
|
179
|
+
metadata: {}
|
188
180
|
post_install_message:
|
189
181
|
rdoc_options: []
|
190
182
|
require_paths:
|
191
183
|
- lib
|
192
184
|
required_ruby_version: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
185
|
requirements:
|
195
186
|
- - ! '>='
|
196
187
|
- !ruby/object:Gem::Version
|
197
188
|
version: '0'
|
198
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
|
-
none: false
|
200
190
|
requirements:
|
201
191
|
- - ! '>='
|
202
192
|
- !ruby/object:Gem::Version
|
203
193
|
version: '0'
|
204
194
|
requirements: []
|
205
195
|
rubyforge_project:
|
206
|
-
rubygems_version:
|
196
|
+
rubygems_version: 2.2.2
|
207
197
|
signing_key:
|
208
|
-
specification_version:
|
198
|
+
specification_version: 4
|
209
199
|
summary: An easy way to access the XING API
|
210
200
|
test_files:
|
211
201
|
- spec/spec_helper.rb
|
@@ -219,7 +209,10 @@ test_files:
|
|
219
209
|
- spec/xing_api_client/call/users_me_id_card_call_spec.rb
|
220
210
|
- spec/xing_api_client/call/users_network_paths_call_spec.rb
|
221
211
|
- spec/xing_api_client/call/users_profile_message_call_spec.rb
|
212
|
+
- spec/xing_api_client/call/users_visits_call_spec.rb
|
222
213
|
- spec/xing_api_client/config_spec.rb
|
214
|
+
- spec/xing_api_client/object/base_spec.rb
|
215
|
+
- spec/xing_api_client/object/company_spec.rb
|
223
216
|
- spec/xing_api_client/object/user_spec.rb
|
224
217
|
- spec/xing_api_client/object/year_month_spec.rb
|
225
218
|
- spec/xing_api_client/request/error_spec.rb
|