class OctoMerge::CLI::Parser

Attributes

args[R]

Public Class Methods

new(args) click to toggle source
# File lib/octo_merge/cli/parser.rb, line 10
def initialize(args)
  @args = args
end
parse(args) click to toggle source
# File lib/octo_merge/cli/parser.rb, line 6
def self.parse(args)
  new(args).parse!
end

Public Instance Methods

parse!() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 14
def parse!
  setup
  opts.parse!(args)
  options
end

Private Instance Methods

options() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 93
def options
  @options ||= {}
end
opts() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 89
def opts
  @opts ||= OptionParser.new
end
setup() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 24
def setup
  setup_banner

  setup_application

  opts.separator ""
  opts.separator "Common options:"

  setup_help
  setup_version
end
setup_application() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 41
def setup_application
  opts.on("--repo=REPO", "Repository (e.g.: 'rails/rails')") do |repo|
    options[:repo] = repo
  end

  opts.on("--dir=DIR", "Working directory (e.g.: '~/Dev/Rails/rails')") do |dir|
    options[:dir] = dir
  end

  opts.on("--pull_requests=PULL_REQUESTS", "Pull requests (e.g.: '23,42,66')") do |pull_requests|
    options[:pull_requests] = pull_requests
  end

  opts.on("--login=login", "Login (Your GitHub username)") do |login|
    options[:login] = login
  end

  opts.on("--password=password", "Password (Your GitHub API-Token)") do |password|
    options[:password] = password
  end

  opts.on("--strategy=STRATEGY", "Merge strategy (e.g.: 'MergeWithoutRebase')") do |strategy|
    options[:strategy] = strategy
  end

  opts.on("--query=QUERY", "Query to use in interactive mode (e.g.: 'label:ready-to-merge')") do |query|
    options[:query] = query
  end

  opts.on('--interactive', 'Select PullRequests within an interactive session') do |interactive|
    options[:interactive] = interactive
  end
end
setup_banner() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 36
def setup_banner
  opts.banner = "Usage: octo-merge [options]"
  opts.separator ""
end
setup_help() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 75
def setup_help
  opts.on_tail('-h', '--help', 'Display this screen') do
    puts opts
    exit
  end
end
setup_version() click to toggle source
# File lib/octo_merge/cli/parser.rb, line 82
def setup_version
  opts.on_tail('-v', '--version', 'Display the version') do
    puts OctoMerge::VERSION
    exit
  end
end