class Released::Goals::GemPushed
Constants
- BASE_URL
Public Class Methods
new(config = {})
click to toggle source
# File lib/released/goals/gem_pushed.rb, line 10 def initialize(config = {}) @name = config.fetch('name') @version = config.fetch('version') @rubygems_repo = Gems::Client.new( key: config.fetch('authorization'), host: config.fetch('rubygems_base_url', BASE_URL), ) end
Public Instance Methods
achieved?()
click to toggle source
# File lib/released/goals/gem_pushed.rb, line 46 def achieved? gems = @rubygems_repo.gems if gems =~ /Access Denied/ raise 'Authorization failed' end gems.any? { |g| g['name'] == @name && g['version'] == @version } end
assess()
click to toggle source
# File lib/released/goals/gem_pushed.rb, line 24 def assess gems = @rubygems_repo.gems if gems =~ /Access Denied/ raise 'Authorization failed' end unless gems.any? { |g| g['name'] == @name } raise 'List of owned gems does not include request gem' end end
failure_reason()
click to toggle source
# File lib/released/goals/gem_pushed.rb, line 55 def failure_reason "list of gems does not contain “#{@name}”, version #{@version}" end
to_s()
click to toggle source
# File lib/released/goals/gem_pushed.rb, line 20 def to_s "gem pushed (#{@name})" end
try_achieve()
click to toggle source
# File lib/released/goals/gem_pushed.rb, line 35 def try_achieve filename = @name + '-' + @version + '.gem' unless File.file?(filename) raise "no such gem file: #{filename}" end File.open(filename, 'r') do |io| @rubygems_repo.push(io) end end