Class: Synvert::CLI
- Inherits:
-
Object
- Object
- Synvert::CLI
- Defined in:
- lib/synvert/cli.rb
Overview
Synvert command line interface.
Class Method Summary collapse
-
.run(args = ARGV) ⇒ Boolean
Initialize the cli and run.
Instance Method Summary collapse
-
#initialize ⇒ CLI
constructor
Initialize a CLI.
-
#run(args) ⇒ Boolean
Run the CLI.
Constructor Details
#initialize ⇒ CLI
Initialize a CLI.
16 17 18 19 20 |
# File 'lib/synvert/cli.rb', line 16 def initialize @options = {command: 'run', custom_snippet_paths: [], snippet_names: []} Core::Configuration.instance.set :skip_files, [] Core::Configuration.instance.set :default_snippets_path, File.join(ENV['HOME'], '.synvert') end |
Class Method Details
.run(args = ARGV) ⇒ Boolean
Initialize the cli and run.
11 12 13 |
# File 'lib/synvert/cli.rb', line 11 def self.run(args = ARGV) new.run(args) end |
Instance Method Details
#run(args) ⇒ Boolean
Run the CLI.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/synvert/cli.rb', line 25 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 when 'sync' then sync_snippets else @options[:snippet_names].each do |snippet_name| puts "===== #{snippet_name} started =====" group, name = snippet_name.split('/') rewriter = Core::Rewriter.call group, name rewriter.warnings.each do |warning| puts "[Warn] " + warning. end puts rewriter.todo if rewriter.todo puts "===== #{snippet_name} done =====" end end true rescue SystemExit true rescue Parser::SyntaxError => e puts "Syntax error: #{e.}" puts "file #{e.diagnostic.location.source_buffer.name}" puts "line #{e.diagnostic.location.line}" false end |