performify 0.11.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/CHANGELOG.md +7 -0
- data/README.md +0 -26
- data/lib/performify/validation.rb +4 -9
- data/lib/performify/version.rb +1 -1
- data/lib/performify.rb +2 -0
- data/performify.gemspec +3 -3
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f42b078cc5a367acde863d819ca20d65b162f88b6b9bcce7a1e6144e0638d97
|
4
|
+
data.tar.gz: 04b178462877bc21bea4e999c379d3d2dfb44cd27328acfa8890311b95da2e01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8e2533668b6f2676fd9d8d71f61a94444ee1d0a3a7084f893c658288e1951df9e8179d1cbea71a49154d9ba2a97bffd2ddb6e7d30971bd26ee8509a6b671fbc
|
7
|
+
data.tar.gz: 42877bc2eb354d2e110d3044ff7f7364ef6512a199b206f0638d598a4e5d1e857fd6ee90bbe6bbad4c18ea07874c89ebb0479e943e34640760cdb5fb82584df1
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## 1.0.0
|
4
|
+
|
5
|
+
This version is switching performify from version `0.12.0` of `dry-validation` to `dry-schema` of version `1.4` which means breaking changes:
|
6
|
+
|
7
|
+
- Because additional options are not supported by `dry-schema` (or at least I have not found this support in the source code) we were forced to drop them as well. So, from now you can't use `current_user` in your schemas by default because it's not being passed implicitly.
|
data/README.md
CHANGED
@@ -242,32 +242,6 @@ else
|
|
242
242
|
end
|
243
243
|
```
|
244
244
|
|
245
|
-
You can set options for `#with` to schema by overriding `#with_options`.
|
246
|
-
By default `#with_options` contains `{ current_user: current_user }`.
|
247
|
-
|
248
|
-
```ruby
|
249
|
-
module Users
|
250
|
-
class UpdatePassword < ApplicationService
|
251
|
-
schema do
|
252
|
-
configure do
|
253
|
-
option :current_user
|
254
|
-
|
255
|
-
def valid_password?(value)
|
256
|
-
current_user.password_digest.blank? || current_user.authenticate(value)
|
257
|
-
end
|
258
|
-
end
|
259
|
-
|
260
|
-
optional(:old_password).filled(:str?, :valid_password?)
|
261
|
-
required(:new_password).filled(:str?)
|
262
|
-
end
|
263
|
-
|
264
|
-
def execute!
|
265
|
-
super { current_user.update(password: new_password) }
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
269
|
-
```
|
270
|
-
|
271
245
|
You can get filtered inputs after success validation by accessing `inputs`.
|
272
246
|
|
273
247
|
```ruby
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'dry-validation'
|
2
|
-
|
3
1
|
module Performify
|
4
2
|
module Validation
|
5
3
|
def self.extended(base)
|
@@ -10,8 +8,8 @@ module Performify
|
|
10
8
|
module ClassMethods
|
11
9
|
def schema(outer_schema = nil, &block)
|
12
10
|
if block_given?
|
13
|
-
@schema = Dry::
|
14
|
-
elsif outer_schema.present? && outer_schema.is_a?(Dry::
|
11
|
+
@schema = Dry::Schema.Params({}, &block)
|
12
|
+
elsif outer_schema.present? && outer_schema.is_a?(Dry::Schema::Params)
|
15
13
|
@schema = outer_schema
|
16
14
|
else
|
17
15
|
@schema
|
@@ -27,7 +25,8 @@ module Performify
|
|
27
25
|
def validate
|
28
26
|
return args if schema.nil?
|
29
27
|
|
30
|
-
result = schema.
|
28
|
+
result = schema.call(args)
|
29
|
+
|
31
30
|
if result.success?
|
32
31
|
@inputs = result.output
|
33
32
|
else
|
@@ -51,10 +50,6 @@ module Performify
|
|
51
50
|
def errors?
|
52
51
|
errors.any?
|
53
52
|
end
|
54
|
-
|
55
|
-
private def with_options
|
56
|
-
{ current_user: current_user }
|
57
|
-
end
|
58
53
|
end
|
59
54
|
end
|
60
55
|
end
|
data/lib/performify/version.rb
CHANGED
data/lib/performify.rb
CHANGED
data/performify.gemspec
CHANGED
@@ -23,10 +23,10 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
spec.require_paths = ["lib"]
|
25
25
|
|
26
|
-
spec.add_dependency "activerecord", ">= 4.0
|
27
|
-
spec.add_dependency "dry-
|
26
|
+
spec.add_dependency "activerecord", ">= 4.0"
|
27
|
+
spec.add_dependency "dry-schema", "~> 1.4"
|
28
28
|
|
29
|
-
spec.add_development_dependency "sqlite3", "~> 1.
|
29
|
+
spec.add_development_dependency "sqlite3", "~> 1.4"
|
30
30
|
spec.add_development_dependency "bundler", "~> 1.14"
|
31
31
|
spec.add_development_dependency "rake", "~> 10.0"
|
32
32
|
spec.add_development_dependency "rspec", "~> 3.5"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: performify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Tsvetkov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0
|
19
|
+
version: '4.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0
|
26
|
+
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: dry-
|
28
|
+
name: dry-schema
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '1.4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '1.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: '1.4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: '1.4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- ".gitignore"
|
149
149
|
- ".rspec"
|
150
150
|
- ".rubocop.yml"
|
151
|
+
- CHANGELOG.md
|
151
152
|
- Gemfile
|
152
153
|
- LICENSE.txt
|
153
154
|
- README.md
|
@@ -182,8 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
183
|
- !ruby/object:Gem::Version
|
183
184
|
version: '0'
|
184
185
|
requirements: []
|
185
|
-
|
186
|
-
rubygems_version: 2.7.6
|
186
|
+
rubygems_version: 3.0.3
|
187
187
|
signing_key:
|
188
188
|
specification_version: 4
|
189
189
|
summary: Service classes that makes your life easier
|