# frozen_string_literal: true require 'yaml' require 'json' require 'erb' # @api public # @since 0.1.0 module Qonfig require_relative 'qonfig/errors' require_relative 'qonfig/loaders' require_relative 'qonfig/uploaders' require_relative 'qonfig/commands' require_relative 'qonfig/command_set' require_relative 'qonfig/validation' require_relative 'qonfig/settings' require_relative 'qonfig/dsl' require_relative 'qonfig/data_set' require_relative 'qonfig/configurable' require_relative 'qonfig/imports' require_relative 'qonfig/plugins' require_relative 'qonfig/compacted' # @api public # @since 0.4.0 extend Plugins::AccessMixin # @api public # @since 0.20.0 extend Validation::PredefinitionMixin # @since 0.20.0 define_validator(:integer) { |value| value.is_a?(Integer) } # @since 0.20.0 define_validator(:float) { |value| value.is_a?(Float) } # @since 0.20.0 define_validator(:numeric) { |value| value.is_a?(Numeric) } # @since 0.20.0 define_validator(:string) { |value| value.is_a?(String) } # @since 0.20.0 define_validator(:symbol) { |value| value.is_a?(Symbol) } # @since 0.20.0 define_validator(:text) { |value| value.is_a?(Symbol) || value.is_a?(String) } # @since 0.20.0 define_validator(:array) { |value| value.is_a?(Array) } # @since 0.20.0 define_validator(:hash) { |value| value.is_a?(Hash) } # @since 0.20.0 define_validator(:big_decimal) { |value| value.is_a?(BigDecimal) } # @since 0.20.0 define_validator(:boolean) { |value| value.is_a?(TrueClass) || value.is_a?(FalseClass) } # @since 0.20.0 define_validator(:proc) { |value| value.is_a?(Proc) } # @since 0.20.0 define_validator(:class) { |value| value.is_a?(Class) } # @since 0.20.0 define_validator(:module) { |value| value.is_a?(Module) } # @since 0.20.0 define_validator(:not_nil) { |value| !value.nil? } # @since 0.12.0 register_plugin('toml', Qonfig::Plugins::TOML) # @since 0.19.0 register_plugin('pretty_print', Qonfig::Plugins::PrettyPrint) end