Module: Chemicalml::Cli

Defined in:
lib/chemicalml/cli.rb,
lib/chemicalml/cli/base.rb,
lib/chemicalml/cli/command.rb,
lib/chemicalml/cli/info_command.rb,
lib/chemicalml/cli/enums_command.rb,
lib/chemicalml/cli/inspect_command.rb,
lib/chemicalml/cli/elements_command.rb,
lib/chemicalml/cli/validate_command.rb,
lib/chemicalml/cli/constraints_command.rb,
lib/chemicalml/cli/conventions_command.rb,
lib/chemicalml/cli/dictionaries_command.rb

Overview

Command-line interface. Built on Thor for dispatch; each command is a dedicated class under Chemicalml::Cli::*Command exposing .run(args, options) (and #run on an instance).

Dispatch flow:

exe/chemicalml ARGV
-> Chemicalml::Cli::Base.start(ARGV)  (Thor)
-> Chemicalml::Cli::<Name>Command.new.run(args, options)

Adding a new command:

1. Create `lib/chemicalml/cli/<name>_command.rb` with a class
 extending `Chemicalml::Cli::Command` and implementing `#run`.
2. Add one `desc + def` block in `Chemicalml::Cli::Base` that
 invokes `<Name>Command.new.run(args, options)`.
3. Add the autoload entry below.

Defined Under Namespace

Classes: Base, Command, ConstraintsCommand, ConventionsCommand, DictionariesCommand, ElementsCommand, EnumsCommand, InfoCommand, InspectCommand, ValidateCommand

Class Method Summary collapse

Class Method Details

.run(argv) ⇒ Integer

Backward-compatible entry point used by exe/chemicalml and tests.

Parameters:

  • argv (Array<String>)

    the command line.

Returns:

  • (Integer)

    process exit code.



35
36
37
38
39
40
41
# File 'lib/chemicalml/cli.rb', line 35

def self.run(argv)
  Base.start(argv)
  0
rescue StandardError => e
  warn "FAIL: #{e.message}"
  2
end