class Gemsmith::Rake::Tasks
Provides Rake
tasks for use in all gems built by this gem.
Attributes
builder[R]
rubocop:enable Metrics/AbcSize rubocop:enable Metrics/MethodLength
gem_spec[R]
rubocop:enable Metrics/AbcSize rubocop:enable Metrics/MethodLength
publisher[R]
rubocop:enable Metrics/AbcSize rubocop:enable Metrics/MethodLength
Public Class Methods
default_gem_spec()
click to toggle source
# File lib/gemsmith/rake/tasks.rb, line 20 def self.default_gem_spec Pathname.pwd.files("*.gemspec").first end
new(gem_spec: Gem::Specification.new(self.class.default_gem_spec.to_s), builder: Rake::Builder.new, publisher: Rake::Publisher.new)
click to toggle source
# File lib/gemsmith/rake/tasks.rb, line 28 def initialize gem_spec: Gem::Specification.new(self.class.default_gem_spec.to_s), builder: Rake::Builder.new, publisher: Rake::Publisher.new @gem_spec = gem_spec @builder = builder @publisher = publisher end
setup()
click to toggle source
# File lib/gemsmith/rake/tasks.rb, line 24 def self.setup new.install end
Public Instance Methods
install()
click to toggle source
rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength :reek: TooManyStatements
# File lib/gemsmith/rake/tasks.rb, line 39 def install Tocer::Rake::Tasks.setup desc "Clean gem artifacts" task :clean do builder.clean end task :validate do builder.validate end desc "Build #{gem_package} package" task build: %i[clean toc validate] do builder.build gem_spec end desc "Install #{gem_package} package" task install: :build do builder.install gem_spec end desc "Build, tag as #{gem_spec.version} (#{signed_label}), " \ "and push #{gem_package} to RubyGems" task publish: :build do publisher.publish end end
Private Instance Methods
gem_package()
click to toggle source
# File lib/gemsmith/rake/tasks.rb, line 74 def gem_package gem_spec.package_file_name end
signed_label()
click to toggle source
# File lib/gemsmith/rake/tasks.rb, line 78 def signed_label publisher.signed? ? "signed" : "unsigned" end