class Fluent::Config::DSL::Proxy

Public Class Methods

new(name, arg) click to toggle source
# File lib/fluent/config/dsl.rb, line 38
def initialize(name, arg)
  @element = Element.new(name, arg, self)
end

Public Instance Methods

add_element(name, arg, block) click to toggle source
# File lib/fluent/config/dsl.rb, line 57
def add_element(name, arg, block)
  ::Kernel.raise ::ArgumentError, "#{name} block must be specified" if block.nil?

  proxy = self.class.new(name.to_s, arg)
  proxy.element.instance_exec(&block)

  @element.instance_eval do
    @elements.push(proxy.to_config_element)
  end

  self
end
element() click to toggle source
# File lib/fluent/config/dsl.rb, line 42
def element
  @element
end
eval(source, source_path) click to toggle source
# File lib/fluent/config/dsl.rb, line 46
def eval(source, source_path)
  @element.instance_eval(source, source_path)
  self
end
to_config_element() click to toggle source
# File lib/fluent/config/dsl.rb, line 51
def to_config_element
  @element.instance_eval do
    Config::Element.new(@name, @arg, @attrs, @elements)
  end
end