redress 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcc21824a6395eda1bf8c8c9dab35e5ff6e87e458d3d696ec5ebf59a03c26217
4
- data.tar.gz: 12969e57fc763d657da28fb4f74cc923e7932282a034741f944dc3f6664b252c
3
+ metadata.gz: 5428edcfea11f2b2ee5b5c46aadb3aae63ce35dade3cd6a208d1a38700c26b39
4
+ data.tar.gz: 54655c9cd0ead71f5283ede04efcf58e6cb2f8817202c297d37310c627258531
5
5
  SHA512:
6
- metadata.gz: cc0980ae192ae4bffe7ca1f96f2a7eea931a9120d72d3a94a90d4578f1cbfa234fb45661705bc79fa312c0724b8a61c8501a2a4fb2180cce1947337654701195
7
- data.tar.gz: 026f35ad1df1922b4bb2ca06da41c0a2d158be430e85c3fda2b9eeab0231e17a82a9bd51c55a914c9a7541221797590cea696581262d0a91f86fac9af8488441
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
- atttibute :terms_of_service, Redress::Types::Bool
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::Commad
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 broadcast(:invalid, @form) if @form.invalid?
168
+ return Failure(@form) if @form.invalid?
182
169
 
183
- user = User.create(@form.attributes)
170
+ user = User.new(@form.attributes)
184
171
 
185
- broadcast(:ok, user)
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.on(:ok) { head status: 201 }
207
- c.on(:invalid) { |form| render status: 422, json: { errors: form.errors } }
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
@@ -1,21 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'wisper'
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 Wisper::Publisher
9
+ include Dry::Monads[:result]
8
10
 
9
11
  def self.call(*args, &block)
10
- run(*args, &block)
11
- nil
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
- yield command if block_given?
17
- command.call
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
@@ -12,7 +12,7 @@ module Redress
12
12
  end
13
13
 
14
14
  def self.version
15
- '0.5.0'
15
+ '1.0.0'
16
16
  end
17
17
 
18
18
  def self.version_label
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.5.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: 2021-02-05 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: dry-struct
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: '1.0'
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: '1.0'
40
+ version: 1.4.0
27
41
  - !ruby/object:Gem::Dependency
28
- name: dry-types
42
+ name: dry-struct
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '1.1'
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: '1.1'
54
+ version: 1.4.0
41
55
  - !ruby/object:Gem::Dependency
42
- name: hashie
56
+ name: dry-types
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ">="
59
+ - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: 3.5.7
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: 3.5.7
68
+ version: 1.5.0
55
69
  - !ruby/object:Gem::Dependency
56
- name: wisper
70
+ name: hashie
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: 2.0.0
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: 2.0.0
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: '5.2'
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: '5.2'
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.8.21
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.8.21
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: '4.7'
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: '4.7'
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.10'
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.10'
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: '3.4'
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: '3.4'
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.1'
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.1'
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: '12.0'
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: '12.0'
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: '4.7'
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: '4.7'
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: '3.6'
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: '3.6'
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.49'
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.49'
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: '2.5'
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
- rubyforge_project:
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