class Tryouts::Drill
def initialize(name, dtype, *drill_args, &drill)
def initialize(name, dtype, *drill_args, &drill) @name, @dtype, @drill = name, dtype, drill @sergeant = hire_sergeant *drill_args # For CLI drills, a block takes precedence over inline args. # A block will contain multiple shell commands (see Rye::Box#batch) drill_args = [] if dtype == :cli && drill.is_a?(Proc) @reality = Tryouts::Drill::Reality.new end