methodist 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7de08f2a184573192dbc368ed5e651bc88d4e1357d4c23f49a2806f9f2ad2e5
4
- data.tar.gz: bbac31473819c708eec741dbdd7e2601f5a8ed9b915d189adc730990ef465a9f
3
+ metadata.gz: d4b0a1df657cf96583bdecf926cfa5beb74711aa2e942a47756e3eae03712ce8
4
+ data.tar.gz: ac96de08d5807f11da740f6356d246f2581c5befbe55e811b199cf6295935cd4
5
5
  SHA512:
6
- metadata.gz: 0576137dde883b3239e9858ee7fbfc84a2b6b5564f66ea31b2494a0de0af0d56c35ab8bb68ac4a87601b845cc133f6dfc3703730bd4345a0b7d094b87303a359
7
- data.tar.gz: ac09253556d655e4abe7777179ade14bab351ceefa5363fa472722445ba09d868577ab06f35c785269a8af703c06dcd646fba8b6e4b8788e2b3153b8a6842989
6
+ metadata.gz: 934db6fde4c720b1cf7777a1107967a700c710c1430aeb3952b2dbb9021458848b4f243d2f0d5740098e6707002e785a6ae29aba770e41d45c9a1bcbb3c00da6
7
+ data.tar.gz: 45aea636ce515ddd5a5e8366e3d6cf337d16e18f93e675399c57cee8fcfe6003e555c1937268ee4d4eee87870590e91328d75451308470974c927125ecaba9c2
@@ -10,6 +10,7 @@ require "dry/validation"
10
10
  #
11
11
  class Methodist::Interactor < Methodist::Pattern
12
12
  include Dry::Transaction
13
+ NEW_DRY_VALIDATION_V = '1.0.0'.freeze
13
14
 
14
15
  attr_accessor :validation_result
15
16
 
@@ -39,11 +40,22 @@ class Methodist::Interactor < Methodist::Pattern
39
40
  ##
40
41
  def schema(&block)
41
42
  if block_given?
42
- @input_schema = Dry::Validation.Schema(&block)
43
+ @input_schema = dry_schema(&block)
43
44
  else
44
45
  raise SchemaDefinitionError, 'You must pass block to `schema`'
45
46
  end
46
47
  end
48
+
49
+ private
50
+
51
+ def dry_schema(&block)
52
+ return Dry::Schema.Params(&block) if new_dry_validation?
53
+ Dry::Validation.Schema(&block)
54
+ end
55
+
56
+ def new_dry_validation?
57
+ Gem.loaded_specs['dry-validation'].version.to_s >= NEW_DRY_VALIDATION_V
58
+ end
47
59
  end
48
60
 
49
61
  ##
@@ -100,7 +112,7 @@ class Methodist::Interactor < Methodist::Pattern
100
112
  # Method for validation input of interactor parameters.
101
113
  ##
102
114
  def failure_validation_value
103
- field = validation_result.errors.keys.first
115
+ field = validation_result.errors.to_hash.keys.first
104
116
  {
105
117
  error: 'ValidationError',
106
118
  field: field,
@@ -108,7 +120,6 @@ class Methodist::Interactor < Methodist::Pattern
108
120
  }
109
121
  end
110
122
 
111
-
112
123
  class SchemaDefinitionError < StandardError; end
113
124
  class InputClassError < StandardError; end
114
125
  end
@@ -1,3 +1,3 @@
1
1
  module Methodist
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: methodist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Nesterov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-27 00:00:00.000000000 Z
11
+ date: 2019-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: dry-validation
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.13'
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
40
  version: '0.13'
41
41
  - !ruby/object:Gem::Dependency
@@ -170,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  - !ruby/object:Gem::Version
171
171
  version: '0'
172
172
  requirements: []
173
- rubygems_version: 3.0.4
173
+ rubygems_version: 3.0.6
174
174
  signing_key:
175
175
  specification_version: 4
176
176
  summary: Gem for Ruby on Rails created to stop chaos in your buisness logic.