readymade 0.2.7 → 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 +10 -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/controller/serialization.rb +6 -9
- 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
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
+
## [0.3.0] - 2023-03-14
|
|
5
|
+
|
|
6
|
+
* Add `.call_async` method to `Readymade::Action` to run service in background
|
|
7
|
+
|
|
8
|
+
## [0.2.8] - 2022-11-10
|
|
9
|
+
|
|
10
|
+
### Fixes
|
|
11
|
+
|
|
12
|
+
* Fix `Readymade::Controller::Serialization` collection_response method raised an error.
|
|
13
|
+
|
|
4
14
|
## [0.2.7] - 2022-06-03
|
|
5
15
|
|
|
6
16
|
### Improvement
|
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
|
|
@@ -21,15 +21,12 @@ module Readymade
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def collection_response(collection, *args)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
options[:status] || :ok
|
|
32
|
-
)
|
|
24
|
+
args.extract_options!.then do |options|
|
|
25
|
+
render_json(
|
|
26
|
+
serialize_collection(paginate(collection, options), options).merge(count: collection.count),
|
|
27
|
+
options[:status] || :ok
|
|
28
|
+
)
|
|
29
|
+
end
|
|
33
30
|
end
|
|
34
31
|
|
|
35
32
|
def render_json(message, status)
|
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
|