Class: Benedictus::CLI

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.dispatchable_directly?(arg) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
# File 'lib/benedictus/cli.rb', line 23

def dispatchable_directly?(arg)
  return true if all_tasks.key?(arg.to_s)
  return true if arg == "help"

  # Match Thor-style flags: -x, --foo, --foo-bar.
  # Does NOT match expressions starting with `-`, e.g. `-1.times`, `-User.count`.
  arg.match?(/\A--?[a-zA-Z][\w-]*\z/)
end

.exit_on_failure?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/benedictus/cli.rb', line 11

def exit_on_failure?
  true
end

.start(given_args = ARGV, config = {}) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/benedictus/cli.rb', line 15

def start(given_args = ARGV, config = {})
  args = Array(given_args)
  return super if args.empty?
  return super if dispatchable_directly?(args.first)

  super(["explain", *args], config)
end

Instance Method Details

#explain(expression) ⇒ Object



60
61
62
63
64
# File 'lib/benedictus/cli.rb', line 60

def explain(expression)
  Benedictus::Runner.new(expression: expression, options: options).call
rescue Benedictus::Error => e
  handle_error(e)
end

#versionObject



67
68
69
# File 'lib/benedictus/cli.rb', line 67

def version
  puts Benedictus::VERSION
end