Sha256: ff87e0ef242eb614b5edead0462e6c44f3d335d7081721ae35097fca28a3c365

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

module Putter
  class Configuration
    attr_accessor :allow_production, :methods_whitelist, :methods_blacklist, :print_strategy
    attr_writer :ignore_methods_from

    def initialize
      @ignore_methods_from = [Object]
      @ignore_methods_from << ActiveRecord::Base if defined?(ActiveRecord::Base)
      @print_strategy = PrintStrategy::Default
      @allow_production = false
      @methods_whitelist = []
      @methods_blacklist = []
    end

    def ignore_methods_from
      convert_to_array(@ignore_methods_from)
    end

    def methods_whitelist=(methods)
      raise ::Putter::MethodConflictError unless (@methods_blacklist & methods).empty?

      @methods_whitelist = methods
    end

    def methods_blacklist=(methods)
      raise ::Putter::MethodConflictError unless (@methods_whitelist & methods).empty?

      @methods_blacklist = methods
    end

    private

    def convert_to_array(val)
      if val.nil?
        []
      elsif !val.is_a?(Array)
        [val]
      else
        val
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
putter-0.6.1 lib/putter/configuration.rb
putter-0.6.0 lib/putter/configuration.rb
putter-0.5.1 lib/putter/configuration.rb
putter-0.5.0 lib/putter/configuration.rb