fluentd-ui/app/models/fluentd/setting/config.rb

40 lines
806 B
Ruby

require 'fluent/config'
class Fluentd
module Setting
class Config
attr_reader :fl_config, :file
delegate :elements, to: :fl_config
def initialize(config_file)
@fl_config = Fluent::Config.parse(IO.read(config_file), config_file, nil, true)
@file = config_file
end
def empty?
elements.length.zero?
end
def sources
elements.find_all do |elm|
elm.name == "source"
end
end
def matches
elements.find_all do |elm|
elm.name == "match"
end
end
def write_to_file
File.open(file, "w"){|f| f.write formatted }
end
def formatted
fl_config.to_s.gsub(/<\/?ROOT>/, "").strip_heredoc.gsub(%r|^</.*?>$|, "\\0\n")
end
end
end
end