azeroth 0.7.3 → 0.7.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.
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