Sha256: 8e6f318ed90e2cc43d3ada5330e625dd58bb7d49a6a57f4bd91c44b83103d883

Contents?: true

Size: 1.78 KB

Versions: 14

Compression:

Stored size: 1.78 KB

Contents

def latest_release_id
  require 'open-uri'
  require 'hpricot'

  url = "http://rubyforge.org/frs/?group_id=3034"
  doc = Hpricot(open(url))
  a = (doc/:a).find{|a| a[:href] =~ /release_id/}

  version = a.inner_html
  release_id = Hash[*a[:href].split('?').last.split('=').flatten]['release_id']
end

def update_version_rb(version)
  File.open('lib/ramaze/version.rb', 'w+') do |v|
    v.puts COPYRIGHT
    v.puts
    v.puts "module Ramaze"
    v.puts "  VERSION = #{version.to_s.dump}"
    v.puts "end"
  end
end

def prepare_package(version)
  update_version_rb(version)
  spec = generate_gemspec(version)

  Rake::GemPackageTask.new(spec) do |pkg|
    pkg.need_tar = true
    pkg.need_zip = true
  end

  Rake::Task['package'].invoke
end

namespace :release do
  desc 'Nightly release to gems.ramaze.net'
  task 'nightly' do
    prepare_package(version_today)

    location = 'web/gems/'

    sh "scp pkg/*.{gem,tgz,zip} ramaze@ramaze.net:#{location}"
    sh "ssh ramaze@ramaze.net '
source ~/.zsh/export.sh
cd #{location}
gem generate_index'"
  end

  desc 'Monthly release to rubyforge'
  task 'monthly' do
    prepare_package(v = version_month)

    sh "rubyforge login"
    sh "rubyforge add_release ramaze ramaze #{v} pkg/ramaze-#{v}.gem"

    release_id = latest_release_id

    files = Dir['pkg/*'].reject{|f| File.directory?(f) or f =~ /\.gem$/ }
    files.each do |file|
      sh "rubyforge add_file ramaze ramaze #{release_id} '#{file}'"
    end
  end

  desc 'Prepare and push gemspec to github'
  task 'gemspec' => 'gemspec-prepare' do
    sh "git commit -m 'Update ramaze.gemspec' ramaze.gemspec"
    sh 'git fetch'
    sh 'git rebase origin/master'
    sh 'git push'
  end

  desc 'Prepare gemspec for push to github'
  task 'gemspec-prepare' do
    update_gemspec(generate_gemspec(version_month))
  end
end

Version data entries

14 entries across 14 versions & 4 rubygems

Version Path
Pistos-ramaze-2008.09 rake_tasks/release.rake
Pistos-ramaze-2008.12 rake_tasks/release.rake
Pistos-ramaze-2009.01 rake_tasks/release.rake
Pistos-ramaze-2009.02 rake_tasks/release.rake
manveru-ramaze-2008.09 rake_tasks/release.rake
manveru-ramaze-2008.10 rake_tasks/release.rake
manveru-ramaze-2008.12 rake_tasks/release.rake
manveru-ramaze-2009.01 rake_tasks/release.rake
ptomato-ramaze-2009.02.1 rake_tasks/release.rake
ptomato-ramaze-2009.02 rake_tasks/release.rake
ramaze-2009.01 rake_tasks/release.rake
ramaze-2008.11 rake_tasks/release.rake
ramaze-2009.03 rake_tasks/release.rake
ramaze-2009.02 rake_tasks/release.rake