Sha256: 8e88b18f9c1b7d828e3e56e64eebf6233b62b0b635c19c8d1beceef84639ccdf

Contents?: true

Size: 1.73 KB

Versions: 1

Compression:

Stored size: 1.73 KB

Contents

require 'rake/clean'
require "rake/testtask"
require 'rake/gempackagetask'

task :default => :test

def gem_spec_file
  'ohm.gemspec'
end

def gem_spec
  $gem_spec ||= eval(File.read(gem_spec_file)) rescue nil
end

desc 'Run all tests'
Rake::TestTask.new(:test) do |t|
  t.pattern = 'test/**/*_test.rb'
  t.verbose = false
end

Rake::GemPackageTask.new(gem_spec) do |pkg|
  pkg.need_zip = false
  pkg.need_tar = false
  rm_f FileList['pkg/**/*.*']
end if gem_spec

desc "Generate the gemspec file."
task :gemspec do
  require 'erb'

  File.open(gem_spec_file, 'w') do |f|
    f.write ERB.new(File.read("#{gem_spec_file}.erb")).result(binding)
  end
end

desc "Builds and installs the gem."
task :install => :repackage do
  `sudo gem install pkg/#{gem_spec.name}-#{gem_spec.version}.gem`
end

def package(ext='')
  "pkg/ohm-#{gem_spec.version}" + ext
end

desc 'Build packages'
task :package => %w[.gem .tar.gz].map {|e| package(e)}

desc 'Build and install as local gem'
task :install => package('.gem') do
  sh "gem install #{package('.gem')}"
end

directory 'pkg/'
CLOBBER.include('pkg')

file package('.gem') => %w[pkg/ ohm.gemspec] + gem_spec.files do |f|
  sh "gem build ohm.gemspec"
  mv File.basename(f.name), f.name
end

file package('.tar.gz') => %w[pkg/] + gem_spec.files do |f|
  sh <<-SH
    git archive \
      --prefix=ohm-#{gem_spec.version}/ \
      --format=tar \
      HEAD | gzip > #{f.name}
  SH
end

# Rubyforge Release / Publish Tasks ==================================

desc 'Publish gem and tarball to rubyforge'
task 'release' => [package('.gem'), package('.tar.gz')] do |t|
  sh <<-end
    rubyforge add_release ohm ohm #{gem_spec.version} #{package('.gem')} &&
    rubyforge add_file    ohm ohm #{gem_spec.version} #{package('.tar.gz')}
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ohm-0.0.1 Rakefile