readymade 0.2.8 → 0.3.0
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 +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +4 -3
- data/Gemfile.lock +8 -2
- data/README.md +17 -0
- data/lib/readymade/action.rb +9 -0
- data/lib/readymade/background_job.rb +13 -0
- data/lib/readymade/version.rb +1 -1
- data/lib/readymade.rb +1 -0
- data/readymade.gemspec +3 -0
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4e8e02d585f7ebcd9b83ddaef817e0116b8b06c80d543a46fbfb2df1adf99ca
|
4
|
+
data.tar.gz: 333b90782eb4e24733f9073132f667f540b2f81c5b62d3dd92372ee434b0b9f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 202033d59da56afbc9a17b0eaf8659ed3fcd1fd4ff9c89d9687d429d636dbe61d22c450dc03ba15251b9d282ae6f7aa943caece163a23d8866f95d3798f58db5
|
7
|
+
data.tar.gz: 3d02a2c554e9d4de2db20bbd598fa4c0d8da2757003358142cb61e7e71abf47b728a880b8f08c28824c8214c10711973376ed93550e2439ef98bb3d48c51ed34
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
readymade (0.
|
4
|
+
readymade (0.3.0)
|
5
|
+
activejob
|
6
|
+
activemodel
|
5
7
|
|
6
8
|
GEM
|
7
9
|
remote: https://rubygems.org/
|
8
10
|
specs:
|
11
|
+
activejob (6.1.4.1)
|
12
|
+
activesupport (= 6.1.4.1)
|
13
|
+
globalid (>= 0.3.6)
|
9
14
|
activemodel (6.1.4.1)
|
10
15
|
activesupport (= 6.1.4.1)
|
11
16
|
activesupport (6.1.4.1)
|
@@ -17,6 +22,8 @@ GEM
|
|
17
22
|
byebug (11.1.3)
|
18
23
|
concurrent-ruby (1.1.9)
|
19
24
|
diff-lcs (1.4.4)
|
25
|
+
globalid (1.1.0)
|
26
|
+
activesupport (>= 5.0)
|
20
27
|
i18n (1.8.11)
|
21
28
|
concurrent-ruby (~> 1.0)
|
22
29
|
minitest (5.14.4)
|
@@ -42,7 +49,6 @@ PLATFORMS
|
|
42
49
|
ruby
|
43
50
|
|
44
51
|
DEPENDENCIES
|
45
|
-
activemodel
|
46
52
|
byebug
|
47
53
|
rake
|
48
54
|
readymade!
|
data/README.md
CHANGED
@@ -131,6 +131,23 @@ response.data[:record]
|
|
131
131
|
response.data[:any_other_data]
|
132
132
|
```
|
133
133
|
|
134
|
+
### `.call_async` - any action could we call async (using ActiveJob)
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
class Orders::Actions::SendNotifications < Readymade::Action
|
138
|
+
def call
|
139
|
+
send_email
|
140
|
+
send_push
|
141
|
+
send_slack
|
142
|
+
|
143
|
+
response(:success, record: record, any_other_data: data)
|
144
|
+
end
|
145
|
+
...
|
146
|
+
end
|
147
|
+
|
148
|
+
Orders::Actions::SendNotifications.call_async(order: order)
|
149
|
+
```
|
150
|
+
|
134
151
|
### Readymade::Operation
|
135
152
|
|
136
153
|
Provides set of help methods like: `build_form`, `form_valid?`, `validation_fail`, `save_record`, etc.
|
data/lib/readymade/action.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'readymade/response'
|
4
|
+
require 'readymade/background_job'
|
4
5
|
|
5
6
|
module Readymade
|
6
7
|
class Action
|
@@ -10,6 +11,10 @@ module Readymade
|
|
10
11
|
new(*args, &block).call
|
11
12
|
end
|
12
13
|
|
14
|
+
def self.call_async(*args, &block)
|
15
|
+
new(*args, &block).call_async
|
16
|
+
end
|
17
|
+
|
13
18
|
attr_reader :args, :data
|
14
19
|
|
15
20
|
def initialize(args = {})
|
@@ -23,6 +28,10 @@ module Readymade
|
|
23
28
|
|
24
29
|
def call; end
|
25
30
|
|
31
|
+
def call_async
|
32
|
+
::Readymade::BackgroundJob.perform_later(class_name: self.class.name, **args)
|
33
|
+
end
|
34
|
+
|
26
35
|
def response(status, *args)
|
27
36
|
Response.new(status, *args)
|
28
37
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_job' unless defined?(::ActiveJob)
|
4
|
+
|
5
|
+
module Readymade
|
6
|
+
class BackgroundJob < ::ActiveJob::Base
|
7
|
+
# queue_as :default
|
8
|
+
|
9
|
+
def perform(**args)
|
10
|
+
args.delete(:class_name).to_s.constantize.send(:call, **args)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/readymade/version.rb
CHANGED
data/lib/readymade.rb
CHANGED
data/readymade.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: readymade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OrestF
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activemodel
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activejob
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
description: Set of base classes for ABDI architecture
|
56
84
|
email:
|
57
85
|
- falchuko@gmail.com
|
@@ -73,6 +101,7 @@ files:
|
|
73
101
|
- bin/setup
|
74
102
|
- lib/readymade.rb
|
75
103
|
- lib/readymade/action.rb
|
104
|
+
- lib/readymade/background_job.rb
|
76
105
|
- lib/readymade/controller/serialization.rb
|
77
106
|
- lib/readymade/form.rb
|
78
107
|
- lib/readymade/instant_form.rb
|