Sha256: 921bb61289958cc92f69d3e1eaddd068a0b1db311bbc3f8e524ae40332c8e62f

Contents?: true

Size: 953 Bytes

Versions: 4

Compression:

Stored size: 953 Bytes

Contents

require 'singleton'

module Judge
  class Config
    include Singleton

    @@exposed = {}
    @@ignore_unsupported_validators = false

    def expose(klass, *attributes)
      attrs = (@@exposed[klass] ||= [])
      attrs.concat(attributes).uniq!
    end

    def exposed
      @@exposed
    end

    def exposed?(klass, attribute)
      @@exposed.has_key?(klass) && @@exposed[klass].include?(attribute)
    end

    def unexpose(klass, *attributes)
      attributes.each do |a|
        @@exposed[klass].delete(a)
      end
      if attributes.empty? || @@exposed[klass].empty?
        @@exposed.delete(klass)
      end
    end
    
    def ignore_unsupported_validators(status)
      @@ignore_unsupported_validators = status
    end

    def ignore_unsupported_validators?
      @@ignore_unsupported_validators
    end
  end

  def self.config
    Config.instance
  end

  def self.configure(&block)
    Config.instance.instance_eval(&block)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
judge-2.1.1 lib/judge/config.rb
judge-2.1.0 lib/judge/config.rb
judge-2.0.6 lib/judge/config.rb
judge-2.0.5 lib/judge/config.rb