ecircle 0.1.3 → 0.1.4
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.
- data/.rspec +1 -0
- data/Gemfile.lock +10 -2
- data/ecircle.gemspec +1 -0
- data/lib/ecircle/api.rb +81 -123
- data/lib/ecircle/version.rb +1 -1
- data/spec/ecircle/api_spec.rb +80 -0
- data/spec/fixtures/create_member/success.xml +1 -0
- data/spec/fixtures/logon/success.xml +1 -0
- data/spec/spec_helper.rb +11 -4
- metadata +102 -79
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ecircle (0.1.
|
4
|
+
ecircle (0.1.4)
|
5
5
|
activesupport
|
6
6
|
i18n
|
7
7
|
rake
|
@@ -10,7 +10,7 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: http://rubygems.org/
|
12
12
|
specs:
|
13
|
-
activesupport (3.1.
|
13
|
+
activesupport (3.1.3)
|
14
14
|
multi_json (~> 1.0)
|
15
15
|
akami (1.0.0)
|
16
16
|
gyoku (>= 0.4.0)
|
@@ -25,6 +25,9 @@ GEM
|
|
25
25
|
i18n (0.6.0)
|
26
26
|
linecache19 (0.5.12)
|
27
27
|
ruby_core_source (>= 0.1.4)
|
28
|
+
metaclass (0.0.1)
|
29
|
+
mocha (0.10.0)
|
30
|
+
metaclass (~> 0.0.1)
|
28
31
|
multi_json (1.0.3)
|
29
32
|
nokogiri (1.5.0)
|
30
33
|
nori (1.0.2)
|
@@ -57,6 +60,10 @@ GEM
|
|
57
60
|
nokogiri (>= 1.4.0)
|
58
61
|
nori (~> 1.0)
|
59
62
|
wasabi (~> 2.0)
|
63
|
+
savon_spec (0.1.6)
|
64
|
+
mocha (>= 0.9.8)
|
65
|
+
rspec (>= 2.0.0)
|
66
|
+
savon (>= 0.8.0)
|
60
67
|
wasabi (2.0.0)
|
61
68
|
nokogiri (>= 1.4.0)
|
62
69
|
yard (0.7.3)
|
@@ -69,4 +76,5 @@ DEPENDENCIES
|
|
69
76
|
random_data (= 1.5.2)
|
70
77
|
rspec (= 2.6.0)
|
71
78
|
ruby-debug19
|
79
|
+
savon_spec (~> 0.1.6)
|
72
80
|
yard
|
data/ecircle.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency 'savon', '>=0.9.7'
|
25
25
|
s.add_development_dependency 'random_data', '1.5.2'
|
26
26
|
s.add_development_dependency 'rspec', '2.6.0'
|
27
|
+
s.add_development_dependency 'savon_spec', '~> 0.1.6'
|
27
28
|
s.add_development_dependency 'yard'
|
28
29
|
s.add_development_dependency 'ruby-debug19'
|
29
30
|
end
|
data/lib/ecircle/api.rb
CHANGED
@@ -11,39 +11,9 @@ module Ecircle
|
|
11
11
|
!!!
|
12
12
|
doc
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
begin
|
18
|
-
@auth_token ||= logon
|
19
|
-
rescue Savon::SOAP::Fault => e
|
20
|
-
# If we are here this means that our login credentials are wrong.
|
21
|
-
wrapped_response = WrappedResponse.new(e)
|
22
|
-
if wrapped_response.not_authenticated? || wrapped_response.permission_problem?
|
23
|
-
puts @@help
|
24
|
-
raise InvalidLoginCredentials
|
25
|
-
else
|
26
|
-
raise
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
first_try = true
|
31
|
-
# -> In case the session token has expired (which means 'not_authenticated') retry once.
|
32
|
-
# -> In case we can't get a token on second there's nothing we can do, so give up.
|
33
|
-
# -> In all other cases (regardless if success? is true or false) return the response.
|
34
|
-
loop do
|
35
|
-
wrapped_response = block.call
|
36
|
-
if first_try && wrapped_response.not_authenticated?
|
37
|
-
first_try = false
|
38
|
-
@auth_token = logon
|
39
|
-
elsif wrapped_response.not_authenticated?
|
40
|
-
puts "!!! Could not re-authenticate after session expired: #{wrapped_response.inspect} !!!"
|
41
|
-
raise
|
42
|
-
else
|
43
|
-
return wrapped_response
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
14
|
+
# According to http://developer.ecircle-ag.com/apiwiki/wiki/SynchronousSoapAPI#section-SynchronousSoapAPI-SampleProtocolExcerpt,
|
15
|
+
# a session expires after 10 minutes (600 seconds) of idleness. We give ourselves a 30-second margin.
|
16
|
+
AUTH_TOKEN_TIMEOUT = 570
|
47
17
|
|
48
18
|
# @private
|
49
19
|
def client
|
@@ -62,24 +32,19 @@ module Ecircle
|
|
62
32
|
# @param [Boolean] send_message send a message by ecircle
|
63
33
|
# @return [WrappedResponse]
|
64
34
|
def create_member user_id, group_id, invite = false, send_message = false
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
:sendMessage => send_message.to_s
|
74
|
-
}
|
75
|
-
end
|
76
|
-
rescue Savon::SOAP::Fault => e
|
77
|
-
WrappedResponse.new(e)
|
78
|
-
else
|
79
|
-
WrappedResponse.new :success => true,
|
80
|
-
:ecircle_id => @response.body[:create_member_response][:create_member_return].to_s
|
81
|
-
end
|
35
|
+
response = client.request :createMember do
|
36
|
+
soap.body = {
|
37
|
+
:session => obtain_auth_token,
|
38
|
+
:userId => user_id,
|
39
|
+
:groupId => group_id,
|
40
|
+
:invite => invite.to_s,
|
41
|
+
:sendMessage => send_message.to_s
|
42
|
+
}
|
82
43
|
end
|
44
|
+
WrappedResponse.new :success => true,
|
45
|
+
:ecircle_id => response.body[:create_member_response][:create_member_return].to_s
|
46
|
+
rescue Savon::SOAP::Fault => e
|
47
|
+
WrappedResponse.new(e)
|
83
48
|
end
|
84
49
|
|
85
50
|
# Create or update group
|
@@ -89,21 +54,16 @@ module Ecircle
|
|
89
54
|
# @return [WrappedResponse]
|
90
55
|
# Important note: `email` must be unique across all groups AND must be a subdomain of the system you registered at ecircle.
|
91
56
|
def create_or_update_group group_attributes
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
:groupXml => Helper.build_group_xml(group_attributes)
|
98
|
-
}
|
99
|
-
end
|
100
|
-
rescue Savon::SOAP::Fault => e
|
101
|
-
WrappedResponse.new(e)
|
102
|
-
else
|
103
|
-
WrappedResponse.new :success => true,
|
104
|
-
:ecircle_id => @response[:create_or_update_group_response][:create_or_update_group_return].to_i
|
105
|
-
end
|
57
|
+
response = client.request :createOrUpdateGroup do
|
58
|
+
soap.body = {
|
59
|
+
:session => obtain_auth_token,
|
60
|
+
:groupXml => Helper.build_group_xml(group_attributes)
|
61
|
+
}
|
106
62
|
end
|
63
|
+
WrappedResponse.new :success => true,
|
64
|
+
:ecircle_id => response[:create_or_update_group_response][:create_or_update_group_return].to_i
|
65
|
+
rescue Savon::SOAP::Fault => e
|
66
|
+
WrappedResponse.new(e)
|
107
67
|
end
|
108
68
|
|
109
69
|
# Create or update user by email
|
@@ -112,22 +72,17 @@ module Ecircle
|
|
112
72
|
# @param [Hash] user_xml, in it's most simple form a { :email => 'test@test.com' } is sufficient
|
113
73
|
# @return [Integer] the user id
|
114
74
|
def create_or_update_user_by_email user_attributes
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
:sendMessage => 0
|
122
|
-
}
|
123
|
-
end
|
124
|
-
rescue Savon::SOAP::Fault => e
|
125
|
-
WrappedResponse.new(e)
|
126
|
-
else
|
127
|
-
WrappedResponse.new :success => true,
|
128
|
-
:ecircle_id => @response.body[:create_or_update_user_by_email_response][:create_or_update_user_by_email_return].to_i
|
129
|
-
end
|
75
|
+
response = client.request :createOrUpdateUserByEmail do
|
76
|
+
soap.body = {
|
77
|
+
:session => obtain_auth_token,
|
78
|
+
:userXml => Helper.build_user_xml(user_attributes),
|
79
|
+
:sendMessage => 0
|
80
|
+
}
|
130
81
|
end
|
82
|
+
WrappedResponse.new :success => true,
|
83
|
+
:ecircle_id => response.body[:create_or_update_user_by_email_response][:create_or_update_user_by_email_return].to_i
|
84
|
+
rescue Savon::SOAP::Fault => e
|
85
|
+
WrappedResponse.new(e)
|
131
86
|
end
|
132
87
|
|
133
88
|
# Delete a member.
|
@@ -135,20 +90,15 @@ module Ecircle
|
|
135
90
|
# @param [Integer] group_id ecircle group id
|
136
91
|
# @return [WrappedResponse]
|
137
92
|
def delete_group group_id
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
:memberId => group_id
|
144
|
-
}
|
145
|
-
end
|
146
|
-
rescue Savon::SOAP::Fault => e
|
147
|
-
WrappedResponse.new(e)
|
148
|
-
else
|
149
|
-
WrappedResponse.new(:success => true)
|
150
|
-
end
|
93
|
+
response = client.request :deleteGroup do
|
94
|
+
soap.body = {
|
95
|
+
:session => obtain_auth_token,
|
96
|
+
:memberId => group_id
|
97
|
+
}
|
151
98
|
end
|
99
|
+
WrappedResponse.new(:success => true)
|
100
|
+
rescue Savon::SOAP::Fault => e
|
101
|
+
WrappedResponse.new(e)
|
152
102
|
end
|
153
103
|
|
154
104
|
# Delete a member.
|
@@ -156,34 +106,37 @@ module Ecircle
|
|
156
106
|
# @param [Integer] member_id ecircle member id
|
157
107
|
# @return [WrappedResponse]
|
158
108
|
def delete_member member_id
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
:memberId => member_id
|
165
|
-
}
|
166
|
-
end
|
167
|
-
rescue Savon::SOAP::Fault => e
|
168
|
-
WrappedResponse.new(e)
|
169
|
-
else
|
170
|
-
WrappedResponse.new(:success => true)
|
171
|
-
end
|
109
|
+
client.request :deleteMember do
|
110
|
+
soap.body = {
|
111
|
+
:session => obtain_auth_token,
|
112
|
+
:memberId => member_id
|
113
|
+
}
|
172
114
|
end
|
115
|
+
WrappedResponse.new(:success => true)
|
116
|
+
rescue Savon::SOAP::Fault => e
|
117
|
+
WrappedResponse.new(e)
|
173
118
|
end
|
174
119
|
|
175
120
|
# Logon. You don't need to call this explicitly but it's useful for debugging.
|
176
121
|
#
|
177
122
|
# @return [String] the session id
|
178
123
|
def logon
|
179
|
-
|
124
|
+
response = client.request :logon do
|
180
125
|
soap.body = {
|
181
126
|
:user => Ecircle.configuration.user,
|
182
127
|
:realm => Ecircle.configuration.sync_realm,
|
183
128
|
:passwd => Ecircle.configuration.password
|
184
129
|
}
|
185
130
|
end
|
186
|
-
|
131
|
+
response.body[:logon_response][:logon_return].to_s
|
132
|
+
rescue Savon::SOAP::Fault => e
|
133
|
+
wrapped_response = WrappedResponse.new(e)
|
134
|
+
if wrapped_response.not_authenticated? || wrapped_response.permission_problem?
|
135
|
+
puts @@help
|
136
|
+
raise InvalidLoginCredentials
|
137
|
+
else
|
138
|
+
raise
|
139
|
+
end
|
187
140
|
end
|
188
141
|
|
189
142
|
# Log out. Uses the last session token.
|
@@ -206,23 +159,28 @@ module Ecircle
|
|
206
159
|
# @param [Array] the values of the variables you want to interpolate in the template
|
207
160
|
# @return [WrappedResponse]
|
208
161
|
def send_parametrized_single_message_to_user user_id, message_id, names = [], values = []
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
:values => values
|
218
|
-
}
|
219
|
-
end
|
220
|
-
rescue Savon::SOAP::Fault => e
|
221
|
-
WrappedResponse.new(e)
|
222
|
-
else
|
223
|
-
WrappedResponse.new(:success => true)
|
224
|
-
end
|
162
|
+
client.request :sendParametrizedSingleMessageToUser do
|
163
|
+
soap.body = {
|
164
|
+
:session => obtain_auth_token,
|
165
|
+
:singleMessageId => message_id,
|
166
|
+
:userId => user_id,
|
167
|
+
:names => names,
|
168
|
+
:values => values
|
169
|
+
}
|
225
170
|
end
|
171
|
+
WrappedResponse.new(:success => true)
|
172
|
+
rescue Savon::SOAP::Fault => e
|
173
|
+
WrappedResponse.new(e)
|
174
|
+
end
|
175
|
+
|
176
|
+
def obtain_auth_token
|
177
|
+
@auth_token = logon unless auth_token_valid?
|
178
|
+
@auth_token_last_used_at = Time.now
|
179
|
+
@auth_token
|
180
|
+
end
|
181
|
+
|
182
|
+
def auth_token_valid?
|
183
|
+
@auth_token_last_used_at && Time.now - @auth_token_last_used_at < AUTH_TOKEN_TIMEOUT
|
226
184
|
end
|
227
185
|
end
|
228
186
|
end
|
data/lib/ecircle/version.rb
CHANGED
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Ecircle::Api do
|
4
|
+
describe 'obtain_auth_token' do
|
5
|
+
it 'should obtain an auth token for the first time' do
|
6
|
+
savon.expects(:logon).returns(:success)
|
7
|
+
subject.obtain_auth_token
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should touch auth_token_last_used_at' do
|
11
|
+
savon.expects(:logon).returns(:success)
|
12
|
+
before_call = Time.now
|
13
|
+
subject.obtain_auth_token
|
14
|
+
|
15
|
+
auth_token_last_used_at = subject.instance_variable_get('@auth_token_last_used_at')
|
16
|
+
before_call.should <= auth_token_last_used_at
|
17
|
+
auth_token_last_used_at.should <= Time.now
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return the token' do
|
21
|
+
savon.expects(:logon).returns(:success)
|
22
|
+
subject.obtain_auth_token.should eq('foo')
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'subsequent calls' do
|
26
|
+
before do
|
27
|
+
savon.expects(:logon).returns(:success)
|
28
|
+
@auth_token = subject.obtain_auth_token
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should re-use auth token' do
|
32
|
+
savon.expects(:logon).never
|
33
|
+
subject.obtain_auth_token.should eq(@auth_token)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should touch auth_token_last_used_at' do
|
37
|
+
before_call = Time.now
|
38
|
+
subject.obtain_auth_token
|
39
|
+
|
40
|
+
auth_token_last_used_at = subject.instance_variable_get('@auth_token_last_used_at')
|
41
|
+
before_call.should <= auth_token_last_used_at
|
42
|
+
auth_token_last_used_at.should <= Time.now
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should request another auth token if current one expired' do
|
46
|
+
subject.instance_variable_set('@auth_token_last_used_at', Time.now - Ecircle::Api::AUTH_TOKEN_TIMEOUT - 1)
|
47
|
+
savon.expects(:logon).returns(:success)
|
48
|
+
subject.obtain_auth_token
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'create_member' do
|
54
|
+
it 'should obtain an auth token' do
|
55
|
+
savon.stubs(:createMember).returns(:success)
|
56
|
+
subject.expects(:obtain_auth_token)
|
57
|
+
|
58
|
+
subject.create_member(nil, nil)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should pass proper parameters' do
|
62
|
+
savon.expects(:createMember).
|
63
|
+
with(:session => 'foo', :userId => 1, :groupId => 2,
|
64
|
+
:invite => 'false', :sendMessage => 'false').
|
65
|
+
returns(:success)
|
66
|
+
subject.stubs(:obtain_auth_token).returns('foo')
|
67
|
+
|
68
|
+
wrapped_response = subject.create_member(1, 2)
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should parse proper response segment' do
|
72
|
+
savon.stubs(:createMember).returns(:success)
|
73
|
+
subject.stubs(:obtain_auth_token)
|
74
|
+
|
75
|
+
wrapped_response = subject.create_member(nil, nil)
|
76
|
+
|
77
|
+
wrapped_response.ecircle_id.should eq('123456')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><createMemberResponse xmlns="http://webservices.ecircleag.com/rpcns"><createMemberReturn>123456</createMemberReturn></createMemberResponse></soapenv:Body></soapenv:Envelope>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><logonResponse xmlns="http://webservices.ecircleag.com/rpcns"><logonReturn>foo</logonReturn></logonResponse></soapenv:Body></soapenv:Envelope>
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
|
4
|
-
require 'random_data'
|
1
|
+
Bundler.require
|
2
|
+
require 'savon_spec'
|
5
3
|
|
6
4
|
def random_group_email suffix
|
7
5
|
"apitest#{Random.number(100000)}@#{suffix}"
|
@@ -17,3 +15,12 @@ end
|
|
17
15
|
def test_user_id
|
18
16
|
@ecircle_user_id ||= Ecircle.create_or_update_user_by_email(:email => 'apitest@apitest.com').ecircle_id
|
19
17
|
end
|
18
|
+
|
19
|
+
Savon::Spec::Fixture.path = File.expand_path('../fixtures', __FILE__)
|
20
|
+
|
21
|
+
RSpec::configure do |c|
|
22
|
+
c.include Savon::Spec::Macros
|
23
|
+
c.treat_symbols_as_metadata_keys_with_true_values = true
|
24
|
+
c.filter_run :focus => true
|
25
|
+
c.run_all_when_everything_filtered = true
|
26
|
+
end
|
metadata
CHANGED
@@ -1,112 +1,128 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecircle
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.3
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.1.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
- Timo
|
7
|
+
authors:
|
8
|
+
- "Timo R\xC3\xB6\xC3\x9Fner"
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2011-11-28 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
15
16
|
name: activesupport
|
16
|
-
requirement: &
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
18
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
26
27
|
name: i18n
|
27
|
-
requirement: &
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
29
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version:
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
37
38
|
name: rake
|
38
|
-
requirement: &
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
40
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version:
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: "0"
|
44
45
|
type: :runtime
|
45
46
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
48
49
|
name: savon
|
49
|
-
requirement: &
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
51
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
54
55
|
version: 0.9.7
|
55
56
|
type: :runtime
|
56
57
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
59
60
|
name: random_data
|
60
|
-
requirement: &
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
62
|
none: false
|
62
|
-
requirements:
|
63
|
-
- - =
|
64
|
-
- !ruby/object:Gem::Version
|
63
|
+
requirements:
|
64
|
+
- - "="
|
65
|
+
- !ruby/object:Gem::Version
|
65
66
|
version: 1.5.2
|
66
67
|
type: :development
|
67
68
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
70
71
|
name: rspec
|
71
|
-
requirement: &
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
73
|
none: false
|
73
|
-
requirements:
|
74
|
-
- - =
|
75
|
-
- !ruby/object:Gem::Version
|
74
|
+
requirements:
|
75
|
+
- - "="
|
76
|
+
- !ruby/object:Gem::Version
|
76
77
|
version: 2.6.0
|
77
78
|
type: :development
|
78
79
|
prerelease: false
|
79
|
-
version_requirements: *
|
80
|
-
- !ruby/object:Gem::Dependency
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: savon_spec
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ~>
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.1.6
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
81
93
|
name: yard
|
82
|
-
requirement: &
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
83
95
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version:
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
88
100
|
type: :development
|
89
101
|
prerelease: false
|
90
|
-
version_requirements: *
|
91
|
-
- !ruby/object:Gem::Dependency
|
102
|
+
version_requirements: *id008
|
103
|
+
- !ruby/object:Gem::Dependency
|
92
104
|
name: ruby-debug19
|
93
|
-
requirement: &
|
105
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
94
106
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version:
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
99
111
|
type: :development
|
100
112
|
prerelease: false
|
101
|
-
version_requirements: *
|
113
|
+
version_requirements: *id009
|
102
114
|
description: The ecircle gem aims to be a full-fledged client for all ecircle services.
|
103
|
-
email:
|
115
|
+
email:
|
104
116
|
- timo.roessner@googlemail.com
|
105
117
|
executables: []
|
118
|
+
|
106
119
|
extensions: []
|
120
|
+
|
107
121
|
extra_rdoc_files: []
|
108
|
-
|
122
|
+
|
123
|
+
files:
|
109
124
|
- .gitignore
|
125
|
+
- .rspec
|
110
126
|
- .rvmrc
|
111
127
|
- .travis.yml
|
112
128
|
- .yardopts
|
@@ -123,37 +139,44 @@ files:
|
|
123
139
|
- lib/ecircle/version.rb
|
124
140
|
- lib/ecircle/wrapped_response.rb
|
125
141
|
- spec/api_spec.rb.disabled
|
142
|
+
- spec/ecircle/api_spec.rb
|
143
|
+
- spec/fixtures/create_member/success.xml
|
144
|
+
- spec/fixtures/logon/success.xml
|
126
145
|
- spec/job_package_spec.rb
|
127
146
|
- spec/spec_helper.rb
|
128
|
-
homepage:
|
147
|
+
homepage: ""
|
129
148
|
licenses: []
|
149
|
+
|
130
150
|
post_install_message:
|
131
151
|
rdoc_options: []
|
132
|
-
|
152
|
+
|
153
|
+
require_paths:
|
133
154
|
- lib
|
134
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
135
156
|
none: false
|
136
|
-
requirements:
|
137
|
-
- -
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
|
140
|
-
segments:
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
hash: -815952973
|
161
|
+
segments:
|
141
162
|
- 0
|
142
|
-
|
143
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
version: "0"
|
164
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
165
|
none: false
|
145
|
-
requirements:
|
146
|
-
- -
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
|
149
|
-
segments:
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
hash: -815952973
|
170
|
+
segments:
|
150
171
|
- 0
|
151
|
-
|
172
|
+
version: "0"
|
152
173
|
requirements: []
|
174
|
+
|
153
175
|
rubyforge_project: ecircle
|
154
|
-
rubygems_version: 1.8.
|
176
|
+
rubygems_version: 1.8.11
|
155
177
|
signing_key:
|
156
178
|
specification_version: 3
|
157
179
|
summary: Ecircle gem
|
158
180
|
test_files: []
|
181
|
+
|
159
182
|
has_rdoc:
|