class Cl::Runner::Multi

Attributes

cmds[R]
ctx[R]

Public Class Methods

new(ctx, *args) click to toggle source
# File lib/cl/runner/multi.rb, line 8
def initialize(ctx, *args)
  @ctx = ctx
  @cmds = build(group(args))
end

Public Instance Methods

run() click to toggle source
# File lib/cl/runner/multi.rb, line 13
def run
  cmds.map(&:run)
end

Private Instance Methods

build(cmds) click to toggle source
# File lib/cl/runner/multi.rb, line 27
def build(cmds)
  cmds.map do |(cmd, *args)|
    cmd.new(ctx, args)
  end
end
group(args, cmds = []) click to toggle source
# File lib/cl/runner/multi.rb, line 19
def group(args, cmds = [])
  args.flatten.map(&:to_s).inject([[]]) do |cmds, arg|
    cmd = Cmd.registered?(arg) ? Cmd[arg] : nil
    cmd ? cmds << [cmd] : cmds.last << arg
    cmds.reject(&:empty?)
  end
end