Sha256: 0c331fac0bf5d211522ad224b96e4cc6258a5e404de7cb6dad7a48a876400cfb

Contents?: true

Size: 788 Bytes

Versions: 10

Compression:

Stored size: 788 Bytes

Contents

# frozen_string_literal: true

require 'dry/validation/constants'
require 'dry/validation/function'

module Dry
  module Validation
    # A wrapper for macro validation blocks
    #
    # @api public
    class Macro < Function
      # @!attribute [r] name
      #   @return [Symbol]
      #   @api public
      param :name

      # @!attribute [r] args
      #   @return [Array]
      #   @api public
      option :args

      # @!attribute [r] block
      #   @return [Proc]
      #   @api private
      option :block

      # @api private
      def with(args)
        self.class.new(name, args: args, block: block)
      end

      # @api private
      def extract_block_options(options)
        block_options.map { |key, value| [key, options[value]] }.to_h
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
dry-validation-1.4.2 lib/dry/validation/macro.rb
dry-validation-1.4.1 lib/dry/validation/macro.rb
dry-validation-1.4.0 lib/dry/validation/macro.rb
dry-validation-1.3.1 lib/dry/validation/macro.rb
dry-validation-1.3.0 lib/dry/validation/macro.rb
dry-validation-1.2.1 lib/dry/validation/macro.rb
dry-validation-1.2.0 lib/dry/validation/macro.rb
dry-validation-1.1.1 lib/dry/validation/macro.rb
dry-validation-1.1.0 lib/dry/validation/macro.rb
dry-validation-1.0.0 lib/dry/validation/macro.rb