Sha256: 3fc0c6bcb1050adb9e168fab3a8020b0f31b5b985ae4a4af00643375c439ea99

Contents?: true

Size: 772 Bytes

Versions: 6

Compression:

Stored size: 772 Bytes

Contents

# frozen_string_literal: true

module ValidateParams
  module Validatable
    class ParamBuilder
      def initialize(parent_field: nil, validations:)
        @parent_field = parent_field
        @validations = validations
      end

      def param(field, type, options = {}, &block)
        if block
          yield(ParamBuilder.new(parent_field: field, validations: @validations))
        else
          @validations << build_config(field, type, options)
        end
      end

      private
        def build_config(field, type, options)
          if @parent_field.nil?
            { field: field, type: type, options: options }
          else
            { field: { @parent_field => field }, type: type, options: options }
          end
        end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
validate-params-0.11.0 lib/validate_params/param_builder.rb
validate-params-0.10.1 lib/validate_params/param_builder.rb
validate-params-0.10.0 lib/validate_params/param_builder.rb
validate-params-0.9.0 lib/validate_params/param_builder.rb
validate-params-0.8.1 lib/validate_params/param_builder.rb
validate-params-0.8.0 lib/validate_params/param_builder.rb