acfs 0.23.2 → 0.24.0.b210
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 +13 -5
- data/.travis.yml +1 -1
- data/CHANGELOG.md +5 -0
- data/Gemfile +5 -1
- data/README.md +1 -1
- data/acfs.gemspec +4 -1
- data/lib/acfs/model/attributes/boolean.rb +1 -1
- data/lib/acfs/operation.rb +1 -0
- data/lib/acfs/stub.rb +6 -3
- data/lib/acfs/version.rb +2 -2
- data/spec/acfs/model/attributes/boolean_spec.rb +25 -0
- data/spec/acfs/stub_spec.rb +56 -4
- metadata +22 -21
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmM5ZDRlOGNlODlhYzMzMTY0MjM0OTVmNmZkOWRhYWU1MzkyMjI0Zg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDQ1YWIwOTBjNDA4NDM0MDI1MGNiMDc5NWVjMzE5NTQ1ZjI0OWY3Ng==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YWJiMzlkMWFiYTc3YjhlMWYwZWQ1MGQ3MzgzZDZkMjFmZTY3MWQ3MzhkNWNl
|
10
|
+
ZGMzZjE2MzJmY2Y4ODczZGYxOTRkNmMxZjQ5YjA0NGM0Y2IzY2VjN2Q5NDNi
|
11
|
+
ZTdjMjA1MmI4NzIxNmVjMjA4NTMxNWIyOTRjYmZiNjFmYmEzYWM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Zjg5Mzk0MGE1OWQ2Y2ZkNmQwYTY2NzVmNDdmYzU4Mzc3NTY2ODYwZTVkNjQ0
|
14
|
+
N2M0ODczM2Q3NDBkNGRiNjNiZjEyYTA0Y2RhNTg4YmQ1MGUxZmE2NzNlNmU0
|
15
|
+
YWZkMzY3YjFiN2U5OGM1ZDc1YThhYTY1ZTE1YjFiM2FkYWFkOTI=
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -6,7 +6,7 @@ gem 'webmock', '~> 1.7'
|
|
6
6
|
gem 'rake'
|
7
7
|
gem 'rspec'
|
8
8
|
gem 'coveralls'
|
9
|
-
gem 'json', '~> 1.
|
9
|
+
gem 'json', '~> 1.8.1'
|
10
10
|
|
11
11
|
# Doc
|
12
12
|
group :development do
|
@@ -19,6 +19,10 @@ end
|
|
19
19
|
|
20
20
|
# Platform specific development dependencies
|
21
21
|
#
|
22
|
+
platform :rbx do
|
23
|
+
gem 'rubysl', '~> 2.0'
|
24
|
+
gem 'rubinius-coverage'
|
25
|
+
end
|
22
26
|
gem 'msgpack', platform: :ruby
|
23
27
|
gem 'msgpack-jruby', require: 'msgpack', platform: :jruby
|
24
28
|
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
[](https://coveralls.io/r/jgraichen/acfs)
|
6
6
|
[](https://codeclimate.com/github/jgraichen/acfs)
|
7
7
|
[](https://gemnasium.com/jgraichen/acfs)
|
8
|
-
[](http://rubydoc.info/github/jgraichen/acfs/master/frames)
|
9
9
|
|
10
10
|
Acfs is a library to develop API client libraries for single services within a larger service oriented application.
|
11
11
|
|
data/acfs.gemspec
CHANGED
@@ -22,7 +22,10 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_runtime_dependency 'activemodel', '>= 3.1'
|
23
23
|
spec.add_runtime_dependency 'actionpack', '>= 3.1'
|
24
24
|
spec.add_runtime_dependency 'multi_json'
|
25
|
-
|
25
|
+
|
26
|
+
# Bundle update w/o version resolves to 0.3.3 ...
|
27
|
+
spec.add_runtime_dependency 'typhoeus', '>= 0.6.5'
|
28
|
+
|
26
29
|
spec.add_runtime_dependency 'rack'
|
27
30
|
|
28
31
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
data/lib/acfs/operation.rb
CHANGED
data/lib/acfs/stub.rb
CHANGED
@@ -11,7 +11,10 @@ module Acfs
|
|
11
11
|
|
12
12
|
def initialize(opts)
|
13
13
|
@opts = opts
|
14
|
-
|
14
|
+
|
15
|
+
@opts[:with].stringify_keys! if @opts[:with].is_a? Hash
|
16
|
+
@opts[:return].stringify_keys! if @opts[:return].is_a? Hash
|
17
|
+
@opts[:return].map! { |h| h.stringify_keys! if h.is_a? Hash } if @opts[:return].is_a? Array
|
15
18
|
end
|
16
19
|
|
17
20
|
def accept?(op)
|
@@ -20,7 +23,7 @@ module Acfs
|
|
20
23
|
params = op.full_params.stringify_keys
|
21
24
|
data = op.data.stringify_keys
|
22
25
|
|
23
|
-
opts[:with] == params || data == opts[:with]
|
26
|
+
opts[:with] == params || data == opts[:with] || (opts[:with].nil? && params.empty? && data.empty?)
|
24
27
|
end
|
25
28
|
|
26
29
|
def calls
|
@@ -38,7 +41,7 @@ module Acfs
|
|
38
41
|
if (err = opts[:raise])
|
39
42
|
raise_error op, err, opts[:return]
|
40
43
|
elsif (data = opts[:return])
|
41
|
-
op.
|
44
|
+
op.call data
|
42
45
|
else
|
43
46
|
raise ArgumentError, 'Unsupported stub.'
|
44
47
|
end
|
data/lib/acfs/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Acfs::Model::Attributes::Boolean do
|
4
|
+
subject { Acfs::Model::Attributes::Boolean.new }
|
5
|
+
|
6
|
+
describe 'cast' do
|
7
|
+
it 'should preserve boolean values' do
|
8
|
+
expect(subject.cast(false)).to eq false
|
9
|
+
expect(subject.cast(true)).to eq true
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should cast TRUE_VALUES to true' do
|
13
|
+
expect(subject.cast('yes')).to eq true
|
14
|
+
expect(subject.cast('on')).to eq true
|
15
|
+
expect(subject.cast('true')).to eq true
|
16
|
+
expect(subject.cast('1')).to eq true
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should cast any other value to false' do
|
20
|
+
expect(subject.cast('')).to eq false
|
21
|
+
expect(subject.cast('wrong')).to eq false
|
22
|
+
expect(subject.cast('random')).to eq false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/spec/acfs/stub_spec.rb
CHANGED
@@ -10,10 +10,6 @@ describe Acfs::Stub do
|
|
10
10
|
|
11
11
|
before do
|
12
12
|
Acfs::Stub.allow_requests = false
|
13
|
-
|
14
|
-
#Acfs::Stub.read(MyUser).with(id: 5).and_return({ id: 5, name: 'John', age: 32 })
|
15
|
-
#Acfs::Stub.read(MyUser).with(id: 6).and_raise(:not_found)
|
16
|
-
#Acfs::Stub.create(MyUser).with(name: '', age: 12).and_return(:invalid, errors: { name: [ 'must be present ']})
|
17
13
|
end
|
18
14
|
|
19
15
|
describe '#called?' do
|
@@ -82,6 +78,23 @@ describe Acfs::Stub do
|
|
82
78
|
expect { Acfs.run }.to raise_error(Acfs::ResourceNotFound)
|
83
79
|
end
|
84
80
|
end
|
81
|
+
|
82
|
+
context 'with type parameter' do
|
83
|
+
before do
|
84
|
+
Acfs::Stub.resource Computer, :read, with: { id: 1 }, return: { id: 1, type: 'PC' }
|
85
|
+
Acfs::Stub.resource Computer, :read, with: { id: 2 }, return: { id: 2, type: 'Mac' }
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should create inherited type' do
|
89
|
+
pc = Computer.find 1
|
90
|
+
mac = Computer.find 2
|
91
|
+
|
92
|
+
Acfs.run
|
93
|
+
|
94
|
+
expect(pc).to be_a PC
|
95
|
+
expect(mac).to be_a Mac
|
96
|
+
end
|
97
|
+
end
|
85
98
|
end
|
86
99
|
|
87
100
|
context 'with create action' do
|
@@ -104,6 +117,45 @@ describe Acfs::Stub do
|
|
104
117
|
end
|
105
118
|
end
|
106
119
|
|
120
|
+
context 'with list action' do
|
121
|
+
before do
|
122
|
+
Acfs::Stub.resource MyUser, :list,
|
123
|
+
return: [{ id: 1, name: 'John Smith', age: 32 }, { id: 2, name: 'Anon', age: 12 }]
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'should return collection' do
|
127
|
+
users = MyUser.all
|
128
|
+
Acfs.run
|
129
|
+
|
130
|
+
expect(users).to have(2).items
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should return defined resources' do
|
134
|
+
users = MyUser.all
|
135
|
+
Acfs.run
|
136
|
+
|
137
|
+
expect(users[0].id).to eq 1
|
138
|
+
expect(users[1].id).to eq 2
|
139
|
+
expect(users[0].name).to eq 'John Smith'
|
140
|
+
expect(users[1].name).to eq 'Anon'
|
141
|
+
end
|
142
|
+
|
143
|
+
context 'with type parameter' do
|
144
|
+
before do
|
145
|
+
Acfs::Stub.resource Computer, :list,
|
146
|
+
return: [{id: 1, type: 'PC'}, {id: 2, type: 'Mac'}]
|
147
|
+
end
|
148
|
+
|
149
|
+
it 'should create inherited type' do
|
150
|
+
computers = Computer.all
|
151
|
+
Acfs.run
|
152
|
+
|
153
|
+
expect(computers.first).to be_a PC
|
154
|
+
expect(computers.last).to be_a Mac
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
107
159
|
context 'with update action' do
|
108
160
|
before do
|
109
161
|
Acfs::Stub.resource MyUser, :read, with: { id: 1 }, return: { id: 1, name: 'John Smith', age: 32 }
|
metadata
CHANGED
@@ -1,97 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0.b210
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Graichen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - '>='
|
17
|
+
- - ! '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - '>='
|
24
|
+
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activemodel
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - '>='
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - '>='
|
38
|
+
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: actionpack
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - '>='
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - '>='
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: multi_json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - '>='
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - '>='
|
66
|
+
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: typhoeus
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - '>='
|
73
|
+
- - ! '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.6.5
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - '>='
|
80
|
+
- - ! '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.6.5
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rack
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - '>='
|
87
|
+
- - ! '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - '>='
|
94
|
+
- - ! '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
@@ -179,6 +179,7 @@ files:
|
|
179
179
|
- spec/acfs/configuration_spec.rb
|
180
180
|
- spec/acfs/middleware/json_decoder_spec.rb
|
181
181
|
- spec/acfs/middleware/msgpack_decoder_spec.rb
|
182
|
+
- spec/acfs/model/attributes/boolean_spec.rb
|
182
183
|
- spec/acfs/model/attributes/date_time_spec.rb
|
183
184
|
- spec/acfs/model/attributes/float_spec.rb
|
184
185
|
- spec/acfs/model/attributes/list_spec.rb
|
@@ -212,17 +213,17 @@ require_paths:
|
|
212
213
|
- lib
|
213
214
|
required_ruby_version: !ruby/object:Gem::Requirement
|
214
215
|
requirements:
|
215
|
-
- - '>='
|
216
|
+
- - ! '>='
|
216
217
|
- !ruby/object:Gem::Version
|
217
218
|
version: '0'
|
218
219
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
220
|
requirements:
|
220
|
-
- - '
|
221
|
+
- - ! '>'
|
221
222
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
223
|
+
version: 1.3.1
|
223
224
|
requirements: []
|
224
225
|
rubyforge_project:
|
225
|
-
rubygems_version: 2.
|
226
|
+
rubygems_version: 2.1.11
|
226
227
|
signing_key:
|
227
228
|
specification_version: 4
|
228
229
|
summary: An abstract API base client for service oriented application.
|
@@ -230,6 +231,7 @@ test_files:
|
|
230
231
|
- spec/acfs/configuration_spec.rb
|
231
232
|
- spec/acfs/middleware/json_decoder_spec.rb
|
232
233
|
- spec/acfs/middleware/msgpack_decoder_spec.rb
|
234
|
+
- spec/acfs/model/attributes/boolean_spec.rb
|
233
235
|
- spec/acfs/model/attributes/date_time_spec.rb
|
234
236
|
- spec/acfs/model/attributes/float_spec.rb
|
235
237
|
- spec/acfs/model/attributes/list_spec.rb
|
@@ -253,4 +255,3 @@ test_files:
|
|
253
255
|
- spec/spec_helper.rb
|
254
256
|
- spec/support/response.rb
|
255
257
|
- spec/support/service.rb
|
256
|
-
has_rdoc:
|