Class: Enola::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/enola/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(resolver: Enola.resolver, channel: Enola.channel, stderr: $stderr) ⇒ Runner

Returns a new instance of Runner.



5
6
7
8
9
# File 'lib/enola/runner.rb', line 5

def initialize(resolver: Enola.resolver, channel: Enola.channel, stderr: $stderr)
  @resolver = resolver
  @channel = channel
  @stderr = stderr
end

Instance Method Details

#command(argv) ⇒ Object



11
12
13
14
15
16
# File 'lib/enola/runner.rb', line 11

def command(argv)
  found = @resolver.resolve
  Providers.ensure_rubydex(found.path, channel: @channel, stderr: @stderr)
  @stderr.puts "enola: #{@channel} via #{found.source} (#{found.path})" if argv.include?("--verbose")
  [found.path, *argv]
end

#exec(argv) ⇒ Object



23
24
25
# File 'lib/enola/runner.rb', line 23

def exec(argv)
  Kernel.exec(*command(argv))
end

#run(argv) ⇒ Object



18
19
20
21
# File 'lib/enola/runner.rb', line 18

def run(argv)
  system(*command(argv))
  $?.exitstatus || 1
end