Sha256: e54203f64499f530d50287ea1ccda2149f7d5081b62ec2b9c03e7fe36edd53d3

Contents?: true

Size: 1.8 KB

Versions: 4

Compression:

Stored size: 1.8 KB

Contents

require 'valle/configuration'

module Valle
  extend Configuration

  # core
  autoload :Manager, 'valle/manager'
  autoload :ValidationSetter, 'valle/validation_setter'

  # extensions
  module AbstractAdapter
    autoload :ColumnWrapper, 'valle/abstract_adapter/column_wrapper'
    autoload :AbstractColumn, 'valle/abstract_adapter/abstract_column'
    autoload :ByteLimitedColumn, 'valle/abstract_adapter/byte_limited_column'
    autoload :CharacterLimitedColumn, 'valle/abstract_adapter/character_limited_column'
    autoload :UnlimitedColumn, 'valle/abstract_adapter/unlimited_column'
  end

  # hooks
  autoload :Hooks, 'valle/hooks'

  class << self

    ##
    # Is gem enabled (true by default)
    #
    # @see Valle::Configuration
    #
    def enabled?
      options[:enabled]
    end

    ##
    # Can we process this model
    #
    # If the user turned gem on only for certain models,
    # we need to check whether the model is in the list.
    #
    # @param [String] model_name the model name
    # @see Valle::Configuration
    #
    def can_process_model?(model_name)
      options[:models].nil? ||
        options[:models].is_a?(Array) && options[:models].include?(model_name)
    end

    ##
    # Can we process this attribute
    #
    # If the user wants to skip some attributes, we need to check
    # whether we should add validators to column or not.
    #
    # @param [String] model_name model name
    # @param [String] attribute attribute name
    # @see Valle::Configuration
    #
    def can_process_column?(model_name, attribute)
      !options[:attributes].has_key?(model_name) ||
        options[:attributes][model_name].is_a?(Array) && options[:attributes][model_name].include?(attribute)
    end
  end
end

# if not using Railtie, call `Valle::Hooks.init` directly
require 'valle/railtie' if defined? Rails

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
valle-0.2.3 lib/valle.rb
valle-0.2.2 lib/valle.rb
valle-0.2.1 lib/valle.rb
valle-0.2.0 lib/valle.rb