Class: Meteorlog::DSL::Context::LogGroup

Inherits:
Object
  • Object
show all
Includes:
Validator, TemplateHelper
Defined in:
lib/meteorlog/dsl/context/log_group.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from TemplateHelper

#context, #include_template

Methods included from Validator

#_call_once, #_expected_length, #_expected_type, #_identify, #_required, #_validate

Constructor Details

#initialize(name, &block) ⇒ LogGroup

Returns a new instance of LogGroup.



7
8
9
10
11
12
13
14
15
# File 'lib/meteorlog/dsl/context/log_group.rb', line 7

def initialize(name, &block)
  @error_identifier = "LogGroup `#{name}`"
  @result = OpenStruct.new(
    :log_group_name => name,
    :log_streams => [],
    :metric_filters => [],
  )
  instance_eval(&block)
end

Instance Attribute Details

#resultObject (readonly)

Returns the value of attribute result.



5
6
7
# File 'lib/meteorlog/dsl/context/log_group.rb', line 5

def result
  @result
end

Instance Method Details

#any_log_streamsObject



17
18
19
20
# File 'lib/meteorlog/dsl/context/log_group.rb', line 17

def any_log_streams
  _call_once(:any_log_streams)
  @result.any_log_streams = true
end

#log_stream(name) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/meteorlog/dsl/context/log_group.rb', line 22

def log_stream(name)
  _required(:log_stream_name, name)
  _validate("LogStream `#{name}` is already defined") do
    @result.log_streams.all? {|i| i.log_stream_name != name }
  end

  @result.log_streams << OpenStruct.new(:log_stream_name => name)
end

#metric_filter(name, &block) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/meteorlog/dsl/context/log_group.rb', line 31

def metric_filter(name, &block)
  _required(:filter_name, name)
  _validate("MetricFilter `#{name}` is already defined") do
    @result.metric_filters.all? {|i| i.filter_name != name }
  end

  @result.metric_filters << Meteorlog::DSL::Context::MetricFilter.new(name, @result.log_group_name, &block).result
end