azeroth 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51518b95de11772f06c52d5000e7fd2a4d888dc8d22402e978ba5eb90da2eb75
4
- data.tar.gz: 363de647988cec21c1cb741d4cbca29801676291010cb8316a480dc6db52108e
3
+ metadata.gz: 197968637291c04e3ce145d6d5dd9f84451e4b47d104d420aef7c1a5e7b999dc
4
+ data.tar.gz: 9936013b82fcc56048027c6a469130bc15913e095c5373a9b3b50d577d2fcc93
5
5
  SHA512:
6
- metadata.gz: 695b44810f4cbc23c71ceb40cfcce8bd657d63cb30aaac9346328c1b3a0d92bafc27f0206caa0bc5f7d044eb6641a27f92fde3f1216e438afff21e584d6d6c45
7
- data.tar.gz: 20b4768481d46c1210e75eea1c6fa6552dede748f871fe402af864fe1bc855dd9b3196550966a01c672b5a7891a810cc29c2b4d1e179c2c289b97169225553e5
6
+ metadata.gz: d05f185b913c3ac80e58bfad3cdcfea1de68c4836251d5a121826961bf3779adc3e9b39e4dff6d92e72204a4bc8d355d063f0b910c4607dad17f741206a31149
7
+ data.tar.gz: 85e4d4c4625e36fd40358bf486e5bb2dd81fef82cc6fbf198545b6fdad51642d63d3ee5af2e828d0cf394ca0dfbf7aff5efd568634517a1c5236a79901275915
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM darthjee/rails_gems:0.6.3 as base
1
+ FROM darthjee/rails_gems:0.7.0 as base
2
2
  FROM darthjee/scripts:0.1.8 as scripts
3
3
 
4
4
  ######################################
data/README.md CHANGED
@@ -11,7 +11,7 @@ Azeroth
11
11
 
12
12
  Yard Documentation
13
13
  -------------------
14
- [https://www.rubydoc.info/gems/azeroth/0.7.3](https://www.rubydoc.info/gems/azeroth/0.7.3)
14
+ [https://www.rubydoc.info/gems/azeroth/0.7.4](https://www.rubydoc.info/gems/azeroth/0.7.4)
15
15
 
16
16
  Azeroth has been designed making the coding of controllers easier
17
17
  as routes in controllers are usually copy, paste and replace of same
@@ -59,6 +59,7 @@ It accepts options
59
59
  - except: List of actions to not to be built
60
60
  - decorator: Decorator class or flag allowing/disallowing decorators
61
61
  - before_save: Method/Proc to be ran before saving the resource on create or update
62
+ - after_save: Method/Proc to be ran after saving the resource on create or update
62
63
  - build_with: Method/Block to be ran when building the reource on create
63
64
 
64
65
  ```ruby
data/azeroth.gemspec CHANGED
@@ -21,30 +21,30 @@ Gem::Specification.new do |gem|
21
21
  gem.add_runtime_dependency 'activesupport', '~> 5.2.x'
22
22
  gem.add_runtime_dependency 'darthjee-active_ext', '>= 1.3.2'
23
23
  gem.add_runtime_dependency 'jace', '>= 0.0.3'
24
- gem.add_runtime_dependency 'sinclair', '>= 1.6.5'
24
+ gem.add_runtime_dependency 'sinclair', '>= 1.6.7'
25
25
 
26
26
  gem.add_development_dependency 'actionpack', '~> 5.2.x'
27
27
  gem.add_development_dependency 'activerecord', '~> 5.2.x'
28
28
  gem.add_development_dependency 'bundler', '1.16.1'
29
29
  gem.add_development_dependency 'factory_bot', '5.2.0'
30
- gem.add_development_dependency 'nokogiri', '1.11.3'
30
+ gem.add_development_dependency 'nokogiri', '1.11.4'
31
31
  gem.add_development_dependency 'pry', '0.12.2'
32
32
  gem.add_development_dependency 'pry-nav', '0.3.0'
33
33
  gem.add_development_dependency 'rails', '~> 5.2.x'
34
34
  gem.add_development_dependency 'rails-controller-testing', '1.0.4'
35
- gem.add_development_dependency 'rake', '13.0.1'
36
- gem.add_development_dependency 'reek', '5.6.0'
35
+ gem.add_development_dependency 'rake', '13.0.3'
36
+ gem.add_development_dependency 'reek', '6.0.3'
37
37
  gem.add_development_dependency 'rspec', '3.9.0'
38
- gem.add_development_dependency 'rspec-core', '3.9.1'
39
- gem.add_development_dependency 'rspec-expectations', '3.9.1'
38
+ gem.add_development_dependency 'rspec-core', '3.9.3'
39
+ gem.add_development_dependency 'rspec-expectations', '3.9.4'
40
40
  gem.add_development_dependency 'rspec-mocks', '3.9.1'
41
41
  gem.add_development_dependency 'rspec-rails', '3.9.0'
42
- gem.add_development_dependency 'rspec-support', '3.9.2'
42
+ gem.add_development_dependency 'rspec-support', '3.9.4'
43
43
  gem.add_development_dependency 'rubocop', '0.80.1'
44
44
  gem.add_development_dependency 'rubocop-rspec', '1.38.1'
45
- gem.add_development_dependency 'rubycritic', '4.4.1'
45
+ gem.add_development_dependency 'rubycritic', '4.6.1'
46
46
  gem.add_development_dependency 'simplecov', '0.17.1'
47
47
  gem.add_development_dependency 'sqlite3', '1.4.2'
48
- gem.add_development_dependency 'yard', '0.9.24'
48
+ gem.add_development_dependency 'yard', '0.9.26'
49
49
  gem.add_development_dependency 'yardstick', '0.9.9'
50
50
  end
@@ -19,6 +19,7 @@ module Azeroth
19
19
  except: [],
20
20
  decorator: true,
21
21
  before_save: nil,
22
+ after_save: nil,
22
23
  build_with: nil
23
24
  }.freeze
24
25
 
@@ -40,7 +41,8 @@ module Azeroth
40
41
  # @return [Jace::Dispatcher]
41
42
  def event_dispatcher(event)
42
43
  Jace::Dispatcher.new(
43
- before: try("before_#{event}")
44
+ before: try("before_#{event}"),
45
+ after: try("after_#{event}")
44
46
  )
45
47
  end
46
48
 
@@ -81,6 +83,17 @@ module Azeroth
81
83
  #
82
84
  # @return [Symbol,Proc]
83
85
 
86
+ # @method after_save
87
+ # @api private
88
+ #
89
+ # Block or method name to be run after save
90
+ #
91
+ # The given method or block will be ran
92
+ # after committing changes in models
93
+ # to database
94
+ #
95
+ # @return [Symbol,Proc]
96
+
84
97
  # @method build_with
85
98
  # @api private
86
99
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Azeroth
4
- VERSION = '0.7.3'
4
+ VERSION = '0.7.4'
5
5
  end
@@ -106,6 +106,112 @@ describe Azeroth::RequestHandler::Create do
106
106
  end
107
107
  end
108
108
  end
109
+
110
+ context 'with after_save block option' do
111
+ it_behaves_like 'a request handler', status: :created do
112
+ let(:block) do
113
+ value = 10
114
+ proc do
115
+ document.update(reference: "X-MAGIC-#{value}")
116
+ Worker.perform(document.id)
117
+ end
118
+ end
119
+
120
+ let(:options_hash) do
121
+ {
122
+ after_save: block
123
+ }
124
+ end
125
+
126
+ let(:extra_params) do
127
+ {
128
+ document: {
129
+ name: 'My Document'
130
+ }
131
+ }
132
+ end
133
+
134
+ let(:expected_json) do
135
+ {
136
+ 'name' => 'My Document',
137
+ 'reference' => 'X-MAGIC-10'
138
+ }
139
+ end
140
+
141
+ before do
142
+ allow(Worker).to receive(:perform)
143
+ end
144
+
145
+ it 'creates entry' do
146
+ expect { handler.process }
147
+ .to change(Document, :count)
148
+ .by(1)
149
+ end
150
+
151
+ it 'trigger workers after saving' do
152
+ handler.process
153
+
154
+ expect(Worker).to have_received(:perform)
155
+ .with(Document.last.id)
156
+ end
157
+
158
+ it 'changes entry after saving' do
159
+ handler.process
160
+
161
+ expect(Document.last.reference)
162
+ .to eq('X-MAGIC-10')
163
+ end
164
+ end
165
+ end
166
+
167
+ context 'with after_save symbol option' do
168
+ it_behaves_like 'a request handler', status: :created do
169
+ let(:options_hash) do
170
+ {
171
+ after_save: :add_magic_reference_and_trigger
172
+ }
173
+ end
174
+
175
+ let(:extra_params) do
176
+ {
177
+ document: {
178
+ name: 'My Document'
179
+ }
180
+ }
181
+ end
182
+
183
+ let(:expected_json) do
184
+ {
185
+ 'name' => 'My Document',
186
+ 'reference' => 'X-MAGIC-15'
187
+ }
188
+ end
189
+
190
+ before do
191
+ allow(Worker).to receive(:perform)
192
+ end
193
+
194
+ it 'creates entry' do
195
+ expect { handler.process }
196
+ .to change(Document, :count)
197
+ .by(1)
198
+ end
199
+
200
+ it 'trigger workers after saving' do
201
+ handler.process
202
+
203
+ expect(Worker).to have_received(:perform)
204
+ .with(Document.last.id)
205
+ end
206
+
207
+ it 'changes entry after saving' do
208
+ handler.process
209
+
210
+ expect(Document.last.reference)
211
+ .to eq('X-MAGIC-15')
212
+ end
213
+ end
214
+ end
109
215
  end
110
216
 
111
217
  context 'with build_with as symbol' do
@@ -19,6 +19,11 @@ class RequestHandlerController < ActionController::Base
19
19
  document.reference = 'X-MAGIC-15'
20
20
  end
21
21
 
22
+ def add_magic_reference_and_trigger
23
+ document.update(reference: 'X-MAGIC-15')
24
+ Worker.perform(document.id)
25
+ end
26
+
22
27
  def build_magic_document
23
28
  documents.where(reference: 'X-MAGIC-15')
24
29
  .build(document_params)
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Worker
4
+ def self.perform(*args); end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azeroth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darthjee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2021-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.6.5
61
+ version: 1.6.7
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
- version: 1.6.5
68
+ version: 1.6.7
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: actionpack
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 1.11.3
131
+ version: 1.11.4
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 1.11.3
138
+ version: 1.11.4
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: pry
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -198,28 +198,28 @@ dependencies:
198
198
  requirements:
199
199
  - - '='
200
200
  - !ruby/object:Gem::Version
201
- version: 13.0.1
201
+ version: 13.0.3
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - '='
207
207
  - !ruby/object:Gem::Version
208
- version: 13.0.1
208
+ version: 13.0.3
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: reek
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: 5.6.0
215
+ version: 6.0.3
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - '='
221
221
  - !ruby/object:Gem::Version
222
- version: 5.6.0
222
+ version: 6.0.3
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: rspec
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -240,28 +240,28 @@ dependencies:
240
240
  requirements:
241
241
  - - '='
242
242
  - !ruby/object:Gem::Version
243
- version: 3.9.1
243
+ version: 3.9.3
244
244
  type: :development
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - '='
249
249
  - !ruby/object:Gem::Version
250
- version: 3.9.1
250
+ version: 3.9.3
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: rspec-expectations
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
255
  - - '='
256
256
  - !ruby/object:Gem::Version
257
- version: 3.9.1
257
+ version: 3.9.4
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - '='
263
263
  - !ruby/object:Gem::Version
264
- version: 3.9.1
264
+ version: 3.9.4
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: rspec-mocks
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -296,14 +296,14 @@ dependencies:
296
296
  requirements:
297
297
  - - '='
298
298
  - !ruby/object:Gem::Version
299
- version: 3.9.2
299
+ version: 3.9.4
300
300
  type: :development
301
301
  prerelease: false
302
302
  version_requirements: !ruby/object:Gem::Requirement
303
303
  requirements:
304
304
  - - '='
305
305
  - !ruby/object:Gem::Version
306
- version: 3.9.2
306
+ version: 3.9.4
307
307
  - !ruby/object:Gem::Dependency
308
308
  name: rubocop
309
309
  requirement: !ruby/object:Gem::Requirement
@@ -338,14 +338,14 @@ dependencies:
338
338
  requirements:
339
339
  - - '='
340
340
  - !ruby/object:Gem::Version
341
- version: 4.4.1
341
+ version: 4.6.1
342
342
  type: :development
343
343
  prerelease: false
344
344
  version_requirements: !ruby/object:Gem::Requirement
345
345
  requirements:
346
346
  - - '='
347
347
  - !ruby/object:Gem::Version
348
- version: 4.4.1
348
+ version: 4.6.1
349
349
  - !ruby/object:Gem::Dependency
350
350
  name: simplecov
351
351
  requirement: !ruby/object:Gem::Requirement
@@ -380,14 +380,14 @@ dependencies:
380
380
  requirements:
381
381
  - - '='
382
382
  - !ruby/object:Gem::Version
383
- version: 0.9.24
383
+ version: 0.9.26
384
384
  type: :development
385
385
  prerelease: false
386
386
  version_requirements: !ruby/object:Gem::Requirement
387
387
  requirements:
388
388
  - - '='
389
389
  - !ruby/object:Gem::Version
390
- version: 0.9.24
390
+ version: 0.9.26
391
391
  - !ruby/object:Gem::Dependency
392
392
  name: yardstick
393
393
  requirement: !ruby/object:Gem::Requirement
@@ -574,6 +574,7 @@ files:
574
574
  - spec/support/app/controllers/request_handler_controller.rb
575
575
  - spec/support/app/controllers/resource_builder_controller.rb
576
576
  - spec/support/app/controllers/resource_route_builder_controller.rb
577
+ - spec/support/app/workers/worker.rb
577
578
  - spec/support/factories/document.rb
578
579
  - spec/support/factories/dummy_model.rb
579
580
  - spec/support/factories/factory.rb
@@ -735,6 +736,7 @@ test_files:
735
736
  - spec/support/app/controllers/request_handler_controller.rb
736
737
  - spec/support/app/controllers/resource_builder_controller.rb
737
738
  - spec/support/app/controllers/resource_route_builder_controller.rb
739
+ - spec/support/app/workers/worker.rb
738
740
  - spec/support/factories/document.rb
739
741
  - spec/support/factories/dummy_model.rb
740
742
  - spec/support/factories/factory.rb