dry_validation_parser 0.1.0 → 0.1.1
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 +1 -9
- data/lib/dry_validation_parser/validation_schema_parser.rb +2 -3
- data/lib/dry_validation_parser/version.rb +1 -1
- data/lib/dry_validation_parser.rb +0 -2
- metadata +1 -4
- data/lib/dry_validation_parser/config/configuration.rb +0 -31
- data/lib/dry_validation_parser/config/validation_configuration.rb +0 -15
- data/lib/dry_validation_parser/tasks/configuration_generator.rake +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ae5d37465ad9e23b7ff15191e76c32780ab320e3e8a0496ebeb5b51711c5ca6
|
4
|
+
data.tar.gz: 233e4b2a09271322dc5cbafc61efdec8f94ef976e5acb0f617f754cd2271435b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd74a3713de2c0c7e55d46be3d36ae7d36cf95de79cbe8fed659b2c441ecf6944d6efd2778db3fa4811aabb400cd12fe3d696456f5f203c011bd1baa9e18a8b6
|
7
|
+
data.tar.gz: ec02786aefd240bbe2a455728e0ae018ce2faeda78409fe213987bd39cbda02e2653e2c77d4c44f3ea471b367ba772a67518ba2d323582d99285ca58e9796cdd
|
data/README.md
CHANGED
@@ -15,12 +15,6 @@ And then execute:
|
|
15
15
|
|
16
16
|
bundle install
|
17
17
|
|
18
|
-
After installing, execute the following command:
|
19
|
-
|
20
|
-
rake dry_validation_parser:install
|
21
|
-
|
22
|
-
This will generate configuration files in your project under `project/config/initializers`. See Configuration section for more details.
|
23
|
-
|
24
18
|
## Usage
|
25
19
|
|
26
20
|
#### Parsing a Dry::Validation::Contract
|
@@ -70,7 +64,7 @@ Lets say we have the following Dry::Validation::Contract definition:
|
|
70
64
|
:keys => {
|
71
65
|
:some_nested_attribute => {
|
72
66
|
:required => false,
|
73
|
-
:
|
67
|
+
:nullable =>true,
|
74
68
|
:type=>"string"
|
75
69
|
}
|
76
70
|
}
|
@@ -83,8 +77,6 @@ schema and generates a hash. The hash is saved in the `keys` attribute of the pa
|
|
83
77
|
The required key in our result will be set to `true` if the field is defined as
|
84
78
|
`required(:field_name)`, and `false` if defined as `optional(:field_name)`.
|
85
79
|
|
86
|
-
The "x-nullable" key depends on whether we have defined the field as value, maybe or filled.
|
87
|
-
|
88
80
|
For nested objects like array of objects or hash, we add a keys field with a definition
|
89
81
|
for each field inside the nested hash.
|
90
82
|
|
@@ -22,7 +22,6 @@ module DryValidationParser
|
|
22
22
|
# @api private
|
23
23
|
def initialize
|
24
24
|
@keys = {}
|
25
|
-
@config = Config::ValidationConfiguration
|
26
25
|
end
|
27
26
|
|
28
27
|
# @api private
|
@@ -70,7 +69,7 @@ module DryValidationParser
|
|
70
69
|
def visit_or(_, _); end
|
71
70
|
|
72
71
|
def visit_not(_node, opts = {})
|
73
|
-
keys[opts[:key]][
|
72
|
+
keys[opts[:key]][:nullable] = true
|
74
73
|
end
|
75
74
|
|
76
75
|
# @api private
|
@@ -104,7 +103,7 @@ module DryValidationParser
|
|
104
103
|
keys[key][:array] = true
|
105
104
|
elsif name.equal?(:included_in?)
|
106
105
|
keys[key][:enum] = rest[0][1]
|
107
|
-
keys[key][:enum] += [nil] if opts.fetch(
|
106
|
+
keys[key][:enum] += [nil] if opts.fetch(:nullable, false)
|
108
107
|
elsif PREDICATE_TO_TYPE[name]
|
109
108
|
keys[key][:type] = PREDICATE_TO_TYPE[name]
|
110
109
|
end
|
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
require_relative "dry_validation_parser/version"
|
4
4
|
require_relative "dry_validation_parser/validation_schema_parser"
|
5
|
-
require_relative "dry_validation_parser/config/configuration"
|
6
|
-
require_relative "dry_validation_parser/config/validation_configuration"
|
7
5
|
require_relative "dry_validation_parser/railtie" if defined?(Rails)
|
8
6
|
|
9
7
|
module DryValidationParser
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry_validation_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jane-Terziev
|
@@ -55,10 +55,7 @@ files:
|
|
55
55
|
- README.md
|
56
56
|
- Rakefile
|
57
57
|
- lib/dry_validation_parser.rb
|
58
|
-
- lib/dry_validation_parser/config/configuration.rb
|
59
|
-
- lib/dry_validation_parser/config/validation_configuration.rb
|
60
58
|
- lib/dry_validation_parser/railtie.rb
|
61
|
-
- lib/dry_validation_parser/tasks/configuration_generator.rake
|
62
59
|
- lib/dry_validation_parser/types.rb
|
63
60
|
- lib/dry_validation_parser/validation_schema_parser.rb
|
64
61
|
- lib/dry_validation_parser/version.rb
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module DryValidationParser
|
4
|
-
module Config
|
5
|
-
module Configuration
|
6
|
-
def configuration
|
7
|
-
yield self
|
8
|
-
end
|
9
|
-
|
10
|
-
def define_setting(name, default = nil)
|
11
|
-
class_variable_set("@@#{name}", default)
|
12
|
-
|
13
|
-
define_class_method "#{name}=" do |value|
|
14
|
-
class_variable_set("@@#{name}", value)
|
15
|
-
end
|
16
|
-
|
17
|
-
define_class_method name do
|
18
|
-
class_variable_get("@@#{name}")
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def define_class_method(name, &block)
|
25
|
-
(class << self; self; end).instance_eval do
|
26
|
-
define_method name, &block
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module DryValidationParser
|
4
|
-
module Config
|
5
|
-
module ValidationConfiguration
|
6
|
-
extend Configuration
|
7
|
-
|
8
|
-
define_setting :enable_required_validation, true
|
9
|
-
define_setting :enable_nullable_validation, true
|
10
|
-
define_setting :enable_enums, true
|
11
|
-
define_setting :enable_descriptions, true
|
12
|
-
define_setting :nullable_type, :"x-nullable"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "fileutils"
|
4
|
-
|
5
|
-
namespace "dry_validation_parser" do
|
6
|
-
desc "Create a configuration file for Dry Validation"
|
7
|
-
task :create_configuration_file do
|
8
|
-
FileUtils.mkdir_p "#{Dir.pwd}/config/initializers/"
|
9
|
-
puts "Created #{Dir.pwd}/config/initializers/dry_validation_parser.rb"
|
10
|
-
File.open("#{Dir.pwd}/config/initializers/dry_validation_parser.rb", "w") do |file|
|
11
|
-
file.puts 'DryValidationParser::Config::ValidationConfiguration.configuration do |config|
|
12
|
-
config.enable_required_validation = true
|
13
|
-
config.enable_nullable_validation = true
|
14
|
-
config.enable_enums = true
|
15
|
-
config.enable_descriptions = true
|
16
|
-
config.nullable_type = :"x-nullable" # or :nullable
|
17
|
-
end'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
desc "Create a YAML file for Dry Validation field descriptions"
|
22
|
-
task :create_validation_descriptions_yaml do
|
23
|
-
FileUtils.mkdir_p "#{Dir.pwd}/config/locales/"
|
24
|
-
puts "Created #{Dir.pwd}/config/locales/dry_validation_parser.yml"
|
25
|
-
File.open("#{Dir.pwd}/config/locales/dry_validation_parser.yml", "w") do |file|
|
26
|
-
file.puts 'en:
|
27
|
-
validation:
|
28
|
-
descriptions:
|
29
|
-
eql?: "Must be equal to %<value>s"
|
30
|
-
max_size?: "Maximum size: %<value>s"
|
31
|
-
min_size?: "Minimum size: %<value>s"
|
32
|
-
gteq?: "Greater than or equal to %<value>s"
|
33
|
-
gt?: "Greater than %<value>s"
|
34
|
-
lt?: "Lower than %<value>s"
|
35
|
-
lteq?: "Lower than or equal to %<value>s"
|
36
|
-
'
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Creates configuration files"
|
41
|
-
task :install do
|
42
|
-
Rake::Task["dry_validation_parser:create_configuration_file"].execute
|
43
|
-
Rake::Task["dry_validation_parser:create_validation_descriptions_yaml"].execute
|
44
|
-
end
|
45
|
-
end
|