Parent

Class/Module Index [+]

Quicksearch

Fluent::Config::DSL::Element

Public Class Methods

const_missing(name) click to toggle source
# File lib/fluent/config/dsl.rb, line 105
def self.const_missing(name)
  return ::Kernel.const_get(name) if ::Kernel.const_defined?(name)

  if name.to_s =~ /^Fluent::Config::DSL::Element::(.*)$/
    name = "#{$1}".to_sym
    return ::Kernel.const_get(name) if ::Kernel.const_defined?(name)
  end
  ::Kernel.eval("#{name}")
end
new(name, arg, proxy) click to toggle source
# File lib/fluent/config/dsl.rb, line 69
def initialize(name, arg, proxy)
  @name     = name
  @arg      = arg || ''
  @attrs    = {}
  @elements = []
  @proxy    = proxy
end

Public Instance Methods

match(*args, &block) click to toggle source
# File lib/fluent/config/dsl.rb, line 100
def match(*args, &block)
  ::Kernel.raise ::ArgumentError, "#{name} block requires arguments for match pattern" if args.nil? || args.size != 1
  @proxy.add_element('match', args.first, block)
end
method_missing(name, *args, &block) click to toggle source
# File lib/fluent/config/dsl.rb, line 77
def method_missing(name, *args, &block)
  ::Kernel.raise ::ArgumentError, "Configuration DSL Syntax Error: only one argument allowed" if args.size > 1
  value = args.first

  if block
    proxy = Proxy.new(name.to_s, value)
    proxy.element.instance_exec(&block)
    @elements.push(proxy.to_config_element)
  else
    @attrs[name.to_s] = if value.is_a?(Array) || value.is_a?(Hash)
                          JSON.dump(value)
                        else
                          value.to_s
                        end
  end

  self
end
ruby(&block) click to toggle source
# File lib/fluent/config/dsl.rb, line 115
def ruby(&block)
  if block
    @proxy.instance_exec(&block)
  else
    ::Kernel
  end
end
source(&block) click to toggle source
# File lib/fluent/config/dsl.rb, line 96
def source(&block)
  @proxy.add_element('source', nil, block)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.