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