Class: Textus::CLI
- Inherits:
-
Object
- Object
- Textus::CLI
- Defined in:
- lib/textus/cli.rb,
lib/textus/cli/mv.rb,
lib/textus/cli/get.rb,
lib/textus/cli/put.rb,
lib/textus/cli/uid.rb,
lib/textus/cli/deps.rb,
lib/textus/cli/init.rb,
lib/textus/cli/list.rb,
lib/textus/cli/verb.rb,
lib/textus/cli/build.rb,
lib/textus/cli/group.rb,
lib/textus/cli/intro.rb,
lib/textus/cli/rdeps.rb,
lib/textus/cli/stale.rb,
lib/textus/cli/where.rb,
lib/textus/cli/accept.rb,
lib/textus/cli/action.rb,
lib/textus/cli/delete.rb,
lib/textus/cli/doctor.rb,
lib/textus/cli/schema.rb,
lib/textus/cli/migrate.rb,
lib/textus/cli/refresh.rb,
lib/textus/cli/key_group.rb,
lib/textus/cli/published.rb,
lib/textus/cli/extensions.rb,
lib/textus/cli/schema_diff.rb,
lib/textus/cli/schema_init.rb,
lib/textus/cli/migrate_keys.rb,
lib/textus/cli/schema_group.rb,
lib/textus/cli/schema_migrate.rb,
lib/textus/cli/extension_group.rb,
lib/textus/cli/deprecated_alias.rb
Defined Under Namespace
Modules: DeprecatedAliasMixin Classes: Accept, Action, Build, Delete, Deps, DoctorVerb, ExtensionGroup, Extensions, Get, Group, InitVerb, IntroVerb, KeyGroup, List, Migrate, MigrateKeysVerb, Mv, Published, Put, Rdeps, RefreshVerb, SchemaDiff, SchemaGroup, SchemaInit, SchemaMigrate, SchemaVerb, Stale, Uid, Verb, Where
Constant Summary collapse
- VERBS =
verb name → Verb subclass. Adding a new verb is a one-line entry here plus a new file under lib/textus/cli/.
{ "accept" => Accept, "action" => Action, "build" => Build, "delete" => Delete, "deps" => Deps, "doctor" => DoctorVerb, "extension" => ExtensionGroup, "extensions" => Extensions, "get" => Get, "init" => InitVerb, "intro" => IntroVerb, "key" => KeyGroup, "list" => List, "migrate" => Migrate, "migrate-keys" => MigrateKeysVerb, "mv" => Mv, "published" => Published, "put" => Put, "rdeps" => Rdeps, "refresh" => RefreshVerb, "schema" => SchemaGroup, "schema-diff" => SchemaDiff, "schema-init" => SchemaInit, "schema-migrate" => SchemaMigrate, "stale" => Stale, "uid" => Uid, "where" => Where, }.freeze
- DEPRECATED_ALIASES =
Flat aliases kept for backward-compat through 0.5; emit deprecation warnings.
%w[ mv uid migrate-keys schema-init schema-diff schema-migrate extensions action ].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(stdin:, stdout:, stderr:, cwd:) ⇒ CLI
constructor
A new instance of CLI.
- #run(argv) ⇒ Object
Constructor Details
#initialize(stdin:, stdout:, stderr:, cwd:) ⇒ CLI
Returns a new instance of CLI.
47 48 49 50 51 52 53 |
# File 'lib/textus/cli.rb', line 47 def initialize(stdin:, stdout:, stderr:, cwd:) @stdin = stdin @stdout = stdout @stderr = stderr @cwd = cwd @root_arg = nil end |
Class Method Details
.run(argv, stdin: $stdin, stdout: $stdout, stderr: $stderr, cwd: Dir.pwd) ⇒ Object
43 44 45 |
# File 'lib/textus/cli.rb', line 43 def self.run(argv, stdin: $stdin, stdout: $stdout, stderr: $stderr, cwd: Dir.pwd) new(stdin: stdin, stdout: stdout, stderr: stderr, cwd: cwd).run(argv) end |
Instance Method Details
#run(argv) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/textus/cli.rb', line 55 def run(argv) OptionParser.new { |o| o.on("--root=PATH") { |v| @root_arg = v } }.order!(argv) verb = argv.shift raise UsageError.new("missing verb") if verb.nil? case verb when "--version", "-v" then @stdout.puts(VERSION) 0 when "--help", "-h" then print_help 0 else klass = VERBS[verb] or raise UsageError.new("unknown verb: #{verb}") dispatch(klass, argv, deprecated_alias: DEPRECATED_ALIASES.include?(verb)) end rescue Textus::Error => e emit_error(e) end |