Add primitive Fluentd::Configuration class

This commit is contained in:
uu59 2014-05-12 14:50:30 +09:00
parent 9b317602b6
commit 07ea7befb8
2 changed files with 34 additions and 1 deletions

View File

@ -92,7 +92,7 @@ class Fluentd
end
def config
File.read config_file # TODO: Use Fluent::Engine or Fluent::V1Config
::Fluentd::Configuration.new(config_file)
end
private

View File

@ -0,0 +1,33 @@
require 'fluent/config/v1_parser'
class Fluentd
class Configuration
include Enumerable
attr_reader :file
def initialize(config_file)
@file = config_file
end
def config
@config ||= ::Fluent::Config::V1Parser.read(file)
end
def to_s
config.to_s.gsub(/\A<ROOT>\n/, "").gsub(/<\/ROOT>\n\z/, "").gsub(/^ {2}/, "")
end
def each(&block)
config.each_element(&block)
end
def sources
find_all{|e| e.name == "source"}
end
def matches
find_all{|e| e.name == "match"}
end
end
end