Class: Sapluuna::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/sapluuna/cli.rb

Constant Summary collapse

ROOT =
'.'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCLI

Returns a new instance of CLI.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/sapluuna/cli.rb', line 16

def initialize
  @opts   = opts_parse
  args    = @opts.arguments
  @file   = args.shift
  @labels = @opts[:label].split(/[,\s]+/) if @opts[:label]
  @vars   = {}
  @disco  = @opts[:variables]
  args.each do |var|
    name, value = var.split '='
    @vars[name.to_sym] = value
  end
  if @opts.debug?
    @debug = true
    Log.level = Logger::DEBUG
  end
end

Instance Attribute Details

#debugObject (readonly)

Returns the value of attribute debug.



14
15
16
# File 'lib/sapluuna/cli.rb', line 14

def debug
  @debug
end

Instance Method Details

#runObject



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/sapluuna/cli.rb', line 33

def run
  raise MissingOption, 'File is mandatory argument' unless @file
  sap = Sapluuna.new labels: @labels, variables: @vars,
                     discover_variables: @disco,
                     root_directory: (@opts[:root] or ROOT)
  cfg = sap.parse File.read(@file)
  puts @disco ? sap.discovered_variables.keys : cfg
rescue => error
  crash error
  raise
end