class Meteorlog::DSL::Context

Attributes

result[R]

Public Class Methods

eval(dsl, path, opts = {}) click to toggle source
# File lib/meteorlog/dsl/context.rb, line 6
def eval(dsl, path, opts = {})
  self.new(path, opts) {
    eval(dsl, binding, path)
  }
end
new(path, options = {}, &block) click to toggle source
# File lib/meteorlog/dsl/context.rb, line 15
def initialize(path, options = {}, &block)
  @path = path
  @options = options
  @result = OpenStruct.new(:log_groups => [])
  @log_group_names = []
  instance_eval(&block)
end

Private Instance Methods

log_group(name, &block) click to toggle source
# File lib/meteorlog/dsl/context.rb, line 41
def log_group(name, &block)
  _required(:log_group_name, name)
  _validate("LogGroup `#{name}` is already defined") do
    not @log_group_names.include?(name)
  end

  @result.log_groups << Meteorlog::DSL::Context::LogGroup.new(name, &block).result
  @log_group_names << name
end
require(file) click to toggle source
# File lib/meteorlog/dsl/context.rb, line 29
def require(file)
  logsfile = (file =~ %r|\A/|) ? file : File.expand_path(File.join(File.dirname(@path), file))

  if File.exist?(logsfile)
    instance_eval(File.read(logsfile), logsfile)
  elsif File.exist?(logsfile + '.rb')
    instance_eval(File.read(logsfile + '.rb'), logsfile + '.rb')
  else
    Kernel.require(file)
  end
end
template(name, &block) click to toggle source
# File lib/meteorlog/dsl/context.rb, line 25
def template(name, &block)
  @context.templates[name.to_s] = block
end