Class: Pronto::CLI

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.is_thor_reserved_word?(word, type) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
# File 'lib/pronto/cli.rb', line 9

def is_thor_reserved_word?(word, type)
  return false if word == 'run'
  super
end

Instance Method Details

#listObject



84
85
86
# File 'lib/pronto/cli.rb', line 84

def list
  puts ::Pronto::GemNames.new.to_a
end

#run(path = '.') ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/pronto/cli.rb', line 52

def run(path = '.')
  path = File.expand_path(path)

  gem_names = options[:runner].any? ? options[:runner] : ::Pronto::GemNames.new.to_a
  gem_names.each do |gem_name|
    require "pronto/#{gem_name}"
  end

  formatters = ::Pronto::Formatter.get(options[:formatters])

  commit_options = %i[workdir staged unstaged index]
  commit = commit_options.find { |o| options[o] } || options[:commit]

  repo_workdir = ::Rugged::Repository.discover(path).workdir
  relative     = path.sub(repo_workdir, '')

  messages = Dir.chdir(repo_workdir) do
    file = relative.length != path.length ? relative : nil
    ::Pronto.run(commit, '.', formatters, file)
  end
  if options[:'exit-code']
    error_messages_count = messages.count { |m| m.level != :info }
    exit(error_messages_count)
  end
rescue Rugged::RepositoryError
  puts '"pronto" must be run from within a git repository or must be supplied the path to a git repository'
rescue Pronto::Error => e
  $stderr.puts "Pronto errored: #{e.message}"
end

#verbose_versionObject



98
99
100
# File 'lib/pronto/cli.rb', line 98

def verbose_version
  puts Version.verbose
end

#versionObject



91
92
93
# File 'lib/pronto/cli.rb', line 91

def version
  puts Version::STRING
end