Parent

Class/Module Index [+]

Quicksearch

Fluent::Config::ConfigureProxy

Attributes

alias[RW]
argument[RW]
defaults[RW]
multi[RW]
name[RW]
param_name[RW]
params[RW]
required[RW]
sections[RW]

Public Class Methods

new(name, opts = {}) click to toggle source

config_param :desc, :string, :default => '....' config_set_default :buffer_type, :memory

config_section :default, required: true, multi: false do

config_argument :arg, :string
config_param :required, :bool, default: false
config_param :name, :string
config_param :power, :integer

end

config_section :child, param_name: 'children', required: false, multi: true, alias: 'node' do

config_param :name, :string
config_param :power, :integer, default: nil
config_section :item do
  config_param :name
end

end

# File lib/fluent/config/configure_proxy.rb, line 23
def initialize(name, opts = {})
  @name = name.to_sym

  @param_name = (opts[:param_name] || @name).to_sym
  @required = opts[:required]
  @multi = opts[:multi]
  @alias = opts[:alias]

  @argument = nil # nil: ignore argument
  @params = {}
  @defaults = {}
  @sections = {}
end

Public Instance Methods

config_argument(name, *args, &block) click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 95
def config_argument(name, *args, &block)
  if @argument
    raise ArgumentError, "config_argument called twice"
  end
  name, block, opts = parameter_configuration(name, *args, &block)

  @argument = [name, block, opts]
  name
end
config_param(name, *args, &block) click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 105
def config_param(name, *args, &block)
  name, block, opts = parameter_configuration(name, *args, &block)

  @sections.delete(name)
  @params[name] = [block, opts]
  name
end
config_section(name, *args, &block) click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 124
def config_section(name, *args, &block)
  unless block_given?
    raise ArgumentError, "config_section requires block parameter"
  end
  name = name.to_sym

  opts = {}
  unless args.empty? || args.size == 1 && args.first.is_a?(Hash)
    raise ArgumentError, "unknown config_section arguments: #{args.inspect}"
  end

  sub_proxy = ConfigureProxy.new(name, *args)
  sub_proxy.instance_exec(&block)

  @params.delete(name)
  @sections[name] = sub_proxy

  name
end
config_set_default(name, defval) click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 113
def config_set_default(name, defval)
  name = name.to_sym

  if @defaults.has_key?(name)
    raise ArgumentError, "default value specified twice for #{name}"
  end

  @defaults[name] = defval
  nil
end
merge(other) click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 45
def merge(other) # self is base class, other is subclass
  options = {
    param_name: other.param_name,
    required: (other.required.nil? ? self.required : other.required),
    multi: (other.multi.nil? ? self.multi : other.multi)
  }
  merged = self.class.new(other.name, options)

  merged.argument = other.argument || self.argument
  merged.params = self.params.merge(other.params)
  merged.defaults = self.defaults.merge(other.defaults)
  merged.sections = self.sections.merge(other.sections)

  merged
end
multi?() click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 41
def multi?
  @multi.nil? ? true : @multi
end
parameter_configuration(name, *args, &block) click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 61
def parameter_configuration(name, *args, &block)
  name = name.to_sym

  opts = {}
  args.each { |a|
    if a.is_a?(Symbol)
      opts[:type] = a
    elsif a.is_a?(Hash)
      opts.merge!(a)
    else
      raise ArgumentError, "wrong number of arguments (#{1 + args.length} for #{block ? 2 : 3})"
    end
  }

  type = opts[:type]
  if block && type
    raise ArgumentError, "both of block and type cannot be specified"
  end

  begin
    type = :string if type.nil?
    block ||= Configurable.lookup_type(type)
  rescue ConfigError
    # override error message
    raise ArgumentError, "unknown config_argument type `#{type}'"
  end

  if opts.has_key?(:default)
    config_set_default(name, opts[:default])
  end

  [name, block, opts]
end
required?() click to toggle source
# File lib/fluent/config/configure_proxy.rb, line 37
def required?
  @required.nil? ? false : @required
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.