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
         
     |