class GitPissed::Options

Constants

DEFAULT_WORDS
FORMATS
MAX_REVISIONS

Public Instance Methods

format() click to toggle source
# File lib/git_pissed/options.rb, line 24
def format
  @format ||= FORMATS.first
end
max_revisions() click to toggle source
# File lib/git_pissed/options.rb, line 20
def max_revisions
  @max_revisions ||= MAX_REVISIONS
end
parse!() click to toggle source
# File lib/git_pissed/options.rb, line 28
def parse!
  options = OptionParser.new do |opts|
    opts.banner = [
      'usage: git-pissed',
      '[--words=<array>]',
      '[--max-revisions=<integer>]',
      "[--format=<#{FORMATS.join('|')}>]",
      '[--version]'
    ].join(' ')

    opts.separator "\noptions:"

    opts.on(
      "--words=#{DEFAULT_WORDS.join(',')}", Array,
      'Words to track across entire history'
    ) do |words|
      raise OptionParser::InvalidArgument if words.empty?
      @words = words
    end

    opts.on(
      "--max-revisions=#{MAX_REVISIONS}", Integer,
      'Number of revisions to track, spread equally across entire history'
    ) do |max_revisions|
      @max_revisions = max_revisions
    end

    opts.on(
      "--format=#{FORMATS.first}", String,
      "Output format. Supported formats: #{FORMATS.join(', ')}"
    ) do |format|
      raise OptionParser::InvalidArgument unless FORMATS.include?(format)
      @format = format
    end

    opts.on('--version', 'Show version') do
      puts VERSION
      exit
    end
  end

  options.parse!

  self
rescue OptionParser::MissingArgument, OptionParser::InvalidArgument
  abort options.help
end
words() click to toggle source
# File lib/git_pissed/options.rb, line 16
def words
  @words ||= DEFAULT_WORDS
end