Sha256: 7d8ce0895dc1f022fdb673872c0002e94b0b290059411fcf56187de4e87afe30

Contents?: true

Size: 806 Bytes

Versions: 2

Compression:

Stored size: 806 Bytes

Contents

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluentd-ui-0.3.10 app/models/fluentd/setting/config.rb
fluentd-ui-0.3.9 app/models/fluentd/setting/config.rb