Sha256: 89b83558f6692229a2054b614ecb144e372b3ac4571af82cbc6018a1b2d86a3f

Contents?: true

Size: 1.4 KB

Versions: 5

Compression:

Stored size: 1.4 KB

Contents

# frozen_string_literal: true

# @api private
# @since 0.13.0
module Qonfig::Validator::DSL
  class << self
    # @param child_klass [Qonfig::DataSet]
    # @return [void]
    #
    # @api private
    # @since 0.13.0
    def extended(child_klass)
      child_klass.instance_variable_set(:@validators, Qonfig::Validator::Collection.new)

      child_klass.singleton_class.prepend(Module.new do
        def inherited(child_klass)
          child_klass.instance_variable_set(:@validators, Qonfig::Validator::Collection.new)
          child_klass.validators.concat(validators)
          super
        end
      end)
    end
  end

  # @return [Qonfig::Validator::Collection]
  #
  # @api private
  # @since 0.13.0
  def validators
    @validators
  end

  # @param setting_key_pattern [String, Symbol, NilClass]
  # @param predefined [String, Symbol]
  # @option by [String, Symbol, NilClass]
  # @option stict [Boolean]
  # @param custom_validation [Proc]
  # @return [void]
  #
  # @see Qonfig::Validator::Builder
  #
  # @api private
  # @since 0.13.0
  def validate(
    setting_key_pattern = nil,
    predefined = nil,
    strict: false,
    by: nil,
    &custom_validation
  )
    validators << Qonfig::Validator::Builder.build(
      setting_key_pattern: setting_key_pattern,
      predefined_validator: predefined,
      runtime_validation_method: by,
      strict: strict,
      validation_logic: custom_validation
    )
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
qonfig-0.19.1 lib/qonfig/validator/dsl.rb
qonfig-0.19.0 lib/qonfig/validator/dsl.rb
qonfig-0.18.1 lib/qonfig/validator/dsl.rb
qonfig-0.18.0 lib/qonfig/validator/dsl.rb
qonfig-0.17.0 lib/qonfig/validator/dsl.rb