class Arsenicum::Configuration::ConfigurationHash

Public Instance Methods

in_configuration?() click to toggle source
# File lib/arsenicum/configuration.rb, line 169
def in_configuration?
  @in_configuration
end
method_missing(method_id, *args, &block) click to toggle source
Calls superclass method
# File lib/arsenicum/configuration.rb, line 180
def method_missing(method_id, *args, &block)
  case args.length
    when 0
      return self[method_id] unless in_configuration?

      if block_given?
        new_value = ConfigurationHash.new
        new_value.under_configuration do
          new_value.instance_eval &block
        end
        self[method_id] = new_value
      else
        self[method_id] ||= ConfigurationHash.new
      end
    when 1
      if (method_name = method_id.to_s)[-1] == '='
        return self[method_name[0...-1].to_sym] = args.first
      end

      self[method_id] = args.first
    else
      super
  end
end
under_configuration() { || ... } click to toggle source
# File lib/arsenicum/configuration.rb, line 173
def under_configuration(&_)
  @in_configuration = true
  yield if block_given?
ensure
  @in_configuration = false
end