redress 0.5.0 → 1.0.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/README.md +11 -20
- data/lib/redress/command.rb +18 -7
- data/lib/redress/identity.rb +1 -1
- metadata +71 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5428edcfea11f2b2ee5b5c46aadb3aae63ce35dade3cd6a208d1a38700c26b39
|
4
|
+
data.tar.gz: 54655c9cd0ead71f5283ede04efcf58e6cb2f8817202c297d37310c627258531
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bf394b4eaa4307db11cf8004dd5e045e6893c149cbaddf9e5baea1cb9c0e904e8702786ed78aac5fc2d111a91eb0887fb7333b9f3afe2a503169bd28464ace2
|
7
|
+
data.tar.gz: 0f80ac598c7da343a815f57279ca887d4a94aac2343717eb7cd5f3e6255e3f82f3b284b61ef5602e5f50ade520c41e0ac0eabfe5fa36ddec3d8230b8c3b27d03
|
data/README.md
CHANGED
@@ -73,7 +73,7 @@ class SimpleForm < ApplicationForm
|
|
73
73
|
attribute :email, Redress::Types::StrippedString
|
74
74
|
attribute :name_with_email, String
|
75
75
|
attribute :age, Redress::Types::Coercible::Integer
|
76
|
-
|
76
|
+
attribute :terms_of_service, Redress::Types::Bool
|
77
77
|
end
|
78
78
|
|
79
79
|
validates :name, presence: true
|
@@ -150,20 +150,7 @@ CommentForm.new(content: 'Hi').with_context(order: order)
|
|
150
150
|
# app/commands/application_command.rb
|
151
151
|
require 'redress/command'
|
152
152
|
|
153
|
-
class ApplicationCommand < Redress::
|
154
|
-
end
|
155
|
-
```
|
156
|
-
|
157
|
-
Or if you are using ActiveRecord:
|
158
|
-
|
159
|
-
```ruby
|
160
|
-
# app/commands/application_command.rb
|
161
|
-
require 'redress/command'
|
162
|
-
|
163
|
-
class ApplicationCommand < Redress::Commad
|
164
|
-
def transaction(&block)
|
165
|
-
ActiveRecord::Base.transaction(&block) if block_given?
|
166
|
-
end
|
153
|
+
class ApplicationCommand < Redress::Command
|
167
154
|
end
|
168
155
|
```
|
169
156
|
|
@@ -178,11 +165,15 @@ module Users
|
|
178
165
|
end
|
179
166
|
|
180
167
|
def call
|
181
|
-
return
|
168
|
+
return Failure(@form) if @form.invalid?
|
182
169
|
|
183
|
-
user = User.
|
170
|
+
user = User.new(@form.attributes)
|
184
171
|
|
185
|
-
|
172
|
+
if user.save
|
173
|
+
Success(user)
|
174
|
+
else
|
175
|
+
Failure(user)
|
176
|
+
end
|
186
177
|
end
|
187
178
|
end
|
188
179
|
end
|
@@ -203,8 +194,8 @@ class UsersController < Account::BaseController
|
|
203
194
|
@user_form = SimpleForm.from_params(params)
|
204
195
|
|
205
196
|
Users::CreateCommand.call(@user_form) do |c|
|
206
|
-
c.
|
207
|
-
c.
|
197
|
+
c.success { head status: 201 }
|
198
|
+
c.failure { |form| render status: 422, json: { errors: form.errors } }
|
208
199
|
end
|
209
200
|
end
|
210
201
|
end
|
data/lib/redress/command.rb
CHANGED
@@ -1,21 +1,32 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'dry/monads'
|
4
|
+
require 'dry/monads/do'
|
5
|
+
require 'dry/matcher/result_matcher'
|
4
6
|
|
5
7
|
module Redress
|
6
8
|
class Command
|
7
|
-
include
|
9
|
+
include Dry::Monads[:result]
|
8
10
|
|
9
11
|
def self.call(*args, &block)
|
10
|
-
|
11
|
-
|
12
|
+
result = new(*args).call
|
13
|
+
return result unless block_given?
|
14
|
+
|
15
|
+
Dry::Matcher::ResultMatcher.call(result, &block)
|
12
16
|
end
|
13
17
|
|
14
|
-
def self.run(*args)
|
18
|
+
def self.run(*args, &block)
|
15
19
|
command = new(*args)
|
16
|
-
|
17
|
-
command
|
20
|
+
result = command.call
|
21
|
+
return command unless block_given?
|
22
|
+
|
23
|
+
Dry::Matcher::ResultMatcher.call(result, &block)
|
24
|
+
|
18
25
|
command
|
19
26
|
end
|
27
|
+
|
28
|
+
def call
|
29
|
+
raise NotImplementedError
|
30
|
+
end
|
20
31
|
end
|
21
32
|
end
|
data/lib/redress/identity.rb
CHANGED
metadata
CHANGED
@@ -1,85 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Galeta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: dry-
|
14
|
+
name: dry-matcher
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dry-monads
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
33
|
+
version: 1.4.0
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
40
|
+
version: 1.4.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: dry-
|
42
|
+
name: dry-struct
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
47
|
+
version: 1.4.0
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
54
|
+
version: 1.4.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: dry-types
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - "
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 1.5.0
|
48
62
|
type: :runtime
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - "
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 1.5.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: hashie
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
75
|
+
version: '0'
|
62
76
|
type: :runtime
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: actionpack
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '6.1'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '6.1'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: activemodel
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,128 +112,128 @@ dependencies:
|
|
98
112
|
name: coveralls
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- - "
|
115
|
+
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0
|
117
|
+
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- - "
|
122
|
+
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: guard-rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- - "
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
131
|
+
version: '0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - "
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: pry
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0
|
145
|
+
version: '0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: pry-byebug
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
159
|
+
version: '0'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: pry-state
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version: '0
|
173
|
+
version: '0'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - "
|
178
|
+
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0
|
180
|
+
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: rake
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
|
-
- - "
|
185
|
+
- - ">="
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
187
|
+
version: '0'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
|
-
- - "
|
192
|
+
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
194
|
+
version: '0'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: reek
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
|
-
- - "
|
199
|
+
- - ">="
|
186
200
|
- !ruby/object:Gem::Version
|
187
|
-
version: '
|
201
|
+
version: '0'
|
188
202
|
type: :development
|
189
203
|
prerelease: false
|
190
204
|
version_requirements: !ruby/object:Gem::Requirement
|
191
205
|
requirements:
|
192
|
-
- - "
|
206
|
+
- - ">="
|
193
207
|
- !ruby/object:Gem::Version
|
194
|
-
version: '
|
208
|
+
version: '0'
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: rspec
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
|
-
- - "
|
213
|
+
- - ">="
|
200
214
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
215
|
+
version: '0'
|
202
216
|
type: :development
|
203
217
|
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
|
-
- - "
|
220
|
+
- - ">="
|
207
221
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
222
|
+
version: '0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: rubocop
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
|
-
- - "
|
227
|
+
- - ">="
|
214
228
|
- !ruby/object:Gem::Version
|
215
|
-
version: '0
|
229
|
+
version: '0'
|
216
230
|
type: :development
|
217
231
|
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
219
233
|
requirements:
|
220
|
-
- - "
|
234
|
+
- - ">="
|
221
235
|
- !ruby/object:Gem::Version
|
222
|
-
version: '0
|
236
|
+
version: '0'
|
223
237
|
description:
|
224
238
|
email:
|
225
239
|
- galeta.igor@gmail.com
|
@@ -251,17 +265,16 @@ require_paths:
|
|
251
265
|
- lib
|
252
266
|
required_ruby_version: !ruby/object:Gem::Requirement
|
253
267
|
requirements:
|
254
|
-
- - "
|
268
|
+
- - ">="
|
255
269
|
- !ruby/object:Gem::Version
|
256
|
-
version:
|
270
|
+
version: 2.1.0
|
257
271
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
272
|
requirements:
|
259
273
|
- - ">="
|
260
274
|
- !ruby/object:Gem::Version
|
261
275
|
version: '0'
|
262
276
|
requirements: []
|
263
|
-
|
264
|
-
rubygems_version: 2.7.6
|
277
|
+
rubygems_version: 3.2.26
|
265
278
|
signing_key:
|
266
279
|
specification_version: 4
|
267
280
|
summary: Build maintainable Ruby apps
|