Sha256: 4254b32ecfe2cde17a5d4fa74feedfa94a028d9aa1b9acce6a059937c6b22f29
Contents?: true
Size: 1.57 KB
Versions: 13
Compression:
Stored size: 1.57 KB
Contents
class Jeweler module Commands class SetupRubyforge attr_accessor :gemspec, :output, :rubyforge def initialize self.output = $stdout require 'rubyforge' self.rubyforge = RubyForge.new end def run raise NoRubyForgeProjectInGemspecError unless @gemspec.rubyforge_project @rubyforge.configure output.puts "Logging into rubyforge" @rubyforge.login if package_exists? output.puts "#{@gemspec.name} package already exists in the #{@gemspec.rubyforge_project} project" return end output.puts "Creating #{@gemspec.name} package in the #{@gemspec.rubyforge_project} project" create_package end def package_exists? begin @rubyforge.lookup 'package', @gemspec.name true rescue RuntimeError => e raise unless e.message == "no <package_id> configured for <#{@gemspec.name}>" false end end def create_package begin @rubyforge.create_package(@gemspec.rubyforge_project, @gemspec.name) rescue StandardError => e case e.message when /no <group_id> configured for <#{Regexp.escape @gemspec.rubyforge_project}>/ raise RubyForgeProjectNotConfiguredError, @gemspec.rubyforge_project else raise end end end def self.build_for(jeweler) command = new command.gemspec = jeweler.gemspec command.output = jeweler.output command end end end end
Version data entries
13 entries across 13 versions & 2 rubygems