class Rake::Release::Spec

Constants

EMPTY_STR

Attributes

base[R]
gemspec[R]
gemspec_path[R]
host[R]
namespace[RW]
push_host[R]
sign_tag[RW]
version_tag[RW]

Public Class Methods

load(*args, &block) click to toggle source
# File lib/rake/release/spec.rb, line 77
def load(*args, &block)
  new(*args, &block)
rescue RuntimeError
  nil
end
new(path = nil, namespace: nil, sign_tag: false) { |self| ... } click to toggle source
# File lib/rake/release/spec.rb, line 20
def initialize(path = nil, namespace: nil, sign_tag: false)
  path = Task.pwd.join(path.to_s).expand_path

  if path.directory?
    @base = path

    gemspecs = Dir[@base.join('*.gemspec')]

    raise 'Unable to determine gemspec file.' if gemspecs.size != 1

    @gemspec_path = Pathname.new gemspecs.first
  else
    @base = path.parent
    @gemspec_path = path
  end

  @gemspec = Bundler.load_gemspec @gemspec_path

  raise 'Cannot load gemspec' unless @gemspec

  @push_host = URI 'https://rubygems.org'

  unless @gemspec.metadata['allowed_push_host'].to_s.empty?
    @push_host = URI @gemspec.metadata['allowed_push_host']
  end

  @sign_tag = sign_tag
  @namespace = namespace
  @version_tag = "v#{version}"

  yield self if block_given?
end
scan(path = Task.pwd.join('*.gemspec')) click to toggle source
# File lib/rake/release/spec.rb, line 83
def scan(path = Task.pwd.join('*.gemspec'))
  Pathname
    .glob(path)
    .map {|m| Rake::Release::Spec.load(m) }
    .reject(&:nil?)
end

Public Instance Methods

host=(value)
Alias for: push_host=
pkg_file_name() click to toggle source
# File lib/rake/release/spec.rb, line 68
def pkg_file_name
  @pkg_file_name ||= "#{name}-#{version}.gem"
end
pkg_file_path() click to toggle source
# File lib/rake/release/spec.rb, line 72
def pkg_file_path
  @pkg_file_path ||= pkg_path.join pkg_file_name
end
pkg_path() click to toggle source
# File lib/rake/release/spec.rb, line 64
def pkg_path
  @pkg_path ||= base.join 'pkg'
end
push_host=(value) click to toggle source
# File lib/rake/release/spec.rb, line 53
def push_host=(value)
  @push_host = URI value
end
Also aliased as: host=
push_host_name() click to toggle source
# File lib/rake/release/spec.rb, line 60
def push_host_name
  push_host.host.to_s
end