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