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 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
@@ -3,3 +3,4 @@
3
3
  local_*
4
4
  .ruby-version
5
5
  .rbenv*
6
+ coverage/
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ xing_api_client
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - ruby-head
6
+ - jruby-19mode
7
+ script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ gem 'simplecov', require: false
6
+ gem 'coveralls', require: false
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xing_api_client (0.0.1)
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
+ [![Build Status](https://api.travis-ci.org/ependichter/xing_api_client.png?branch=master)](http://travis-ci.org/ependichter/xing_api_client)
11
+ [![Code Climate](https://codeclimate.com/github/ependichter/xing_api_client.png)](https://codeclimate.com/github/ependichter/xing_api_client)
12
+ [![Coverage Status](https://coveralls.io/repos/ependichter/xing_api_client/badge.png?branch=master)](https://coveralls.io/r/ependichter/xing_api_client)
13
+ [![Dependency Status](https://gemnasium.com/ependichter/xing_api_client.png)](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
- - [ ] GET /v1/users/:user_id/visits
226
- - [ ] POST /v1/users/:user_id/visits
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
@@ -1,3 +1,4 @@
1
+ require_relative './call/base.rb'
1
2
  Dir[File.dirname(__FILE__) + '/call/*.rb'].each { |name| require(name) }
2
3
 
3
4
  class XingApiClient
@@ -1,9 +1,9 @@
1
- require 'xing_api_client/object/base'
2
- require 'xing_api_client/object/user'
3
- require 'xing_api_client/object/address'
4
- require 'xing_api_client/object/company'
5
- require 'xing_api_client/object/school'
6
- require 'xing_api_client/object/year_month'
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,8 @@
1
1
  class XingApiClient
2
+ class Error < StandardError; end
3
+
2
4
  class Request
3
- class Error < StandardError
5
+ class Error < XingApiClient::Error
4
6
  attr_accessor :code, :api_name, :response
5
7
 
6
8
  def initialize(code, api_name, response)
@@ -1,6 +1,6 @@
1
1
  class XingApiClient
2
2
  class Request
3
- require 'xing_api_client/request/error'
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
- result = if verb != :post
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
- data = unless result.body.nil?
42
- if options[:content_type] == 'text'
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) if not Array(options[:allowed_codes]).include?(code)
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 handle_error!(code, data)
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)
@@ -1,3 +1,3 @@
1
1
  class XingApiClient
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -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| require "xing_api_client/#{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&param2=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.1
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: 2013-10-26 00:00:00.000000000 Z
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: 1.8.23
196
+ rubygems_version: 2.2.2
207
197
  signing_key:
208
- specification_version: 3
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