acfs 0.34.1.1.b289 → 0.35.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NzMwYWExMzE2YWUwZmUwNGYwZWJjMThhZjBjYjY3MWFhMWM4ZTViOQ==
5
- data.tar.gz: !binary |-
6
- ZjMzOWUzMDZlMTM1YzFhNDM1N2RiMTIwYjA3MDVlOTFmY2RlMjUxYw==
2
+ SHA1:
3
+ metadata.gz: 919254c61d25773af3b9b6c1934ed6c3408de728
4
+ data.tar.gz: bf6c875f6f333afbc41e1c7fd5437825f071e6e4
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NDM0ZGRiZGJjODc3ZjA0ODMzNTFjNjI1YWJjZjcyYjI3N2ExM2YwMjg3MzVh
10
- OGFiNjQ4N2JkYmM3NTg0MTA5Y2I1ZmVlMGRiMTE1ODViMThlOGM3OGY3OWVi
11
- MjY0M2U3MGYwOGI5ZjA5YWU4OWVlZWNjYzIzZmM5NWFiZmZlMWY=
12
- data.tar.gz: !binary |-
13
- NGNkZmM1OTRjZjgxZTFiN2Y1YWVkNjE1NmM3NTk3MTVkOGU5ZjFlM2VmMGJi
14
- YjJmZjE3NjcyZjU5YjdkMGUzNDFkODUwNWU3NTRkYWI4ZWY1NDQ0Y2ExNjBl
15
- YTA3MjMwODg4ZmYyNmZmNzI5MjFiZTUwMzA3YWVlMzM0OWUzMGQ=
6
+ metadata.gz: 35a9773eab8ad35f27cc8b2cc16958cbc54183a83da2fcc3d1af0b9849d7d04e797973c277b3b9a4bb95c71d8521701bbef2a1faf80391051951eddeccbca406
7
+ data.tar.gz: 892a2af5af7b42eaca158bd41a49485bd9a2aef2e81bcd9e100b3f1e0fdd1a097d2ec47943fa5b96cb5352debca86fdbac672bd9756314b8c3d3ccdda1b62df7
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.35.0
4
+
5
+ * Add instrumentation support
6
+
3
7
  ## 0.34.1
4
8
 
5
9
  * Fix leaking failed requests in request queues
data/README.md CHANGED
@@ -282,6 +282,23 @@ it 'should find user number one' do
282
282
  end
283
283
  ```
284
284
 
285
+ ## Instrumentation
286
+
287
+ Acfs supports [instrumentation via active support][1].
288
+
289
+ Acfs expose to following events
290
+
291
+ * `acfs.operation.complete(operation, response)`: Acfs operation completed
292
+ * `acfs.runner.sync_run(operation)`: Run operation right now skipping queue.
293
+ * `acfs.runner.enqueue(operation)`: Enqueue operation to be run later.
294
+ * `acfs.before_run`: directly before `acfs.run`
295
+ * `acfs.run`: Run all queued operations.
296
+
297
+ Read [official guide][2] to see to to subscribe.
298
+
299
+ [1]: http://guides.rubyonrails.org/active_support_instrumentation.html
300
+ [2]: http://guides.rubyonrails.org/active_support_instrumentation.html#subscribing-to-an-event
301
+
285
302
  ## Roadmap
286
303
 
287
304
  * Update
@@ -313,6 +330,7 @@ end
313
330
 
314
331
  * [Nicolas Fricke](https://github.com/nicolas-fricke)
315
332
  * [Tino Junge](https://github.com/tino-junge)
333
+ * [Malte Swart](https://github.com/mswart)
316
334
 
317
335
  ## License
318
336
 
@@ -3,6 +3,7 @@ require 'active_support/core_ext/hash'
3
3
  require 'active_support/core_ext/class'
4
4
  require 'active_support/core_ext/string'
5
5
  require 'active_support/core_ext/module'
6
+ require 'active_support/notifications'
6
7
 
7
8
  module Acfs
8
9
  extend ActiveSupport::Autoload
@@ -18,7 +18,10 @@ module Acfs
18
18
  # @return [undefined]
19
19
  #
20
20
  def run
21
- runner.start
21
+ ::ActiveSupport::Notifications.instrument 'acfs.before_run'
22
+ ::ActiveSupport::Notifications.instrument 'acfs.run' do
23
+ runner.start
24
+ end
22
25
  end
23
26
 
24
27
  # @api public
@@ -37,8 +40,10 @@ module Acfs
37
40
  # Reset all queues, stubs and internal state.
38
41
  #
39
42
  def reset
40
- self.runner.clear
41
- Acfs::Stub.clear
43
+ ::ActiveSupport::Notifications.instrument 'acfs.reset' do
44
+ self.runner.clear
45
+ Acfs::Stub.clear
46
+ end
42
47
  end
43
48
 
44
49
  # @api public
@@ -57,6 +57,10 @@ module Acfs
57
57
  def request
58
58
  request = ::Acfs::Request.new url, method: method, params: params, data: data
59
59
  request.on_complete do |response|
60
+ ::ActiveSupport::Notifications.instrument 'acfs.operation.complete',
61
+ operation: self,
62
+ response: response
63
+
60
64
  handle_failure response unless response.success?
61
65
  callback.call response.data, response
62
66
  end
@@ -23,7 +23,9 @@ module Acfs
23
23
  # Run operation right now skipping queue.
24
24
  #
25
25
  def run(op)
26
- op_request(op) { |req| adapter.run req }
26
+ ::ActiveSupport::Notifications.instrument 'acfs.runner.sync_run', operation: op do
27
+ op_request(op) { |req| adapter.run req }
28
+ end
27
29
  end
28
30
 
29
31
  # List of current queued operations.
@@ -35,10 +37,12 @@ module Acfs
35
37
  # Enqueue operation to be run later.
36
38
  #
37
39
  def enqueue(op)
38
- if running?
39
- op_request(op) { |req| adapter.queue req }
40
- else
41
- queue << op
40
+ ::ActiveSupport::Notifications.instrument 'acfs.runner.enqueue', operation: op do
41
+ if running?
42
+ op_request(op) { |req| adapter.queue req }
43
+ else
44
+ queue << op
45
+ end
42
46
  end
43
47
  end
44
48
 
@@ -1,8 +1,8 @@
1
1
  module Acfs
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 34
5
- PATCH = 1
4
+ MINOR = 35
5
+ PATCH = 0
6
6
  STAGE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, STAGE].reject(&:nil?).join('.')
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ class NotificationCollector
4
+ def call(*args)
5
+ events << ActiveSupport::Notifications::Event.new(*args)
6
+ end
7
+
8
+ def events
9
+ @events ||= []
10
+ end
11
+ end
12
+
13
+ describe ::Acfs::Global do
14
+ let(:adapter) { ::NullAdapter.new }
15
+ let(:runner) { double 'runner' }
16
+ let(:collector) { NotificationCollector.new }
17
+ let(:acfs) { Object.new.tap { |o| o.extend ::Acfs::Global } }
18
+
19
+ describe 'instrumentation' do
20
+ before do
21
+ #allow(runner).to receive(:start)
22
+ allow(acfs).to receive(:runner).and_return runner
23
+ end
24
+
25
+ describe '#run' do
26
+ before do
27
+ ::ActiveSupport::Notifications.subscribe 'acfs.run', collector
28
+ end
29
+ it 'should trigger event' do
30
+ Acfs.run
31
+ expect(collector.events).to have(1).items
32
+ end
33
+ end
34
+
35
+ describe '#reset' do
36
+ before do
37
+ ::ActiveSupport::Notifications.subscribe 'acfs.reset', collector
38
+ end
39
+ it 'should trigger event' do
40
+ Acfs.reset
41
+ expect(collector.events).to have(1).items
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+
3
+ class NullAdapter < Acfs::Adapter::Base
4
+
5
+ # Start processing queued requests.
6
+ #
7
+ def start
8
+ end
9
+
10
+ # Abort running and queued requests.
11
+ #
12
+ def abort
13
+ end
14
+
15
+ # Run request right now skipping queue.
16
+ #
17
+ def run(_)
18
+ end
19
+
20
+ # Enqueue request to be run later.
21
+ #
22
+ def queue(_)
23
+ end
24
+ end
25
+
26
+ class NotificationCollector
27
+ def call(*args)
28
+ events << ActiveSupport::Notifications::Event.new(*args)
29
+ end
30
+
31
+ def events
32
+ @events ||= []
33
+ end
34
+ end
35
+
36
+ describe ::Acfs::Runner do
37
+ let(:adapter) { ::NullAdapter.new }
38
+ let(:runner) { ::Acfs::Runner.new adapter }
39
+ let(:collector) { NotificationCollector.new }
40
+
41
+ after do
42
+ ::ActiveSupport::Notifications.notifier = \
43
+ ::ActiveSupport::Notifications::Fanout.new
44
+ end
45
+
46
+ describe '#instrumentation' do
47
+ before do
48
+ ::ActiveSupport::Notifications.subscribe /^acfs\.runner/, collector
49
+ end
50
+
51
+ describe '#process' do
52
+ it 'should trigger event' do
53
+ runner.process ::Acfs::Operation.new MyUser, :read, params: {id: 0}
54
+ expect(collector.events).to have(1).items
55
+ end
56
+ end
57
+
58
+ describe '#run' do
59
+ it 'should trigger event' do
60
+ runner.run ::Acfs::Operation.new MyUser, :read, params: {id: 0}
61
+ expect(collector.events).to have(1).items
62
+ end
63
+ end
64
+
65
+ describe '#enqueue' do
66
+ it 'should trigger event' do
67
+ runner.run ::Acfs::Operation.new MyUser, :read, params: {id: 0}
68
+ expect(collector.events).to have(1).items
69
+ end
70
+ end
71
+ end
72
+ end
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.34.1.1.b289
4
+ version: 0.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Graichen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-24 00:00:00.000000000 Z
11
+ date: 2014-03-26 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
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
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
@@ -116,93 +116,95 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - CHANGELOG.md
119
- - LICENSE
120
- - README.md
121
119
  - acfs.gemspec
122
- - lib/acfs.rb
120
+ - lib/acfs/service.rb
121
+ - lib/acfs/global.rb
122
+ - lib/acfs/util.rb
123
+ - lib/acfs/resource.rb
123
124
  - lib/acfs/adapter/base.rb
124
125
  - lib/acfs/adapter/typhoeus.rb
125
- - lib/acfs/collection.rb
126
- - lib/acfs/collections/paginatable.rb
127
- - lib/acfs/configuration.rb
128
- - lib/acfs/errors.rb
129
- - lib/acfs/global.rb
130
- - lib/acfs/location.rb
131
- - lib/acfs/middleware/base.rb
126
+ - lib/acfs/stub.rb
127
+ - lib/acfs/middleware/print.rb
128
+ - lib/acfs/middleware/msgpack_encoder.rb
129
+ - lib/acfs/middleware/logger.rb
132
130
  - lib/acfs/middleware/json_decoder.rb
131
+ - lib/acfs/middleware/base.rb
133
132
  - lib/acfs/middleware/json_encoder.rb
134
- - lib/acfs/middleware/logger.rb
135
133
  - lib/acfs/middleware/msgpack_decoder.rb
136
- - lib/acfs/middleware/msgpack_encoder.rb
137
- - lib/acfs/middleware/print.rb
134
+ - lib/acfs/collection.rb
135
+ - lib/acfs/singleton_resource.rb
136
+ - lib/acfs/runner.rb
137
+ - lib/acfs/rspec.rb
138
+ - lib/acfs/configuration.rb
139
+ - lib/acfs/location.rb
138
140
  - lib/acfs/model.rb
139
- - lib/acfs/model/attributes.rb
140
- - lib/acfs/model/attributes/base.rb
141
+ - lib/acfs/response.rb
142
+ - lib/acfs/request/callbacks.rb
143
+ - lib/acfs/errors.rb
144
+ - lib/acfs/operation.rb
145
+ - lib/acfs/request.rb
146
+ - lib/acfs/version.rb
147
+ - lib/acfs/response/status.rb
148
+ - lib/acfs/response/formats.rb
149
+ - lib/acfs/service/middleware.rb
150
+ - lib/acfs/yard.rb
151
+ - lib/acfs/model/query_methods.rb
152
+ - lib/acfs/model/service.rb
141
153
  - lib/acfs/model/attributes/boolean.rb
142
- - lib/acfs/model/attributes/date_time.rb
154
+ - lib/acfs/model/attributes/string.rb
155
+ - lib/acfs/model/attributes/uuid.rb
143
156
  - lib/acfs/model/attributes/float.rb
157
+ - lib/acfs/model/attributes/base.rb
144
158
  - lib/acfs/model/attributes/integer.rb
145
159
  - lib/acfs/model/attributes/list.rb
146
- - lib/acfs/model/attributes/string.rb
147
- - lib/acfs/model/attributes/uuid.rb
148
- - lib/acfs/model/dirty.rb
160
+ - lib/acfs/model/attributes/date_time.rb
149
161
  - lib/acfs/model/initialization.rb
150
- - lib/acfs/model/loadable.rb
162
+ - lib/acfs/model/attributes.rb
151
163
  - lib/acfs/model/locatable.rb
152
- - lib/acfs/model/operational.rb
153
164
  - lib/acfs/model/persistence.rb
154
- - lib/acfs/model/query_methods.rb
155
- - lib/acfs/model/relations.rb
156
- - lib/acfs/model/service.rb
157
165
  - lib/acfs/model/validation.rb
158
- - lib/acfs/operation.rb
159
- - lib/acfs/request.rb
160
- - lib/acfs/request/callbacks.rb
161
- - lib/acfs/resource.rb
162
- - lib/acfs/response.rb
163
- - lib/acfs/response/formats.rb
164
- - lib/acfs/response/status.rb
165
- - lib/acfs/rspec.rb
166
- - lib/acfs/runner.rb
167
- - lib/acfs/service.rb
168
- - lib/acfs/service/middleware.rb
169
- - lib/acfs/singleton_resource.rb
170
- - lib/acfs/stub.rb
171
- - lib/acfs/util.rb
172
- - lib/acfs/version.rb
173
- - lib/acfs/yard.rb
174
- - spec/acfs/adapter/typhoeus_spec.rb
166
+ - lib/acfs/model/loadable.rb
167
+ - lib/acfs/model/dirty.rb
168
+ - lib/acfs/model/relations.rb
169
+ - lib/acfs/model/operational.rb
170
+ - lib/acfs/collections/paginatable.rb
171
+ - lib/acfs.rb
172
+ - README.md
173
+ - LICENSE
175
174
  - spec/acfs/collection_spec.rb
176
- - spec/acfs/configuration_spec.rb
177
- - spec/acfs/middleware/json_decoder_spec.rb
175
+ - spec/acfs/global_spec.rb
176
+ - spec/acfs/adapter/typhoeus_spec.rb
178
177
  - spec/acfs/middleware/msgpack_decoder_spec.rb
178
+ - spec/acfs/middleware/json_decoder_spec.rb
179
+ - spec/acfs/runner_spec.rb
180
+ - spec/acfs/configuration_spec.rb
181
+ - spec/acfs/service_spec.rb
182
+ - spec/acfs/stub_spec.rb
183
+ - spec/acfs/request/callbacks_spec.rb
184
+ - spec/acfs/response/formats_spec.rb
185
+ - spec/acfs/response/status_spec.rb
186
+ - spec/acfs/service/middleware_spec.rb
187
+ - spec/acfs/singleton_resource_spec.rb
188
+ - spec/acfs/request_spec.rb
189
+ - spec/acfs/model/locatable_spec.rb
190
+ - spec/acfs/model/attributes/float_spec.rb
179
191
  - spec/acfs/model/attributes/boolean_spec.rb
192
+ - spec/acfs/model/attributes/uuid_spec.rb
180
193
  - spec/acfs/model/attributes/date_time_spec.rb
181
- - spec/acfs/model/attributes/float_spec.rb
182
194
  - spec/acfs/model/attributes/list_spec.rb
183
- - spec/acfs/model/attributes/uuid_spec.rb
184
- - spec/acfs/model/attributes_spec.rb
185
- - spec/acfs/model/dirty_spec.rb
195
+ - spec/acfs/model/persistance_spec.rb
186
196
  - spec/acfs/model/initialization_spec.rb
187
197
  - spec/acfs/model/loadable_spec.rb
188
- - spec/acfs/model/locatable_spec.rb
189
- - spec/acfs/model/persistance_spec.rb
190
- - spec/acfs/model/query_methods_spec.rb
191
198
  - spec/acfs/model/validation_spec.rb
192
- - spec/acfs/request/callbacks_spec.rb
193
- - spec/acfs/request_spec.rb
194
- - spec/acfs/response/formats_spec.rb
195
- - spec/acfs/response/status_spec.rb
196
- - spec/acfs/service/middleware_spec.rb
197
- - spec/acfs/service_spec.rb
198
- - spec/acfs/singleton_resource_spec.rb
199
- - spec/acfs/stub_spec.rb
200
- - spec/acfs_spec.rb
201
- - spec/fixtures/config.yml
202
- - spec/spec_helper.rb
203
- - spec/support/response.rb
199
+ - spec/acfs/model/attributes_spec.rb
200
+ - spec/acfs/model/query_methods_spec.rb
201
+ - spec/acfs/model/dirty_spec.rb
204
202
  - spec/support/service.rb
205
203
  - spec/support/shared/find_callbacks.rb
204
+ - spec/support/response.rb
205
+ - spec/spec_helper.rb
206
+ - spec/fixtures/config.yml
207
+ - spec/acfs_spec.rb
206
208
  homepage: https://github.com/jgraichen/acfs
207
209
  licenses:
208
210
  - MIT
@@ -213,50 +215,53 @@ require_paths:
213
215
  - lib
214
216
  required_ruby_version: !ruby/object:Gem::Requirement
215
217
  requirements:
216
- - - ! '>='
218
+ - - '>='
217
219
  - !ruby/object:Gem::Version
218
220
  version: '0'
219
221
  required_rubygems_version: !ruby/object:Gem::Requirement
220
222
  requirements:
221
- - - ! '>'
223
+ - - '>='
222
224
  - !ruby/object:Gem::Version
223
- version: 1.3.1
225
+ version: '0'
224
226
  requirements: []
225
227
  rubyforge_project:
226
- rubygems_version: 2.2.2
228
+ rubygems_version: 2.0.14
227
229
  signing_key:
228
230
  specification_version: 4
229
231
  summary: An abstract API base client for service oriented application.
230
232
  test_files:
231
- - spec/acfs/adapter/typhoeus_spec.rb
232
233
  - spec/acfs/collection_spec.rb
233
- - spec/acfs/configuration_spec.rb
234
- - spec/acfs/middleware/json_decoder_spec.rb
234
+ - spec/acfs/global_spec.rb
235
+ - spec/acfs/adapter/typhoeus_spec.rb
235
236
  - spec/acfs/middleware/msgpack_decoder_spec.rb
237
+ - spec/acfs/middleware/json_decoder_spec.rb
238
+ - spec/acfs/runner_spec.rb
239
+ - spec/acfs/configuration_spec.rb
240
+ - spec/acfs/service_spec.rb
241
+ - spec/acfs/stub_spec.rb
242
+ - spec/acfs/request/callbacks_spec.rb
243
+ - spec/acfs/response/formats_spec.rb
244
+ - spec/acfs/response/status_spec.rb
245
+ - spec/acfs/service/middleware_spec.rb
246
+ - spec/acfs/singleton_resource_spec.rb
247
+ - spec/acfs/request_spec.rb
248
+ - spec/acfs/model/locatable_spec.rb
249
+ - spec/acfs/model/attributes/float_spec.rb
236
250
  - spec/acfs/model/attributes/boolean_spec.rb
251
+ - spec/acfs/model/attributes/uuid_spec.rb
237
252
  - spec/acfs/model/attributes/date_time_spec.rb
238
- - spec/acfs/model/attributes/float_spec.rb
239
253
  - spec/acfs/model/attributes/list_spec.rb
240
- - spec/acfs/model/attributes/uuid_spec.rb
241
- - spec/acfs/model/attributes_spec.rb
242
- - spec/acfs/model/dirty_spec.rb
254
+ - spec/acfs/model/persistance_spec.rb
243
255
  - spec/acfs/model/initialization_spec.rb
244
256
  - spec/acfs/model/loadable_spec.rb
245
- - spec/acfs/model/locatable_spec.rb
246
- - spec/acfs/model/persistance_spec.rb
247
- - spec/acfs/model/query_methods_spec.rb
248
257
  - spec/acfs/model/validation_spec.rb
249
- - spec/acfs/request/callbacks_spec.rb
250
- - spec/acfs/request_spec.rb
251
- - spec/acfs/response/formats_spec.rb
252
- - spec/acfs/response/status_spec.rb
253
- - spec/acfs/service/middleware_spec.rb
254
- - spec/acfs/service_spec.rb
255
- - spec/acfs/singleton_resource_spec.rb
256
- - spec/acfs/stub_spec.rb
257
- - spec/acfs_spec.rb
258
- - spec/fixtures/config.yml
259
- - spec/spec_helper.rb
260
- - spec/support/response.rb
258
+ - spec/acfs/model/attributes_spec.rb
259
+ - spec/acfs/model/query_methods_spec.rb
260
+ - spec/acfs/model/dirty_spec.rb
261
261
  - spec/support/service.rb
262
262
  - spec/support/shared/find_callbacks.rb
263
+ - spec/support/response.rb
264
+ - spec/spec_helper.rb
265
+ - spec/fixtures/config.yml
266
+ - spec/acfs_spec.rb
267
+ has_rdoc: