Class: Cfer::Auster::ScriptExecutor

Inherits:
Object
  • Object
show all
Defined in:
lib/cfer/auster/script_executor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(consts) ⇒ ScriptExecutor

Returns a new instance of ScriptExecutor.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/cfer/auster/script_executor.rb', line 6

def initialize(consts)
  raise "consts must be a Hash" unless consts.is_a?(Hash)

  vars = []
  consts.each_pair do |k, v|
    key_name = k.downcase.to_sym
    vars << key_name
    define_singleton_method(key_name) { v }
  end

  define_singleton_method(:vars) { vars }
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



4
5
6
# File 'lib/cfer/auster/script_executor.rb', line 4

def logger
  @logger
end

Instance Method Details

#run(filename) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/cfer/auster/script_executor.rb', line 19

def run(filename)
  @logger = Logger.new(Cfer::Auster::Logging.logdev)
  @logger.level = Cfer::Auster::Logging.logger.level

  basename = File.basename(filename)
  standard_formatter = Logger::Formatter.new

  logger.formatter = proc do |severity, datetime, progname, msg|
    standard_formatter.call(severity, datetime, progname, "> #{basename}: #{msg}")
  end

  instance_eval IO.read(filename), filename
end