class Furious::Cli

Constants

COMMANDS

Public Class Methods

new(argv) click to toggle source
# File lib/furious/cli.rb, line 10
def initialize(argv)
  argv ||= []
  usage! unless argv.size == 1 && COMMANDS.include?(argv.first)

  @command = argv.first
end

Public Instance Methods

run() click to toggle source
# File lib/furious/cli.rb, line 17
def run
  send("run_#{@command}".to_sym)
end

Private Instance Methods

gemspec_file() click to toggle source
# File lib/furious/cli.rb, line 41
def gemspec_file
  @gemspec_file ||= Dir['*.gemspec'].first
end
run_package() click to toggle source
# File lib/furious/cli.rb, line 23
def run_package
  Package.new(gemspec_file).build
end
run_push() click to toggle source
# File lib/furious/cli.rb, line 31
def run_push
  Push.new(gemspec_file).push
end
run_release() click to toggle source
# File lib/furious/cli.rb, line 35
def run_release
  run_package
  run_tag
  run_push
end
run_tag() click to toggle source
# File lib/furious/cli.rb, line 27
def run_tag
  Tag.new(gemspec_file).tag
end
usage!() click to toggle source
# File lib/furious/cli.rb, line 45
def usage!
  $stderr.puts 'USAGE: furious <command>'
  COMMANDS.each do |cmd, desc|
    $stderr.puts "  #{cmd}: #{desc}"
  end
  Kernel.exit(1)
end