class Meteorlog::DSL::Converter

Public Class Methods

convert(exported, opts = {}) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 3
def convert(exported, opts = {})
  self.new(exported, opts).convert
end
new(exported, options = {}) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 8
def initialize(exported, options = {})
  @exported = exported
  @options = options
end

Public Instance Methods

convert() click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 13
def convert
  @exported.each.map {|log_group_name, log_group_attrs|
    output_log_group(log_group_name, log_group_attrs)
  }.join("\n")
end

Private Instance Methods

output_log_group(log_group_name, log_group_attrs) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 21
  def output_log_group(log_group_name, log_group_attrs)
    log_group_name = log_group_name.inspect
    buf = []
    streams = log_group_attrs[:log_streams]
    buf << output_streams(streams, :prefix => '  ') if streams
    metric_filters = (log_group_attrs[:metric_filters] || [])
    buf << output_metric_filters(metric_filters, :prefix => '  ') unless metric_filters.empty?

    <<-EOS
log_group #{log_group_name} do
  #{buf.join("\n\n  ")}
end
    EOS
  end
output_metric_filters(metric_filters, opts = {}) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 44
def output_metric_filters(metric_filters, opts = {})
  prefix = opts[:prefix]

  metric_filters.map {|metric_filter_name, metric_filter_attrs|
    metric_filter_name = metric_filter_name.inspect
    filter_pattern = metric_filter_attrs[:filter_pattern]
    metrics = metric_filter_attrs[:metric_transformations] || []

    buf = []
    buf << "metric_filter #{metric_filter_name} do"
    buf << "  filter_pattern #{filter_pattern.inspect}" if filter_pattern
    buf << "  " + output_metrics(metrics, :prefix => prefix + '  ') unless metrics.empty?
    buf << "end"
    buf.join("\n#{prefix}")
  }.join("\n\n#{prefix}")
end
output_metrics(metrics, opts = {}) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 61
def output_metrics(metrics, opts = {})
  prefix = opts[:prefix]

  metrics.map {|metric|
    metric_attrs = unbrace({
      :name => metric[:metric_name],
      :namespace => metric[:metric_namespace],
      :value => metric[:metric_value],
    }.inspect)

    "metric #{metric_attrs}"
  }.join("\n#{prefix}")
end
output_streams(streams, opts = {}) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 36
def output_streams(streams, opts = {})
  prefix = opts[:prefix]

  streams.map {|stream|
    "log_stream #{stream.inspect}"
  }.join("\n#{prefix}")
end
unbrace(str) click to toggle source
# File lib/meteorlog/dsl/converter.rb, line 75
def unbrace(str)
  str.sub(/\A\s*\{/, '').sub(/\}\s*\z/, '')
end