Class: Benedictus::CLI
- Inherits:
-
Thor
- Object
- Thor
- Benedictus::CLI
- Defined in:
- lib/benedictus/cli.rb
Class Method Summary collapse
- .dispatchable_directly?(arg) ⇒ Boolean
- .exit_on_failure? ⇒ Boolean
- .start(given_args = ARGV, config = {}) ⇒ Object
Instance Method Summary collapse
Class Method Details
.dispatchable_directly?(arg) ⇒ 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
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: ).call rescue Benedictus::Error => e handle_error(e) end |
#version ⇒ Object
67 68 69 |
# File 'lib/benedictus/cli.rb', line 67 def version puts Benedictus::VERSION end |