Class: Synvert::CLI

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

Overview

Synvert command line interface.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCLI

Initialize a CLI.



17
18
19
# File 'lib/synvert/cli.rb', line 17

def initialize
  @options = {command: 'run', snippet_paths: [], snippet_names: []}
end

Class Method Details

.run(args = ARGV) ⇒ Boolean

Initialize the cli and run.

Parameters:

  • args (Array) (defaults to: ARGV)

    arguments, default is ARGV.

Returns:

  • (Boolean)

    true if command runs successfully.



12
13
14
# File 'lib/synvert/cli.rb', line 12

def self.run(args = ARGV)
  new.run(args)
end

Instance Method Details

#run(args) ⇒ Boolean

Run the CLI.

Parameters:

  • args (Array)

    arguments.

Returns:

  • (Boolean)

    true if command runs successfully.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/synvert/cli.rb', line 24

def run(args)
  run_option_parser(args)
  load_rewriters

  case @options[:command]
  when 'list' then list_available_rewriters
  when 'query' then query_available_rewriters
  when 'show' then show_rewriter
  else
    @options[:snippet_names].each do |snippet_name|
      puts "===== #{snippet_name} started ====="
      rewriter = Rewriter.call snippet_name
      puts rewriter.todo if rewriter.todo
      puts "===== #{snippet_name} done ====="
    end
  end
  true
rescue SystemExit
  true
rescue Exception => e
  puts "Error: " + e.message
  false
end