subroutine 4.2.0 → 4.4.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/.github/workflows/build.yml +1 -1
- data/.ruby-version +1 -1
- data/Appraisals +7 -0
- data/CHANGELOG.MD +5 -0
- data/README.md +7 -1
- data/gemfiles/rails_6.1.gemfile +1 -0
- data/gemfiles/rails_6.1.gemfile.lock +90 -11
- data/gemfiles/rails_7.0.gemfile +1 -0
- data/gemfiles/rails_7.0.gemfile.lock +88 -10
- data/gemfiles/rails_7.1.gemfile.lock +90 -16
- data/gemfiles/rails_7.2.gemfile.lock +92 -16
- data/gemfiles/rails_8.0.gemfile +9 -0
- data/gemfiles/rails_8.0.gemfile.lock +204 -0
- data/lib/subroutine/outputs/configuration.rb +8 -1
- data/lib/subroutine/outputs.rb +58 -14
- data/lib/subroutine/version.rb +1 -1
- data/subroutine.gemspec +7 -1
- data/test/subroutine/outputs_test.rb +59 -0
- metadata +65 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 395466c8997f2ba267ca8aeb4d2ab31cc4da5c84d1d5cc46c603191d32f52c35
|
4
|
+
data.tar.gz: dce7398c28cb192b05dc51823143cccc9200382d998e0afad835c2a3db8dffae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c61146f544f205efef0e653485a21d93a49843415bbf37ca3afc4c466e87e4a639cc142ca75b5c2f00d646b1453d59d881becbd852be984b96bf14a55b3b4fa5
|
7
|
+
data.tar.gz: 5ebf1feeb586fefc32707e7dd2c17b54f03eee51573be7d03aa048796cdd6acaec0b541756e84c2d00a62ba198ec07f2fda5d2c004c2e87a6674fd923c59c047
|
data/.github/workflows/build.yml
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.3.7
|
data/Appraisals
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
appraise "rails-6.1" do
|
2
2
|
gem 'activemodel', '~> 6.1.0'
|
3
3
|
gem 'actionpack', '~> 6.1.0'
|
4
|
+
gem 'concurrent-ruby', '1.3.4'
|
4
5
|
end
|
5
6
|
|
6
7
|
appraise "rails-7.0" do
|
7
8
|
gem 'activemodel', '~> 7.0.0'
|
8
9
|
gem 'actionpack', '~> 7.0.0'
|
10
|
+
gem 'concurrent-ruby', '1.3.4'
|
9
11
|
end
|
10
12
|
|
11
13
|
appraise "rails-7.1" do
|
@@ -17,3 +19,8 @@ appraise "rails-7.2" do
|
|
17
19
|
gem 'activemodel', '~> 7.2.0'
|
18
20
|
gem 'actionpack', '~> 7.2.0'
|
19
21
|
end
|
22
|
+
|
23
|
+
appraise "rails-8.0" do
|
24
|
+
gem 'activemodel', '~> 8.0.0'
|
25
|
+
gem 'actionpack', '~> 8.0.0'
|
26
|
+
end
|
data/CHANGELOG.MD
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Subroutine 4.3.0
|
4
|
+
|
5
|
+
Default repository to Ruby 3.3.7, and gem to a minimum version of 3.2.0.
|
6
|
+
Tests continue to run against both Ruby 3.2 and Ruby 3.3.
|
7
|
+
|
3
8
|
## Subroutine 4.2.0
|
4
9
|
|
5
10
|
If you are using polymorphic association fields, you can now customize how Subroutine
|
data/README.md
CHANGED
@@ -22,6 +22,7 @@ class SignupOp < ::Subroutine::Op
|
|
22
22
|
|
23
23
|
outputs :user
|
24
24
|
outputs :business, type: Business # validate that output type is an instance of Business
|
25
|
+
outputs :heavy_operation, lazy: true # delay the execution of the output until accessed
|
25
26
|
|
26
27
|
protected
|
27
28
|
|
@@ -33,6 +34,7 @@ class SignupOp < ::Subroutine::Op
|
|
33
34
|
|
34
35
|
output :user, u
|
35
36
|
output :business, b
|
37
|
+
output :heavy_operation, -> { some_heavy_operation }
|
36
38
|
end
|
37
39
|
|
38
40
|
def create_user!
|
@@ -41,7 +43,11 @@ class SignupOp < ::Subroutine::Op
|
|
41
43
|
|
42
44
|
def create_business!(owner)
|
43
45
|
Business.create!(company_name: company_name, owner: owner)
|
44
|
-
|
46
|
+
end
|
47
|
+
|
48
|
+
def some_heavy_operation
|
49
|
+
# ...
|
50
|
+
end
|
45
51
|
|
46
52
|
def deliver_welcome_email(u)
|
47
53
|
UserMailer.welcome(u.id).deliver_later
|
data/gemfiles/rails_6.1.gemfile
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
subroutine (4.
|
4
|
+
subroutine (4.4.0)
|
5
5
|
activemodel (>= 6.1)
|
6
6
|
activesupport (>= 6.1)
|
7
|
+
base64
|
8
|
+
bigdecimal
|
9
|
+
logger
|
10
|
+
mutex_m
|
7
11
|
|
8
12
|
GEM
|
9
13
|
remote: https://rubygems.org/
|
@@ -34,14 +38,17 @@ GEM
|
|
34
38
|
bundler
|
35
39
|
rake
|
36
40
|
thor (>= 0.14.0)
|
41
|
+
base64 (0.2.0)
|
42
|
+
bigdecimal (3.1.9)
|
37
43
|
builder (3.3.0)
|
38
|
-
byebug (
|
44
|
+
byebug (12.0.0)
|
39
45
|
concurrent-ruby (1.3.4)
|
40
46
|
crass (1.0.6)
|
41
|
-
erubi (1.13.
|
42
|
-
i18n (1.14.
|
47
|
+
erubi (1.13.1)
|
48
|
+
i18n (1.14.7)
|
43
49
|
concurrent-ruby (~> 1.0)
|
44
|
-
|
50
|
+
logger (1.7.0)
|
51
|
+
loofah (2.24.0)
|
45
52
|
crass (~> 1.0.2)
|
46
53
|
nokogiri (>= 1.12.0)
|
47
54
|
m (1.6.2)
|
@@ -49,7 +56,7 @@ GEM
|
|
49
56
|
rake (>= 0.9.2.2)
|
50
57
|
method_source (1.1.0)
|
51
58
|
mini_portile2 (2.8.8)
|
52
|
-
minitest (5.25.
|
59
|
+
minitest (5.25.5)
|
53
60
|
minitest-reporters (1.7.1)
|
54
61
|
ansi
|
55
62
|
builder
|
@@ -57,12 +64,29 @@ GEM
|
|
57
64
|
ruby-progressbar
|
58
65
|
mocha (2.7.1)
|
59
66
|
ruby2_keywords (>= 0.0.5)
|
60
|
-
|
67
|
+
mutex_m (0.3.0)
|
68
|
+
nokogiri (1.18.7)
|
61
69
|
mini_portile2 (~> 2.8.2)
|
62
70
|
racc (~> 1.4)
|
71
|
+
nokogiri (1.18.7-aarch64-linux-gnu)
|
72
|
+
racc (~> 1.4)
|
73
|
+
nokogiri (1.18.7-aarch64-linux-musl)
|
74
|
+
racc (~> 1.4)
|
75
|
+
nokogiri (1.18.7-arm-linux-gnu)
|
76
|
+
racc (~> 1.4)
|
77
|
+
nokogiri (1.18.7-arm-linux-musl)
|
78
|
+
racc (~> 1.4)
|
79
|
+
nokogiri (1.18.7-arm64-darwin)
|
80
|
+
racc (~> 1.4)
|
81
|
+
nokogiri (1.18.7-x86_64-darwin)
|
82
|
+
racc (~> 1.4)
|
83
|
+
nokogiri (1.18.7-x86_64-linux-gnu)
|
84
|
+
racc (~> 1.4)
|
85
|
+
nokogiri (1.18.7-x86_64-linux-musl)
|
86
|
+
racc (~> 1.4)
|
63
87
|
racc (1.8.1)
|
64
|
-
rack (2.2.
|
65
|
-
rack-test (2.
|
88
|
+
rack (2.2.13)
|
89
|
+
rack-test (2.2.0)
|
66
90
|
rack (>= 1.3)
|
67
91
|
rails-dom-testing (2.2.0)
|
68
92
|
activesupport (>= 5.0.0)
|
@@ -77,16 +101,25 @@ GEM
|
|
77
101
|
thor (1.3.2)
|
78
102
|
tzinfo (2.0.6)
|
79
103
|
concurrent-ruby (~> 1.0)
|
80
|
-
zeitwerk (2.7.
|
104
|
+
zeitwerk (2.7.2)
|
81
105
|
|
82
106
|
PLATFORMS
|
107
|
+
aarch64-linux-gnu
|
108
|
+
aarch64-linux-musl
|
109
|
+
arm-linux-gnu
|
110
|
+
arm-linux-musl
|
111
|
+
arm64-darwin
|
83
112
|
ruby
|
113
|
+
x86_64-darwin
|
114
|
+
x86_64-linux-gnu
|
115
|
+
x86_64-linux-musl
|
84
116
|
|
85
117
|
DEPENDENCIES
|
86
118
|
actionpack (~> 6.1.0)
|
87
119
|
activemodel (~> 6.1.0)
|
88
120
|
appraisal
|
89
121
|
byebug
|
122
|
+
concurrent-ruby (= 1.3.4)
|
90
123
|
m
|
91
124
|
minitest
|
92
125
|
minitest-reporters
|
@@ -94,5 +127,51 @@ DEPENDENCIES
|
|
94
127
|
rake
|
95
128
|
subroutine!
|
96
129
|
|
130
|
+
CHECKSUMS
|
131
|
+
actionpack (6.1.7.10) sha256=7dd526e14b21db61c8b46d45261cf859cb86d430dd4ea4feff1c873099f5d56e
|
132
|
+
actionview (6.1.7.10) sha256=23b7a38c696eecea244d2fe1c74317e703ab24f32bf3b0ba271d3862ab07bcc2
|
133
|
+
activemodel (6.1.7.10) sha256=562d9b1d0597f450437ec7cd6540b13f3e074cce5c7b237ac76e7435a15d4b8c
|
134
|
+
activesupport (6.1.7.10) sha256=3f8e1f787a7bfbf765959ba509ef70af8293b35cb864078919365a12bf33d470
|
135
|
+
ansi (1.5.0) sha256=5408253274e33d9d27d4a98c46d2998266fd51cba58a7eb9d08f50e57ed23592
|
136
|
+
appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
|
137
|
+
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
|
138
|
+
bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
|
139
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
140
|
+
byebug (12.0.0) sha256=d4a150d291cca40b66ec9ca31f754e93fed8aa266a17335f71bb0afa7fca1a1e
|
141
|
+
concurrent-ruby (1.3.4) sha256=d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32
|
142
|
+
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
143
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
144
|
+
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
|
145
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
146
|
+
loofah (2.24.0) sha256=61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e
|
147
|
+
m (1.6.2) sha256=2fb85aff050b6b699e6dbca47b45d426e2136ccdfabb64437e9630230d29108e
|
148
|
+
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
|
149
|
+
mini_portile2 (2.8.8) sha256=8e47136cdac04ce81750bb6c09733b37895bf06962554e4b4056d78168d70a75
|
150
|
+
minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
|
151
|
+
minitest-reporters (1.7.1) sha256=5060413a0c95b8c32fe73e0606f3631c173a884d7900e50013e15094eb50562c
|
152
|
+
mocha (2.7.1) sha256=8f7d538d5d3ebc75fc788b3d92fbab913a93a78462d2a3ce99d1bdde7af7f851
|
153
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
154
|
+
nokogiri (1.18.7) sha256=6b63ff5defe48f30d1d3b3122f65255ca91df2caf5378c6e0482ce73ff46fb31
|
155
|
+
nokogiri (1.18.7-aarch64-linux-gnu) sha256=57a064ab5440814a69a0e040817bd8154adea68a30d2ff2b3aa515a6a06dbb5f
|
156
|
+
nokogiri (1.18.7-aarch64-linux-musl) sha256=3e442dc5b69376e84288295fe37cbb890a21ad816a7e571e5e9967b3c1e30cd3
|
157
|
+
nokogiri (1.18.7-arm-linux-gnu) sha256=337d9149deb5ae01022dff7c90f97bed81715fd586aacab0c5809ef933994c5e
|
158
|
+
nokogiri (1.18.7-arm-linux-musl) sha256=97a26edcc975f780a0822aaf7f7d7427c561067c1c9ee56bd3542960f0c28a6e
|
159
|
+
nokogiri (1.18.7-arm64-darwin) sha256=083abb2e9ed2646860f6b481a981485a658c6064caafaa81bf1cda1bada2e9d5
|
160
|
+
nokogiri (1.18.7-x86_64-darwin) sha256=081d1aa517454ba3415304e2ea51fe411d6a3a809490d0c4aa42799cada417b7
|
161
|
+
nokogiri (1.18.7-x86_64-linux-gnu) sha256=3a0bf946eb2defde13d760f869b61bc8b0c18875afdd3cffa96543cfa3a18005
|
162
|
+
nokogiri (1.18.7-x86_64-linux-musl) sha256=9d83f8ec1fc37a305fa835d7ee61a4f37899e6ccc6dcb05be6645fa9797605af
|
163
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
164
|
+
rack (2.2.13) sha256=ccee101719696a5da12ee9da6fb3b1d20cb329939e089e0e458be6e93667f0fb
|
165
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
166
|
+
rails-dom-testing (2.2.0) sha256=e515712e48df1f687a1d7c380fd7b07b8558faa26464474da64183a7426fa93b
|
167
|
+
rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
|
168
|
+
rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
|
169
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
170
|
+
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
|
171
|
+
subroutine (4.4.0)
|
172
|
+
thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
|
173
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
174
|
+
zeitwerk (2.7.2) sha256=842e067cb11eb923d747249badfb5fcdc9652d6f20a1f06453317920fdcd4673
|
175
|
+
|
97
176
|
BUNDLED WITH
|
98
|
-
2.
|
177
|
+
2.6.7
|
data/gemfiles/rails_7.0.gemfile
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
subroutine (4.
|
4
|
+
subroutine (4.4.0)
|
5
5
|
activemodel (>= 6.1)
|
6
6
|
activesupport (>= 6.1)
|
7
|
+
base64
|
8
|
+
bigdecimal
|
9
|
+
logger
|
10
|
+
mutex_m
|
7
11
|
|
8
12
|
GEM
|
9
13
|
remote: https://rubygems.org/
|
@@ -33,14 +37,17 @@ GEM
|
|
33
37
|
bundler
|
34
38
|
rake
|
35
39
|
thor (>= 0.14.0)
|
40
|
+
base64 (0.2.0)
|
41
|
+
bigdecimal (3.1.9)
|
36
42
|
builder (3.3.0)
|
37
|
-
byebug (
|
43
|
+
byebug (12.0.0)
|
38
44
|
concurrent-ruby (1.3.4)
|
39
45
|
crass (1.0.6)
|
40
|
-
erubi (1.13.
|
41
|
-
i18n (1.14.
|
46
|
+
erubi (1.13.1)
|
47
|
+
i18n (1.14.7)
|
42
48
|
concurrent-ruby (~> 1.0)
|
43
|
-
|
49
|
+
logger (1.7.0)
|
50
|
+
loofah (2.24.0)
|
44
51
|
crass (~> 1.0.2)
|
45
52
|
nokogiri (>= 1.12.0)
|
46
53
|
m (1.6.2)
|
@@ -48,7 +55,7 @@ GEM
|
|
48
55
|
rake (>= 0.9.2.2)
|
49
56
|
method_source (1.1.0)
|
50
57
|
mini_portile2 (2.8.8)
|
51
|
-
minitest (5.25.
|
58
|
+
minitest (5.25.5)
|
52
59
|
minitest-reporters (1.7.1)
|
53
60
|
ansi
|
54
61
|
builder
|
@@ -56,12 +63,29 @@ GEM
|
|
56
63
|
ruby-progressbar
|
57
64
|
mocha (2.7.1)
|
58
65
|
ruby2_keywords (>= 0.0.5)
|
59
|
-
|
66
|
+
mutex_m (0.3.0)
|
67
|
+
nokogiri (1.18.7)
|
60
68
|
mini_portile2 (~> 2.8.2)
|
61
69
|
racc (~> 1.4)
|
70
|
+
nokogiri (1.18.7-aarch64-linux-gnu)
|
71
|
+
racc (~> 1.4)
|
72
|
+
nokogiri (1.18.7-aarch64-linux-musl)
|
73
|
+
racc (~> 1.4)
|
74
|
+
nokogiri (1.18.7-arm-linux-gnu)
|
75
|
+
racc (~> 1.4)
|
76
|
+
nokogiri (1.18.7-arm-linux-musl)
|
77
|
+
racc (~> 1.4)
|
78
|
+
nokogiri (1.18.7-arm64-darwin)
|
79
|
+
racc (~> 1.4)
|
80
|
+
nokogiri (1.18.7-x86_64-darwin)
|
81
|
+
racc (~> 1.4)
|
82
|
+
nokogiri (1.18.7-x86_64-linux-gnu)
|
83
|
+
racc (~> 1.4)
|
84
|
+
nokogiri (1.18.7-x86_64-linux-musl)
|
85
|
+
racc (~> 1.4)
|
62
86
|
racc (1.8.1)
|
63
|
-
rack (2.2.
|
64
|
-
rack-test (2.
|
87
|
+
rack (2.2.13)
|
88
|
+
rack-test (2.2.0)
|
65
89
|
rack (>= 1.3)
|
66
90
|
rails-dom-testing (2.2.0)
|
67
91
|
activesupport (>= 5.0.0)
|
@@ -78,13 +102,22 @@ GEM
|
|
78
102
|
concurrent-ruby (~> 1.0)
|
79
103
|
|
80
104
|
PLATFORMS
|
105
|
+
aarch64-linux-gnu
|
106
|
+
aarch64-linux-musl
|
107
|
+
arm-linux-gnu
|
108
|
+
arm-linux-musl
|
109
|
+
arm64-darwin
|
81
110
|
ruby
|
111
|
+
x86_64-darwin
|
112
|
+
x86_64-linux-gnu
|
113
|
+
x86_64-linux-musl
|
82
114
|
|
83
115
|
DEPENDENCIES
|
84
116
|
actionpack (~> 7.0.0)
|
85
117
|
activemodel (~> 7.0.0)
|
86
118
|
appraisal
|
87
119
|
byebug
|
120
|
+
concurrent-ruby (= 1.3.4)
|
88
121
|
m
|
89
122
|
minitest
|
90
123
|
minitest-reporters
|
@@ -92,5 +125,50 @@ DEPENDENCIES
|
|
92
125
|
rake
|
93
126
|
subroutine!
|
94
127
|
|
128
|
+
CHECKSUMS
|
129
|
+
actionpack (7.0.8.7) sha256=40e6b1d687904a4fd2285d1fa3aad3d9a9d9ba8fd8858dd0faa9f4673c3f5e2c
|
130
|
+
actionview (7.0.8.7) sha256=be975bc9c61903fe5da80a97c345271159033bcbba63988c7f27b6b8b98f7fed
|
131
|
+
activemodel (7.0.8.7) sha256=f13b04bb055c1e85b965ce40b0a2e671b8d97835083597bc7fbc04cde0f40a83
|
132
|
+
activesupport (7.0.8.7) sha256=df4702375de924aae81709c831605317c5417f0bd9e502a0373ff84a067204ff
|
133
|
+
ansi (1.5.0) sha256=5408253274e33d9d27d4a98c46d2998266fd51cba58a7eb9d08f50e57ed23592
|
134
|
+
appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
|
135
|
+
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
|
136
|
+
bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
|
137
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
138
|
+
byebug (12.0.0) sha256=d4a150d291cca40b66ec9ca31f754e93fed8aa266a17335f71bb0afa7fca1a1e
|
139
|
+
concurrent-ruby (1.3.4) sha256=d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32
|
140
|
+
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
141
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
142
|
+
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
|
143
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
144
|
+
loofah (2.24.0) sha256=61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e
|
145
|
+
m (1.6.2) sha256=2fb85aff050b6b699e6dbca47b45d426e2136ccdfabb64437e9630230d29108e
|
146
|
+
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
|
147
|
+
mini_portile2 (2.8.8) sha256=8e47136cdac04ce81750bb6c09733b37895bf06962554e4b4056d78168d70a75
|
148
|
+
minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
|
149
|
+
minitest-reporters (1.7.1) sha256=5060413a0c95b8c32fe73e0606f3631c173a884d7900e50013e15094eb50562c
|
150
|
+
mocha (2.7.1) sha256=8f7d538d5d3ebc75fc788b3d92fbab913a93a78462d2a3ce99d1bdde7af7f851
|
151
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
152
|
+
nokogiri (1.18.7) sha256=6b63ff5defe48f30d1d3b3122f65255ca91df2caf5378c6e0482ce73ff46fb31
|
153
|
+
nokogiri (1.18.7-aarch64-linux-gnu) sha256=57a064ab5440814a69a0e040817bd8154adea68a30d2ff2b3aa515a6a06dbb5f
|
154
|
+
nokogiri (1.18.7-aarch64-linux-musl) sha256=3e442dc5b69376e84288295fe37cbb890a21ad816a7e571e5e9967b3c1e30cd3
|
155
|
+
nokogiri (1.18.7-arm-linux-gnu) sha256=337d9149deb5ae01022dff7c90f97bed81715fd586aacab0c5809ef933994c5e
|
156
|
+
nokogiri (1.18.7-arm-linux-musl) sha256=97a26edcc975f780a0822aaf7f7d7427c561067c1c9ee56bd3542960f0c28a6e
|
157
|
+
nokogiri (1.18.7-arm64-darwin) sha256=083abb2e9ed2646860f6b481a981485a658c6064caafaa81bf1cda1bada2e9d5
|
158
|
+
nokogiri (1.18.7-x86_64-darwin) sha256=081d1aa517454ba3415304e2ea51fe411d6a3a809490d0c4aa42799cada417b7
|
159
|
+
nokogiri (1.18.7-x86_64-linux-gnu) sha256=3a0bf946eb2defde13d760f869b61bc8b0c18875afdd3cffa96543cfa3a18005
|
160
|
+
nokogiri (1.18.7-x86_64-linux-musl) sha256=9d83f8ec1fc37a305fa835d7ee61a4f37899e6ccc6dcb05be6645fa9797605af
|
161
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
162
|
+
rack (2.2.13) sha256=ccee101719696a5da12ee9da6fb3b1d20cb329939e089e0e458be6e93667f0fb
|
163
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
164
|
+
rails-dom-testing (2.2.0) sha256=e515712e48df1f687a1d7c380fd7b07b8558faa26464474da64183a7426fa93b
|
165
|
+
rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
|
166
|
+
rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
|
167
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
168
|
+
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
|
169
|
+
subroutine (4.4.0)
|
170
|
+
thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
|
171
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
172
|
+
|
95
173
|
BUNDLED WITH
|
96
|
-
2.
|
174
|
+
2.6.7
|
@@ -1,9 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
subroutine (4.
|
4
|
+
subroutine (4.4.0)
|
5
5
|
activemodel (>= 6.1)
|
6
6
|
activesupport (>= 6.1)
|
7
|
+
base64
|
8
|
+
bigdecimal
|
9
|
+
logger
|
10
|
+
mutex_m
|
7
11
|
|
8
12
|
GEM
|
9
13
|
remote: https://rubygems.org/
|
@@ -46,25 +50,25 @@ GEM
|
|
46
50
|
thor (>= 0.14.0)
|
47
51
|
base64 (0.2.0)
|
48
52
|
benchmark (0.4.0)
|
49
|
-
bigdecimal (3.1.
|
53
|
+
bigdecimal (3.1.9)
|
50
54
|
builder (3.3.0)
|
51
|
-
byebug (
|
52
|
-
concurrent-ruby (1.3.
|
53
|
-
connection_pool (2.
|
55
|
+
byebug (12.0.0)
|
56
|
+
concurrent-ruby (1.3.5)
|
57
|
+
connection_pool (2.5.0)
|
54
58
|
crass (1.0.6)
|
55
59
|
drb (2.2.1)
|
56
|
-
erubi (1.13.
|
57
|
-
i18n (1.14.
|
60
|
+
erubi (1.13.1)
|
61
|
+
i18n (1.14.7)
|
58
62
|
concurrent-ruby (~> 1.0)
|
59
|
-
logger (1.
|
60
|
-
loofah (2.
|
63
|
+
logger (1.7.0)
|
64
|
+
loofah (2.24.0)
|
61
65
|
crass (~> 1.0.2)
|
62
66
|
nokogiri (>= 1.12.0)
|
63
67
|
m (1.6.2)
|
64
68
|
method_source (>= 0.6.7)
|
65
69
|
rake (>= 0.9.2.2)
|
66
70
|
method_source (1.1.0)
|
67
|
-
minitest (5.25.
|
71
|
+
minitest (5.25.5)
|
68
72
|
minitest-reporters (1.7.1)
|
69
73
|
ansi
|
70
74
|
builder
|
@@ -73,13 +77,28 @@ GEM
|
|
73
77
|
mocha (2.7.1)
|
74
78
|
ruby2_keywords (>= 0.0.5)
|
75
79
|
mutex_m (0.3.0)
|
76
|
-
nokogiri (1.
|
80
|
+
nokogiri (1.18.7-aarch64-linux-gnu)
|
81
|
+
racc (~> 1.4)
|
82
|
+
nokogiri (1.18.7-aarch64-linux-musl)
|
83
|
+
racc (~> 1.4)
|
84
|
+
nokogiri (1.18.7-arm-linux-gnu)
|
85
|
+
racc (~> 1.4)
|
86
|
+
nokogiri (1.18.7-arm-linux-musl)
|
87
|
+
racc (~> 1.4)
|
88
|
+
nokogiri (1.18.7-arm64-darwin)
|
89
|
+
racc (~> 1.4)
|
90
|
+
nokogiri (1.18.7-x86_64-darwin)
|
91
|
+
racc (~> 1.4)
|
92
|
+
nokogiri (1.18.7-x86_64-linux-gnu)
|
93
|
+
racc (~> 1.4)
|
94
|
+
nokogiri (1.18.7-x86_64-linux-musl)
|
77
95
|
racc (~> 1.4)
|
78
96
|
racc (1.8.1)
|
79
|
-
rack (3.1.
|
80
|
-
rack-session (2.
|
97
|
+
rack (3.1.12)
|
98
|
+
rack-session (2.1.0)
|
99
|
+
base64 (>= 0.1.0)
|
81
100
|
rack (>= 3.0.0)
|
82
|
-
rack-test (2.
|
101
|
+
rack-test (2.2.0)
|
83
102
|
rack (>= 1.3)
|
84
103
|
rails-dom-testing (2.2.0)
|
85
104
|
activesupport (>= 5.0.0)
|
@@ -91,13 +110,20 @@ GEM
|
|
91
110
|
rake (13.2.1)
|
92
111
|
ruby-progressbar (1.13.0)
|
93
112
|
ruby2_keywords (0.0.5)
|
94
|
-
securerandom (0.4.
|
113
|
+
securerandom (0.4.1)
|
95
114
|
thor (1.3.2)
|
96
115
|
tzinfo (2.0.6)
|
97
116
|
concurrent-ruby (~> 1.0)
|
98
117
|
|
99
118
|
PLATFORMS
|
119
|
+
aarch64-linux-gnu
|
120
|
+
aarch64-linux-musl
|
121
|
+
arm-linux-gnu
|
122
|
+
arm-linux-musl
|
100
123
|
arm64-darwin
|
124
|
+
x86_64-darwin
|
125
|
+
x86_64-linux-gnu
|
126
|
+
x86_64-linux-musl
|
101
127
|
|
102
128
|
DEPENDENCIES
|
103
129
|
actionpack (~> 7.1.0)
|
@@ -111,5 +137,53 @@ DEPENDENCIES
|
|
111
137
|
rake
|
112
138
|
subroutine!
|
113
139
|
|
140
|
+
CHECKSUMS
|
141
|
+
actionpack (7.1.5.1) sha256=2bc263d9f43f16cc3b3360f59659ab11f140577602f371f1a968e2672b38d718
|
142
|
+
actionview (7.1.5.1) sha256=8c559a213501798e29b50b5341a643a70bbf6fa0aa2abaf571d0efc59dc4f6aa
|
143
|
+
activemodel (7.1.5.1) sha256=74727466854a7fbdfe8f2702ca3112b23877500d4926bf7e02e921ad542191f1
|
144
|
+
activesupport (7.1.5.1) sha256=9f0c482e473b9868cb3dfe3e9db549a3bd2302c02e4f595a5caac144a8c7cfb8
|
145
|
+
ansi (1.5.0) sha256=5408253274e33d9d27d4a98c46d2998266fd51cba58a7eb9d08f50e57ed23592
|
146
|
+
appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
|
147
|
+
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
|
148
|
+
benchmark (0.4.0) sha256=0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a
|
149
|
+
bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
|
150
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
151
|
+
byebug (12.0.0) sha256=d4a150d291cca40b66ec9ca31f754e93fed8aa266a17335f71bb0afa7fca1a1e
|
152
|
+
concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
|
153
|
+
connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
|
154
|
+
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
155
|
+
drb (2.2.1) sha256=e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340
|
156
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
157
|
+
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
|
158
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
159
|
+
loofah (2.24.0) sha256=61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e
|
160
|
+
m (1.6.2) sha256=2fb85aff050b6b699e6dbca47b45d426e2136ccdfabb64437e9630230d29108e
|
161
|
+
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
|
162
|
+
minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
|
163
|
+
minitest-reporters (1.7.1) sha256=5060413a0c95b8c32fe73e0606f3631c173a884d7900e50013e15094eb50562c
|
164
|
+
mocha (2.7.1) sha256=8f7d538d5d3ebc75fc788b3d92fbab913a93a78462d2a3ce99d1bdde7af7f851
|
165
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
166
|
+
nokogiri (1.18.7-aarch64-linux-gnu) sha256=57a064ab5440814a69a0e040817bd8154adea68a30d2ff2b3aa515a6a06dbb5f
|
167
|
+
nokogiri (1.18.7-aarch64-linux-musl) sha256=3e442dc5b69376e84288295fe37cbb890a21ad816a7e571e5e9967b3c1e30cd3
|
168
|
+
nokogiri (1.18.7-arm-linux-gnu) sha256=337d9149deb5ae01022dff7c90f97bed81715fd586aacab0c5809ef933994c5e
|
169
|
+
nokogiri (1.18.7-arm-linux-musl) sha256=97a26edcc975f780a0822aaf7f7d7427c561067c1c9ee56bd3542960f0c28a6e
|
170
|
+
nokogiri (1.18.7-arm64-darwin) sha256=083abb2e9ed2646860f6b481a981485a658c6064caafaa81bf1cda1bada2e9d5
|
171
|
+
nokogiri (1.18.7-x86_64-darwin) sha256=081d1aa517454ba3415304e2ea51fe411d6a3a809490d0c4aa42799cada417b7
|
172
|
+
nokogiri (1.18.7-x86_64-linux-gnu) sha256=3a0bf946eb2defde13d760f869b61bc8b0c18875afdd3cffa96543cfa3a18005
|
173
|
+
nokogiri (1.18.7-x86_64-linux-musl) sha256=9d83f8ec1fc37a305fa835d7ee61a4f37899e6ccc6dcb05be6645fa9797605af
|
174
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
175
|
+
rack (3.1.12) sha256=00d83055c89273eb13679ab562767b8826955aa6c4371d7d161deb975c50c540
|
176
|
+
rack-session (2.1.0) sha256=437c3916535b58ef71c816ce4a2dee0a01c8a52ae6077dc2b6cd19085760a290
|
177
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
178
|
+
rails-dom-testing (2.2.0) sha256=e515712e48df1f687a1d7c380fd7b07b8558faa26464474da64183a7426fa93b
|
179
|
+
rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
|
180
|
+
rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
|
181
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
182
|
+
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
|
183
|
+
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
184
|
+
subroutine (4.4.0)
|
185
|
+
thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
|
186
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
187
|
+
|
114
188
|
BUNDLED WITH
|
115
|
-
2.
|
189
|
+
2.6.7
|
@@ -1,9 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
subroutine (4.
|
4
|
+
subroutine (4.4.0)
|
5
5
|
activemodel (>= 6.1)
|
6
6
|
activesupport (>= 6.1)
|
7
|
+
base64
|
8
|
+
bigdecimal
|
9
|
+
logger
|
10
|
+
mutex_m
|
7
11
|
|
8
12
|
GEM
|
9
13
|
remote: https://rubygems.org/
|
@@ -46,25 +50,25 @@ GEM
|
|
46
50
|
thor (>= 0.14.0)
|
47
51
|
base64 (0.2.0)
|
48
52
|
benchmark (0.4.0)
|
49
|
-
bigdecimal (3.1.
|
53
|
+
bigdecimal (3.1.9)
|
50
54
|
builder (3.3.0)
|
51
|
-
byebug (
|
52
|
-
concurrent-ruby (1.3.
|
53
|
-
connection_pool (2.
|
55
|
+
byebug (12.0.0)
|
56
|
+
concurrent-ruby (1.3.5)
|
57
|
+
connection_pool (2.5.0)
|
54
58
|
crass (1.0.6)
|
55
59
|
drb (2.2.1)
|
56
|
-
erubi (1.13.
|
57
|
-
i18n (1.14.
|
60
|
+
erubi (1.13.1)
|
61
|
+
i18n (1.14.7)
|
58
62
|
concurrent-ruby (~> 1.0)
|
59
|
-
logger (1.
|
60
|
-
loofah (2.
|
63
|
+
logger (1.7.0)
|
64
|
+
loofah (2.24.0)
|
61
65
|
crass (~> 1.0.2)
|
62
66
|
nokogiri (>= 1.12.0)
|
63
67
|
m (1.6.2)
|
64
68
|
method_source (>= 0.6.7)
|
65
69
|
rake (>= 0.9.2.2)
|
66
70
|
method_source (1.1.0)
|
67
|
-
minitest (5.25.
|
71
|
+
minitest (5.25.5)
|
68
72
|
minitest-reporters (1.7.1)
|
69
73
|
ansi
|
70
74
|
builder
|
@@ -72,13 +76,29 @@ GEM
|
|
72
76
|
ruby-progressbar
|
73
77
|
mocha (2.7.1)
|
74
78
|
ruby2_keywords (>= 0.0.5)
|
75
|
-
|
79
|
+
mutex_m (0.3.0)
|
80
|
+
nokogiri (1.18.7-aarch64-linux-gnu)
|
81
|
+
racc (~> 1.4)
|
82
|
+
nokogiri (1.18.7-aarch64-linux-musl)
|
83
|
+
racc (~> 1.4)
|
84
|
+
nokogiri (1.18.7-arm-linux-gnu)
|
85
|
+
racc (~> 1.4)
|
86
|
+
nokogiri (1.18.7-arm-linux-musl)
|
87
|
+
racc (~> 1.4)
|
88
|
+
nokogiri (1.18.7-arm64-darwin)
|
89
|
+
racc (~> 1.4)
|
90
|
+
nokogiri (1.18.7-x86_64-darwin)
|
91
|
+
racc (~> 1.4)
|
92
|
+
nokogiri (1.18.7-x86_64-linux-gnu)
|
93
|
+
racc (~> 1.4)
|
94
|
+
nokogiri (1.18.7-x86_64-linux-musl)
|
76
95
|
racc (~> 1.4)
|
77
96
|
racc (1.8.1)
|
78
|
-
rack (3.1.
|
79
|
-
rack-session (2.
|
97
|
+
rack (3.1.12)
|
98
|
+
rack-session (2.1.0)
|
99
|
+
base64 (>= 0.1.0)
|
80
100
|
rack (>= 3.0.0)
|
81
|
-
rack-test (2.
|
101
|
+
rack-test (2.2.0)
|
82
102
|
rack (>= 1.3)
|
83
103
|
rails-dom-testing (2.2.0)
|
84
104
|
activesupport (>= 5.0.0)
|
@@ -90,14 +110,21 @@ GEM
|
|
90
110
|
rake (13.2.1)
|
91
111
|
ruby-progressbar (1.13.0)
|
92
112
|
ruby2_keywords (0.0.5)
|
93
|
-
securerandom (0.4.
|
113
|
+
securerandom (0.4.1)
|
94
114
|
thor (1.3.2)
|
95
115
|
tzinfo (2.0.6)
|
96
116
|
concurrent-ruby (~> 1.0)
|
97
117
|
useragent (0.16.11)
|
98
118
|
|
99
119
|
PLATFORMS
|
120
|
+
aarch64-linux-gnu
|
121
|
+
aarch64-linux-musl
|
122
|
+
arm-linux-gnu
|
123
|
+
arm-linux-musl
|
100
124
|
arm64-darwin
|
125
|
+
x86_64-darwin
|
126
|
+
x86_64-linux-gnu
|
127
|
+
x86_64-linux-musl
|
101
128
|
|
102
129
|
DEPENDENCIES
|
103
130
|
actionpack (~> 7.2.0)
|
@@ -111,5 +138,54 @@ DEPENDENCIES
|
|
111
138
|
rake
|
112
139
|
subroutine!
|
113
140
|
|
141
|
+
CHECKSUMS
|
142
|
+
actionpack (7.2.2.1) sha256=17b2160a7bcbd5a569d06b1ae54a4bb5ccc7ba0815d73ff5768100a79dc1f734
|
143
|
+
actionview (7.2.2.1) sha256=69fc880cf3d8b1baf21b048cf7bb68f1eef08760ff8104d7d60a6a1be8b359a5
|
144
|
+
activemodel (7.2.2.1) sha256=8398861f9ee2c4671a8357ab39e9b38a045fd656f6685a3dd5890c2419dbfdaf
|
145
|
+
activesupport (7.2.2.1) sha256=842bcbf8a92977f80fb4750661a237cf5dd4fdd442066b3c35e88afb488647f5
|
146
|
+
ansi (1.5.0) sha256=5408253274e33d9d27d4a98c46d2998266fd51cba58a7eb9d08f50e57ed23592
|
147
|
+
appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
|
148
|
+
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
|
149
|
+
benchmark (0.4.0) sha256=0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a
|
150
|
+
bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
|
151
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
152
|
+
byebug (12.0.0) sha256=d4a150d291cca40b66ec9ca31f754e93fed8aa266a17335f71bb0afa7fca1a1e
|
153
|
+
concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
|
154
|
+
connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
|
155
|
+
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
156
|
+
drb (2.2.1) sha256=e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340
|
157
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
158
|
+
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
|
159
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
160
|
+
loofah (2.24.0) sha256=61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e
|
161
|
+
m (1.6.2) sha256=2fb85aff050b6b699e6dbca47b45d426e2136ccdfabb64437e9630230d29108e
|
162
|
+
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
|
163
|
+
minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
|
164
|
+
minitest-reporters (1.7.1) sha256=5060413a0c95b8c32fe73e0606f3631c173a884d7900e50013e15094eb50562c
|
165
|
+
mocha (2.7.1) sha256=8f7d538d5d3ebc75fc788b3d92fbab913a93a78462d2a3ce99d1bdde7af7f851
|
166
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
167
|
+
nokogiri (1.18.7-aarch64-linux-gnu) sha256=57a064ab5440814a69a0e040817bd8154adea68a30d2ff2b3aa515a6a06dbb5f
|
168
|
+
nokogiri (1.18.7-aarch64-linux-musl) sha256=3e442dc5b69376e84288295fe37cbb890a21ad816a7e571e5e9967b3c1e30cd3
|
169
|
+
nokogiri (1.18.7-arm-linux-gnu) sha256=337d9149deb5ae01022dff7c90f97bed81715fd586aacab0c5809ef933994c5e
|
170
|
+
nokogiri (1.18.7-arm-linux-musl) sha256=97a26edcc975f780a0822aaf7f7d7427c561067c1c9ee56bd3542960f0c28a6e
|
171
|
+
nokogiri (1.18.7-arm64-darwin) sha256=083abb2e9ed2646860f6b481a981485a658c6064caafaa81bf1cda1bada2e9d5
|
172
|
+
nokogiri (1.18.7-x86_64-darwin) sha256=081d1aa517454ba3415304e2ea51fe411d6a3a809490d0c4aa42799cada417b7
|
173
|
+
nokogiri (1.18.7-x86_64-linux-gnu) sha256=3a0bf946eb2defde13d760f869b61bc8b0c18875afdd3cffa96543cfa3a18005
|
174
|
+
nokogiri (1.18.7-x86_64-linux-musl) sha256=9d83f8ec1fc37a305fa835d7ee61a4f37899e6ccc6dcb05be6645fa9797605af
|
175
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
176
|
+
rack (3.1.12) sha256=00d83055c89273eb13679ab562767b8826955aa6c4371d7d161deb975c50c540
|
177
|
+
rack-session (2.1.0) sha256=437c3916535b58ef71c816ce4a2dee0a01c8a52ae6077dc2b6cd19085760a290
|
178
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
179
|
+
rails-dom-testing (2.2.0) sha256=e515712e48df1f687a1d7c380fd7b07b8558faa26464474da64183a7426fa93b
|
180
|
+
rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
|
181
|
+
rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
|
182
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
183
|
+
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
|
184
|
+
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
185
|
+
subroutine (4.4.0)
|
186
|
+
thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
|
187
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
188
|
+
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
|
189
|
+
|
114
190
|
BUNDLED WITH
|
115
|
-
2.
|
191
|
+
2.6.7
|
@@ -0,0 +1,204 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
subroutine (4.4.0)
|
5
|
+
activemodel (>= 6.1)
|
6
|
+
activesupport (>= 6.1)
|
7
|
+
base64
|
8
|
+
bigdecimal
|
9
|
+
logger
|
10
|
+
mutex_m
|
11
|
+
|
12
|
+
GEM
|
13
|
+
remote: https://rubygems.org/
|
14
|
+
specs:
|
15
|
+
actionpack (8.0.2)
|
16
|
+
actionview (= 8.0.2)
|
17
|
+
activesupport (= 8.0.2)
|
18
|
+
nokogiri (>= 1.8.5)
|
19
|
+
rack (>= 2.2.4)
|
20
|
+
rack-session (>= 1.0.1)
|
21
|
+
rack-test (>= 0.6.3)
|
22
|
+
rails-dom-testing (~> 2.2)
|
23
|
+
rails-html-sanitizer (~> 1.6)
|
24
|
+
useragent (~> 0.16)
|
25
|
+
actionview (8.0.2)
|
26
|
+
activesupport (= 8.0.2)
|
27
|
+
builder (~> 3.1)
|
28
|
+
erubi (~> 1.11)
|
29
|
+
rails-dom-testing (~> 2.2)
|
30
|
+
rails-html-sanitizer (~> 1.6)
|
31
|
+
activemodel (8.0.2)
|
32
|
+
activesupport (= 8.0.2)
|
33
|
+
activesupport (8.0.2)
|
34
|
+
base64
|
35
|
+
benchmark (>= 0.3)
|
36
|
+
bigdecimal
|
37
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
38
|
+
connection_pool (>= 2.2.5)
|
39
|
+
drb
|
40
|
+
i18n (>= 1.6, < 2)
|
41
|
+
logger (>= 1.4.2)
|
42
|
+
minitest (>= 5.1)
|
43
|
+
securerandom (>= 0.3)
|
44
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
45
|
+
uri (>= 0.13.1)
|
46
|
+
ansi (1.5.0)
|
47
|
+
appraisal (2.5.0)
|
48
|
+
bundler
|
49
|
+
rake
|
50
|
+
thor (>= 0.14.0)
|
51
|
+
base64 (0.2.0)
|
52
|
+
benchmark (0.4.0)
|
53
|
+
bigdecimal (3.1.9)
|
54
|
+
builder (3.3.0)
|
55
|
+
byebug (12.0.0)
|
56
|
+
concurrent-ruby (1.3.5)
|
57
|
+
connection_pool (2.5.0)
|
58
|
+
crass (1.0.6)
|
59
|
+
drb (2.2.1)
|
60
|
+
erubi (1.13.1)
|
61
|
+
i18n (1.14.7)
|
62
|
+
concurrent-ruby (~> 1.0)
|
63
|
+
logger (1.7.0)
|
64
|
+
loofah (2.24.0)
|
65
|
+
crass (~> 1.0.2)
|
66
|
+
nokogiri (>= 1.12.0)
|
67
|
+
m (1.6.2)
|
68
|
+
method_source (>= 0.6.7)
|
69
|
+
rake (>= 0.9.2.2)
|
70
|
+
method_source (1.1.0)
|
71
|
+
mini_portile2 (2.8.8)
|
72
|
+
minitest (5.25.5)
|
73
|
+
minitest-reporters (1.7.1)
|
74
|
+
ansi
|
75
|
+
builder
|
76
|
+
minitest (>= 5.0)
|
77
|
+
ruby-progressbar
|
78
|
+
mocha (2.7.1)
|
79
|
+
ruby2_keywords (>= 0.0.5)
|
80
|
+
mutex_m (0.3.0)
|
81
|
+
nokogiri (1.18.7)
|
82
|
+
mini_portile2 (~> 2.8.2)
|
83
|
+
racc (~> 1.4)
|
84
|
+
nokogiri (1.18.7-aarch64-linux-gnu)
|
85
|
+
racc (~> 1.4)
|
86
|
+
nokogiri (1.18.7-aarch64-linux-musl)
|
87
|
+
racc (~> 1.4)
|
88
|
+
nokogiri (1.18.7-arm-linux-gnu)
|
89
|
+
racc (~> 1.4)
|
90
|
+
nokogiri (1.18.7-arm-linux-musl)
|
91
|
+
racc (~> 1.4)
|
92
|
+
nokogiri (1.18.7-arm64-darwin)
|
93
|
+
racc (~> 1.4)
|
94
|
+
nokogiri (1.18.7-x86_64-darwin)
|
95
|
+
racc (~> 1.4)
|
96
|
+
nokogiri (1.18.7-x86_64-linux-gnu)
|
97
|
+
racc (~> 1.4)
|
98
|
+
nokogiri (1.18.7-x86_64-linux-musl)
|
99
|
+
racc (~> 1.4)
|
100
|
+
racc (1.8.1)
|
101
|
+
rack (3.1.12)
|
102
|
+
rack-session (2.1.0)
|
103
|
+
base64 (>= 0.1.0)
|
104
|
+
rack (>= 3.0.0)
|
105
|
+
rack-test (2.2.0)
|
106
|
+
rack (>= 1.3)
|
107
|
+
rails-dom-testing (2.2.0)
|
108
|
+
activesupport (>= 5.0.0)
|
109
|
+
minitest
|
110
|
+
nokogiri (>= 1.6)
|
111
|
+
rails-html-sanitizer (1.6.2)
|
112
|
+
loofah (~> 2.21)
|
113
|
+
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
114
|
+
rake (13.2.1)
|
115
|
+
ruby-progressbar (1.13.0)
|
116
|
+
ruby2_keywords (0.0.5)
|
117
|
+
securerandom (0.4.1)
|
118
|
+
thor (1.3.2)
|
119
|
+
tzinfo (2.0.6)
|
120
|
+
concurrent-ruby (~> 1.0)
|
121
|
+
uri (1.0.3)
|
122
|
+
useragent (0.16.11)
|
123
|
+
|
124
|
+
PLATFORMS
|
125
|
+
aarch64-linux
|
126
|
+
aarch64-linux-gnu
|
127
|
+
aarch64-linux-musl
|
128
|
+
arm-linux
|
129
|
+
arm-linux-gnu
|
130
|
+
arm-linux-musl
|
131
|
+
arm64-darwin
|
132
|
+
ruby
|
133
|
+
x86-linux
|
134
|
+
x86_64-darwin
|
135
|
+
x86_64-linux
|
136
|
+
x86_64-linux-gnu
|
137
|
+
x86_64-linux-musl
|
138
|
+
|
139
|
+
DEPENDENCIES
|
140
|
+
actionpack (~> 8.0.0)
|
141
|
+
activemodel (~> 8.0.0)
|
142
|
+
appraisal
|
143
|
+
byebug
|
144
|
+
m
|
145
|
+
minitest
|
146
|
+
minitest-reporters
|
147
|
+
mocha
|
148
|
+
rake
|
149
|
+
subroutine!
|
150
|
+
|
151
|
+
CHECKSUMS
|
152
|
+
actionpack (8.0.2) sha256=93e703064f3815295ccf820f57acbca719aec836749597da9262781c9b2f4b78
|
153
|
+
actionview (8.0.2) sha256=e038e1405cdfc18f04f17243da4fb8eeda3a4992f63a6d70a7281d255cf7cebb
|
154
|
+
activemodel (8.0.2) sha256=0ae1fb7fa1fae0699ba041a9e97702df42ea3b13f2d39f2d0fde51fca5f0656c
|
155
|
+
activesupport (8.0.2) sha256=8565cddba31b900cdc17682fd66ecd020441e3eef320a9930285394e8c07a45e
|
156
|
+
ansi (1.5.0) sha256=5408253274e33d9d27d4a98c46d2998266fd51cba58a7eb9d08f50e57ed23592
|
157
|
+
appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
|
158
|
+
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
|
159
|
+
benchmark (0.4.0) sha256=0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a
|
160
|
+
bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
|
161
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
162
|
+
byebug (12.0.0) sha256=d4a150d291cca40b66ec9ca31f754e93fed8aa266a17335f71bb0afa7fca1a1e
|
163
|
+
concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
|
164
|
+
connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
|
165
|
+
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
166
|
+
drb (2.2.1) sha256=e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340
|
167
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
168
|
+
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
|
169
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
170
|
+
loofah (2.24.0) sha256=61e6a710883abb8210887f3dc868cf3ed66594c509d9ff6987621efa6651ee1e
|
171
|
+
m (1.6.2) sha256=2fb85aff050b6b699e6dbca47b45d426e2136ccdfabb64437e9630230d29108e
|
172
|
+
method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
|
173
|
+
mini_portile2 (2.8.8) sha256=8e47136cdac04ce81750bb6c09733b37895bf06962554e4b4056d78168d70a75
|
174
|
+
minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
|
175
|
+
minitest-reporters (1.7.1) sha256=5060413a0c95b8c32fe73e0606f3631c173a884d7900e50013e15094eb50562c
|
176
|
+
mocha (2.7.1) sha256=8f7d538d5d3ebc75fc788b3d92fbab913a93a78462d2a3ce99d1bdde7af7f851
|
177
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
178
|
+
nokogiri (1.18.7) sha256=6b63ff5defe48f30d1d3b3122f65255ca91df2caf5378c6e0482ce73ff46fb31
|
179
|
+
nokogiri (1.18.7-aarch64-linux-gnu) sha256=57a064ab5440814a69a0e040817bd8154adea68a30d2ff2b3aa515a6a06dbb5f
|
180
|
+
nokogiri (1.18.7-aarch64-linux-musl) sha256=3e442dc5b69376e84288295fe37cbb890a21ad816a7e571e5e9967b3c1e30cd3
|
181
|
+
nokogiri (1.18.7-arm-linux-gnu) sha256=337d9149deb5ae01022dff7c90f97bed81715fd586aacab0c5809ef933994c5e
|
182
|
+
nokogiri (1.18.7-arm-linux-musl) sha256=97a26edcc975f780a0822aaf7f7d7427c561067c1c9ee56bd3542960f0c28a6e
|
183
|
+
nokogiri (1.18.7-arm64-darwin) sha256=083abb2e9ed2646860f6b481a981485a658c6064caafaa81bf1cda1bada2e9d5
|
184
|
+
nokogiri (1.18.7-x86_64-darwin) sha256=081d1aa517454ba3415304e2ea51fe411d6a3a809490d0c4aa42799cada417b7
|
185
|
+
nokogiri (1.18.7-x86_64-linux-gnu) sha256=3a0bf946eb2defde13d760f869b61bc8b0c18875afdd3cffa96543cfa3a18005
|
186
|
+
nokogiri (1.18.7-x86_64-linux-musl) sha256=9d83f8ec1fc37a305fa835d7ee61a4f37899e6ccc6dcb05be6645fa9797605af
|
187
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
188
|
+
rack (3.1.12) sha256=00d83055c89273eb13679ab562767b8826955aa6c4371d7d161deb975c50c540
|
189
|
+
rack-session (2.1.0) sha256=437c3916535b58ef71c816ce4a2dee0a01c8a52ae6077dc2b6cd19085760a290
|
190
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
191
|
+
rails-dom-testing (2.2.0) sha256=e515712e48df1f687a1d7c380fd7b07b8558faa26464474da64183a7426fa93b
|
192
|
+
rails-html-sanitizer (1.6.2) sha256=35fce2ca8242da8775c83b6ba9c1bcaad6751d9eb73c1abaa8403475ab89a560
|
193
|
+
rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
|
194
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
195
|
+
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
|
196
|
+
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
197
|
+
subroutine (4.4.0)
|
198
|
+
thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
|
199
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
200
|
+
uri (1.0.3) sha256=e9f2244608eea2f7bc357d954c65c910ce0399ca5e18a7a29207ac22d8767011
|
201
|
+
useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
|
202
|
+
|
203
|
+
BUNDLED WITH
|
204
|
+
2.6.7
|
@@ -13,7 +13,10 @@ module Subroutine
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
DEFAULT_OPTIONS = {
|
16
|
+
DEFAULT_OPTIONS = {
|
17
|
+
required: true,
|
18
|
+
lazy: false
|
19
|
+
}.freeze
|
17
20
|
|
18
21
|
attr_reader :output_name
|
19
22
|
|
@@ -28,6 +31,10 @@ module Subroutine
|
|
28
31
|
!!config[:required]
|
29
32
|
end
|
30
33
|
|
34
|
+
def lazy?
|
35
|
+
!!config[:lazy]
|
36
|
+
end
|
37
|
+
|
31
38
|
def inspect
|
32
39
|
"#<#{self.class}:#{object_id} name=#{output_name} config=#{config.inspect}>"
|
33
40
|
end
|
data/lib/subroutine/outputs.rb
CHANGED
@@ -10,11 +10,27 @@ module Subroutine
|
|
10
10
|
|
11
11
|
extend ActiveSupport::Concern
|
12
12
|
|
13
|
+
class LazyExecutor
|
14
|
+
def initialize(value)
|
15
|
+
@value_block = value
|
16
|
+
@executed = false
|
17
|
+
end
|
18
|
+
|
19
|
+
def value
|
20
|
+
return @value if @executed
|
21
|
+
@value = @value_block.respond_to?(:call) ? @value_block.call : @value
|
22
|
+
@executed = true
|
23
|
+
@value
|
24
|
+
end
|
25
|
+
|
26
|
+
def executed?
|
27
|
+
@executed
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
13
31
|
included do
|
14
32
|
class_attribute :output_configurations
|
15
33
|
self.output_configurations = {}
|
16
|
-
|
17
|
-
attr_reader :outputs
|
18
34
|
end
|
19
35
|
|
20
36
|
module ClassMethods
|
@@ -39,20 +55,42 @@ module Subroutine
|
|
39
55
|
@outputs = {} # don't do with_indifferent_access because it will turn provided objects into with_indifferent_access objects, which may not be the desired behavior
|
40
56
|
end
|
41
57
|
|
58
|
+
def outputs
|
59
|
+
unless @outputs_executed
|
60
|
+
@outputs.each_pair do |key, value|
|
61
|
+
@outputs[key] = value.is_a?(LazyExecutor) ? value.value : value
|
62
|
+
end
|
63
|
+
@outputs_executed = true
|
64
|
+
end
|
65
|
+
|
66
|
+
@outputs
|
67
|
+
end
|
68
|
+
|
42
69
|
def output(name, value)
|
43
70
|
name = name.to_sym
|
44
71
|
unless output_configurations.key?(name)
|
45
72
|
raise ::Subroutine::Outputs::UnknownOutputError, name
|
46
73
|
end
|
47
74
|
|
48
|
-
outputs[name] = value
|
75
|
+
@outputs[name] = output_configurations[name].lazy? ? LazyExecutor.new(value) : value
|
49
76
|
end
|
50
77
|
|
51
78
|
def get_output(name)
|
52
79
|
name = name.to_sym
|
53
80
|
raise ::Subroutine::Outputs::UnknownOutputError, name unless output_configurations.key?(name)
|
54
81
|
|
55
|
-
outputs[name]
|
82
|
+
output = @outputs[name]
|
83
|
+
unless output.is_a?(LazyExecutor)
|
84
|
+
output
|
85
|
+
else
|
86
|
+
# if its not executed, validate the type
|
87
|
+
unless output.executed?
|
88
|
+
@outputs[name] = output.value
|
89
|
+
ensure_output_type_valid!(name)
|
90
|
+
end
|
91
|
+
|
92
|
+
@outputs[name]
|
93
|
+
end
|
56
94
|
end
|
57
95
|
|
58
96
|
def validate_outputs!
|
@@ -60,21 +98,27 @@ module Subroutine
|
|
60
98
|
if config.required? && !output_provided?(name)
|
61
99
|
raise ::Subroutine::Outputs::OutputNotSetError, name
|
62
100
|
end
|
63
|
-
unless
|
64
|
-
name
|
65
|
-
raise ::Subroutine::Outputs::InvalidOutputTypeError.new(
|
66
|
-
name: name,
|
67
|
-
actual_type: outputs[name].class,
|
68
|
-
expected_type: output_configurations[name][:type]
|
69
|
-
)
|
101
|
+
unless output_configurations[name].lazy?
|
102
|
+
ensure_output_type_valid!(name)
|
70
103
|
end
|
71
104
|
end
|
72
105
|
end
|
73
106
|
|
107
|
+
def ensure_output_type_valid!(name)
|
108
|
+
return if valid_output_type?(name)
|
109
|
+
|
110
|
+
name = name.to_sym
|
111
|
+
raise ::Subroutine::Outputs::InvalidOutputTypeError.new(
|
112
|
+
name: name,
|
113
|
+
actual_type: @outputs[name].class,
|
114
|
+
expected_type: output_configurations[name][:type]
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
74
118
|
def output_provided?(name)
|
75
119
|
name = name.to_sym
|
76
120
|
|
77
|
-
outputs.key?(name)
|
121
|
+
@outputs.key?(name)
|
78
122
|
end
|
79
123
|
|
80
124
|
def valid_output_type?(name)
|
@@ -84,9 +128,9 @@ module Subroutine
|
|
84
128
|
|
85
129
|
output_configuration = output_configurations[name]
|
86
130
|
return true unless output_configuration[:type]
|
87
|
-
return true if !output_configuration.required? && outputs[name].nil?
|
131
|
+
return true if !output_configuration.required? && @outputs[name].nil?
|
88
132
|
|
89
|
-
outputs[name].is_a?(output_configuration[:type])
|
133
|
+
@outputs[name].is_a?(output_configuration[:type])
|
90
134
|
end
|
91
135
|
end
|
92
136
|
end
|
data/lib/subroutine/version.rb
CHANGED
data/subroutine.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.email = ["mike@mnelson.io"]
|
12
12
|
spec.summary = "Feature-driven operation objects."
|
13
13
|
spec.description = "An interface for creating feature-driven operations."
|
14
|
-
spec.homepage = "https://github.com/
|
14
|
+
spec.homepage = "https://github.com/guideline-tech/subroutine"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -21,6 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_dependency "activemodel", ">= 6.1"
|
23
23
|
spec.add_dependency "activesupport", ">= 6.1"
|
24
|
+
spec.add_dependency "base64"
|
25
|
+
spec.add_dependency "bigdecimal"
|
26
|
+
spec.add_dependency "logger"
|
27
|
+
spec.add_dependency "mutex_m"
|
24
28
|
|
25
29
|
spec.add_development_dependency "actionpack", ">= 6.1"
|
26
30
|
spec.add_development_dependency "byebug"
|
@@ -29,4 +33,6 @@ Gem::Specification.new do |spec|
|
|
29
33
|
spec.add_development_dependency "minitest-reporters"
|
30
34
|
spec.add_development_dependency "mocha"
|
31
35
|
spec.add_development_dependency "rake"
|
36
|
+
|
37
|
+
spec.required_ruby_version = ">= 3.2.0"
|
32
38
|
end
|
@@ -10,6 +10,20 @@ module Subroutine
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
class LazyOutputOp < ::Subroutine::Op
|
14
|
+
outputs :foo, lazy: true
|
15
|
+
outputs :baz, lazy: true, type: String
|
16
|
+
|
17
|
+
def perform
|
18
|
+
output :foo, -> { call_me }
|
19
|
+
output :baz, -> { call_baz }
|
20
|
+
end
|
21
|
+
|
22
|
+
def call_me; end
|
23
|
+
|
24
|
+
def call_baz; end
|
25
|
+
end
|
26
|
+
|
13
27
|
class MissingOutputSetOp < ::Subroutine::Op
|
14
28
|
outputs :foo
|
15
29
|
def perform
|
@@ -99,5 +113,50 @@ module Subroutine
|
|
99
113
|
op.submit
|
100
114
|
end
|
101
115
|
end
|
116
|
+
|
117
|
+
################
|
118
|
+
# lazy outputs #
|
119
|
+
################
|
120
|
+
|
121
|
+
def test_it_does_not_call_lazy_output_values_if_not_accessed
|
122
|
+
op = LazyOutputOp.new
|
123
|
+
op.expects(:call_me).never
|
124
|
+
op.submit!
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_it_calls_lazy_output_values_if_accessed
|
128
|
+
op = LazyOutputOp.new
|
129
|
+
op.expects(:call_me).once
|
130
|
+
op.submit!
|
131
|
+
op.foo
|
132
|
+
end
|
133
|
+
|
134
|
+
def test_it_validates_type_when_lazy_output_is_accessed
|
135
|
+
op = LazyOutputOp.new
|
136
|
+
op.expects(:call_baz).once.returns("a string")
|
137
|
+
op.submit!
|
138
|
+
assert_silent do
|
139
|
+
op.baz
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_it_raises_error_on_invalid_type_when_lazy_output_is_accessed
|
144
|
+
op = LazyOutputOp.new
|
145
|
+
op.expects(:call_baz).once.returns(10)
|
146
|
+
op.submit!
|
147
|
+
error = assert_raises(Subroutine::Outputs::InvalidOutputTypeError) do
|
148
|
+
op.baz
|
149
|
+
end
|
150
|
+
assert_match(/Invalid output type for 'baz' expected String but got Integer/, error.message)
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_it_returns_outputs
|
154
|
+
op = LazyOutputOp.new
|
155
|
+
op.expects(:call_me).once.returns(1)
|
156
|
+
op.expects(:call_baz).once.returns("a string")
|
157
|
+
op.submit!
|
158
|
+
assert_equal({ foo: 1, baz: "a string" }, op.outputs)
|
159
|
+
end
|
160
|
+
|
102
161
|
end
|
103
162
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subroutine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Nelson
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activemodel
|
@@ -38,6 +37,62 @@ dependencies:
|
|
38
37
|
- - ">="
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '6.1'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: base64
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: bigdecimal
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
type: :runtime
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: logger
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
type: :runtime
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: mutex_m
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
41
96
|
- !ruby/object:Gem::Dependency
|
42
97
|
name: actionpack
|
43
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +219,8 @@ files:
|
|
164
219
|
- gemfiles/rails_7.1.gemfile.lock
|
165
220
|
- gemfiles/rails_7.2.gemfile
|
166
221
|
- gemfiles/rails_7.2.gemfile.lock
|
222
|
+
- gemfiles/rails_8.0.gemfile
|
223
|
+
- gemfiles/rails_8.0.gemfile.lock
|
167
224
|
- lib/subroutine.rb
|
168
225
|
- lib/subroutine/association_fields.rb
|
169
226
|
- lib/subroutine/association_fields/association_type_mismatch_error.rb
|
@@ -193,11 +250,10 @@ files:
|
|
193
250
|
- test/subroutine/type_caster_test.rb
|
194
251
|
- test/support/ops.rb
|
195
252
|
- test/test_helper.rb
|
196
|
-
homepage: https://github.com/
|
253
|
+
homepage: https://github.com/guideline-tech/subroutine
|
197
254
|
licenses:
|
198
255
|
- MIT
|
199
256
|
metadata: {}
|
200
|
-
post_install_message:
|
201
257
|
rdoc_options: []
|
202
258
|
require_paths:
|
203
259
|
- lib
|
@@ -205,15 +261,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
261
|
requirements:
|
206
262
|
- - ">="
|
207
263
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
264
|
+
version: 3.2.0
|
209
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
266
|
requirements:
|
211
267
|
- - ">="
|
212
268
|
- !ruby/object:Gem::Version
|
213
269
|
version: '0'
|
214
270
|
requirements: []
|
215
|
-
rubygems_version: 3.
|
216
|
-
signing_key:
|
271
|
+
rubygems_version: 3.6.7
|
217
272
|
specification_version: 4
|
218
273
|
summary: Feature-driven operation objects.
|
219
274
|
test_files:
|
@@ -225,6 +280,8 @@ test_files:
|
|
225
280
|
- gemfiles/rails_7.1.gemfile.lock
|
226
281
|
- gemfiles/rails_7.2.gemfile
|
227
282
|
- gemfiles/rails_7.2.gemfile.lock
|
283
|
+
- gemfiles/rails_8.0.gemfile
|
284
|
+
- gemfiles/rails_8.0.gemfile.lock
|
228
285
|
- test/subroutine/association_test.rb
|
229
286
|
- test/subroutine/auth_test.rb
|
230
287
|
- test/subroutine/base_test.rb
|