class Gem4Rake

Rake tasks to assist developing Ruby Gems.

Gem's name must match current directory's basename.
A `.spec` file with that name is also required.

Usage:

Put this in your `Rakefile`:

 require 'gem4rake'
 Gem4Rake.new $your_app_version

Example:

$ rake -T
rake build      # Build autoup-1.0.4.gem
rake clean      # Delete autoup-*.gem
rake cleanup    # Cleanup autoup gems
rake install    # Install autoup-1.0.4.gem
rake push       # Push autoup-1.0.4.gem
rake uninstall  # Uninstall autoup gems

Notes:

If you got permission denied errors, you may need: `echo gem: --user-install > ~/.gemrc`

Public Class Methods

new(version) click to toggle source

Initialize Rake tasks to assist developing Ruby Gems.

Calls superclass method
# File lib/gem4rake.rb, line 33
def initialize(version)
  super()
  @name = File.basename(Dir.getwd) # Get Gem's name from CWD basename.
  @version = version

  build_task
  install_tasks
  push_task
  clean_tasks
end

Private Instance Methods

build_task() click to toggle source
# File lib/gem4rake.rb, line 46
def build_task
  desc "Build #{@name}-#{@version}.gem"
  task :build do
    sh "gem build #{@name}.gemspec"
  end
end
clean_tasks() click to toggle source
# File lib/gem4rake.rb, line 72
def clean_tasks
  desc "Cleanup #{@name} gems"
  task :cleanup do
    sh "gem cleanup #{@name}"
  end

  desc "Delete #{@name}-*.gem"
  task :clean do
    rm Dir.glob("#{@name}-*.gem")
  end
end
install_tasks() click to toggle source
# File lib/gem4rake.rb, line 53
def install_tasks
  desc "Install #{@name}-#{@version}.gem"
  task install: :build do
    sh "gem install #{@name}-#{@version}.gem"
  end

  desc "Uninstall #{@name} gems"
  task :uninstall do
    sh "gem uninstall #{@name}"
  end
end
push_task() click to toggle source
# File lib/gem4rake.rb, line 65
def push_task
  desc "Push #{@name}-#{@version}.gem"
  task push: :build do
    sh "gem push #{@name}-#{@version}.gem"
  end
end