Class: SpreenTracks::CLI
- Inherits:
-
Object
- Object
- SpreenTracks::CLI
- Defined in:
- lib/spreen_tracks/cli.rb,
sig/generated/spreen_tracks/cli.rbs
Overview
Command line interface behind the track-delimiter executable:
track-delimiter [--extension EXT] [--delimiter CHAR] [--mode d|e].
Constant Summary collapse
- MODES =
: Array
%w[d e].freeze
Instance Attribute Summary collapse
-
#action ⇒ Symbol
readonly
: Symbol.
-
#argv ⇒ Array[String]
readonly
: Array.
-
#delimiter ⇒ String
readonly
: String.
-
#extension ⇒ String
readonly
: String.
-
#mode ⇒ String
readonly
: String.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(argv) ⇒ CLI
constructor
A new instance of CLI.
- #parser ⇒ OptionParser
- #print_help ⇒ Integer
- #print_version ⇒ Integer
- #replace_delimiters ⇒ Integer
- #replacement_options(opt) ⇒ void
- #run ⇒ Integer
Constructor Details
#initialize(argv) ⇒ CLI
Returns a new instance of CLI.
22 23 24 25 26 27 28 |
# File 'lib/spreen_tracks/cli.rb', line 22 def initialize(argv) @argv = argv.dup @extension = '.m4a' @delimiter = '_' @mode = 'd' @action = :replace_delimiters end |
Instance Attribute Details
#action ⇒ Symbol (readonly)
: Symbol
45 46 47 |
# File 'lib/spreen_tracks/cli.rb', line 45 def action @action end |
#argv ⇒ Array[String] (readonly)
: Array
41 42 43 |
# File 'lib/spreen_tracks/cli.rb', line 41 def argv @argv end |
#delimiter ⇒ String (readonly)
: String
43 44 45 |
# File 'lib/spreen_tracks/cli.rb', line 43 def delimiter @delimiter end |
#extension ⇒ String (readonly)
: String
42 43 44 |
# File 'lib/spreen_tracks/cli.rb', line 42 def extension @extension end |
#mode ⇒ String (readonly)
: String
44 45 46 |
# File 'lib/spreen_tracks/cli.rb', line 44 def mode @mode end |
Class Method Details
.start(argv = ARGV) ⇒ Integer
16 17 18 |
# File 'lib/spreen_tracks/cli.rb', line 16 def self.start(argv = ARGV) new(argv).run end |
Instance Method Details
#parser ⇒ OptionParser
66 67 68 69 70 71 72 |
# File 'lib/spreen_tracks/cli.rb', line 66 def parser @parser ||= OptionParser.new('Usage: track-delimiter [options]') do |opt| (opt) opt.on('--version', 'Print the version') { @action = :print_version } opt.on('-h', '--help', 'Print this help') { @action = :print_help } end end |
#print_help ⇒ Integer
60 61 62 63 |
# File 'lib/spreen_tracks/cli.rb', line 60 def print_help puts parser 0 end |
#print_version ⇒ Integer
54 55 56 57 |
# File 'lib/spreen_tracks/cli.rb', line 54 def print_version puts VERSION 0 end |
#replace_delimiters ⇒ Integer
48 49 50 51 |
# File 'lib/spreen_tracks/cli.rb', line 48 def replace_delimiters Application.run(extension:, delimiter:, mode:) 0 end |
#replacement_options(opt) ⇒ void
This method returns an undefined value.
76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/spreen_tracks/cli.rb', line 76 def (opt) opt.on('--extension EXT', 'Target extension of the files to rename (default: .m4a)') do |value| @extension = value end opt.on('--delimiter CHAR', 'Delimiter that replaces the space after the track number (default: _)') do |value| @delimiter = value end opt.on('--mode MODE', MODES, "Execution mode (#{MODES.join(' or ')}, default: d for dry run; e executes)") do |value| @mode = value end end |
#run ⇒ Integer
31 32 33 34 35 36 37 |
# File 'lib/spreen_tracks/cli.rb', line 31 def run parser.parse!(argv) __send__(action) rescue Application::InvalidModeError, OptionParser::ParseError => e warn e. 1 end |