class Gem::Commands::InaboxCommand
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/rubygems/commands/inabox_command.rb, line 16 def initialize super 'inabox', description add_option('-c', '--configure', "Configure GemInABox") do |value, options| options[:configure] = true end add_option('-g', '--host HOST', "Host to upload to.") do |value, options| options[:host] = value end add_option('-o', '--overwrite', "Overwrite Gem.") do |value, options| options[:overwrite] = true end add_option('-p', '--port', "Sets port") do |value, options| options[:port] = value end end
Public Instance Methods
arguments()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 8 def arguments "GEM built gem to push up" end
config_path()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 70 def config_path File.join(Gem.user_home, '.gem', 'geminabox') end
configure()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 74 def configure say "Enter the root url for your personal geminabox instance (e.g. http://gems/)." host = ask("Host:") self.geminabox_host = host end
description()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 4 def description 'Push a gem up to your GemInABox' end
execute()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 41 def execute last_minute_requires! return configure if options[:configure] configure unless geminabox_host if options[:args].size == 0 say "You didn't specify a gem, looking for one in . and in ./pkg/..." gemfiles = [GeminaboxClient::GemLocator.find_gem(Dir.pwd)] else gemfiles = get_all_gem_names end send_gems(gemfiles) end
geminabox_host()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 80 def geminabox_host @geminabox_host ||= options[:host] || Gem.configuration.load_file(config_path)[:host] end
geminabox_host=(host)
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 84 def geminabox_host=(host) config = Gem.configuration.load_file(config_path).merge(:host => host) dirname = File.dirname(config_path) Dir.mkdir(dirname) unless File.exists?(dirname) File.open(config_path, 'w') do |f| f.write config.to_yaml end end
last_minute_requires!()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 36 def last_minute_requires! require 'yaml' require File.expand_path("../../../geminabox_client.rb", __FILE__) end
send_gems(gemfiles)
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 56 def send_gems(gemfiles) client = GeminaboxClient.new(geminabox_host) gemfiles.each do |gemfile| say "Pushing #{File.basename(gemfile)} to #{client.url}..." begin say client.push(gemfile, options) rescue GeminaboxClient::Error => e alert_error e.message terminate_interaction(1) end end end
usage()
click to toggle source
# File lib/rubygems/commands/inabox_command.rb, line 12 def usage "#{program_name} GEM" end