class Puma::LeveledOptions

Attributes

cur[R]

Public Class Methods

new(default_options, user_options) click to toggle source
# File lib/puma/configuration.rb, line 16
def initialize(default_options, user_options)
  @cur = user_options
  @set = [@cur]
  @defaults = default_options.dup
end

Public Instance Methods

[](key) click to toggle source
# File lib/puma/configuration.rb, line 32
def [](key)
  @set.each do |o|
    if o.key? key
      return o[key]
    end
  end

  v = @defaults[key]
  if v.respond_to? :call
    v.call
  else
    v
  end
end
[]=(key, val) click to toggle source
# File lib/puma/configuration.rb, line 71
def []=(key, val)
  @cur[key] = val
end
all_of(key) click to toggle source
# File lib/puma/configuration.rb, line 55
def all_of(key)
  all = []

  @set.each do |o|
    if v = o[key]
      if v.kind_of? Array
        all += v
      else
        all << v
      end
    end
  end

  all
end
explain() click to toggle source
# File lib/puma/configuration.rb, line 103
def explain
  indent = ""

  @set.each do |o|
    o.keys.sort.each do |k|
      puts "#{indent}#{k}: #{o[k].inspect}"
    end

    indent = "  #{indent}"
  end
end
fetch(key, default=nil) click to toggle source
# File lib/puma/configuration.rb, line 47
def fetch(key, default=nil)
  val = self[key]
  return val if val
  default
end
flatten() click to toggle source
# File lib/puma/configuration.rb, line 91
def flatten
  options = {}

  @set.each do |o|
    o.each do |k,v|
      options[k] ||= v
    end
  end

  options
end
force_defaults() click to toggle source
# File lib/puma/configuration.rb, line 115
def force_defaults
  @defaults.each do |k,v|
    if v.respond_to? :call
      @defaults[k] = v.call
    end
  end
end
initialize_copy(other) click to toggle source
# File lib/puma/configuration.rb, line 22
def initialize_copy(other)
  @set = @set.map { |o| o.dup }
  @cur = @set.last
end
key?(key) click to toggle source
# File lib/puma/configuration.rb, line 75
def key?(key)
  @set.each do |o|
    if o.key? key
      return true
    end
  end

  @default.key? key
end
merge!(o) click to toggle source
# File lib/puma/configuration.rb, line 85
def merge!(o)
  o.each do |k,v|
    @cur[k]= v
  end
end
shift() click to toggle source
# File lib/puma/configuration.rb, line 27
def shift
  @cur = {}
  @set << @cur
end