Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

166 lines (138 sloc) 3.723 kb
require 'rubygems'
require 'rake'
begin
require 'term/ansicolor'
include Term::ANSIColor
rescue LoadError
def cyan; '' end
def blue; '' end
def clear; '' end
end
OMNIAUTH_GEMS = %w(oa-basic oa-core oa-oauth oa-openid oa-enterprise omniauth)
def each_gem(action, &block)
OMNIAUTH_GEMS.each_with_index do |dir, i|
print blue, "\n\n== ", cyan, dir, blue, " ", action, clear, "\n\n"
Dir.chdir(dir, &block)
end
end
def version_file
File.dirname(__FILE__) + '/VERSION'
end
def version
File.open(version_file, 'r').read.strip
end
def bump_version(position)
v = version
v = v.split('.').map{|s| s.to_i}
v[position] += 1
write_version(*v)
end
def write_version(major, minor, patch)
major = nil if major == ''
minor = nil if minor == ''
patch = nil if patch == ''
v = version
v = v.split('.').map{|s| s.to_i}
v[0] = major || v[0]
v[1] = minor || v[1]
v[2] = patch || v[2]
File.open(version_file, 'w'){ |f| f.write v.map{|i| i.to_s}.join('.') }
puts "Version is now: #{version}"
end
desc 'Run specs for all of the gems.'
task :spec do
each_gem('specs are running...') do
system('rake spec')
end
end
namespace :dependencies do
desc 'Install all dependencies via Bundler'
task :install do
each_gem('is installing dependencies...') do
system('bundle install')
end
end
end
task :release => ['release:tag', 'gems:publish', 'doc:pages:publish']
namespace :release do
task :tag do
system("git tag v#{version}")
system('git push origin --tags')
end
end
namespace :gems do
desc 'Build all gems'
task :build do
each_gem('is building gems...') do
system('rake gem')
end
end
desc 'Push all gems to Gemcutter'
task :push do
each_gem('is releasing to Gemcutter...') do
system('rake gem:publish')
end
end
desc 'Install all gems'
task :install do
each_gem('is installing gems...') do
system('rake gem:install')
end
end
desc "Uninstall gems"
task :uninstall do
sh "sudo gem uninstall #{OMNIAUTH_GEMS.join(" ")} -a"
end
end
desc "Clean pkg and other stuff"
task :clean do
OMNIAUTH_GEMS.each do |dir|
Dir.chdir(dir) do
%w(tmp pkg coverage dist).each { |d| FileUtils.rm_rf d }
end
end
Dir["**/*.gem"].each { |gem| FileUtils.rm_rf gem }
end
desc 'Display the current version.'
task :version do
puts "Current Version: #{version}"
end
namespace :version do
desc "Write version with MAJOR, MINOR, and PATCH level env variables."
task :write do
write_version(ENV['MAJOR'], ENV['MINOR'], ENV['PATCH'])
end
namespace :bump do
task(:major){ bump_version(0) }
task(:minor){ bump_version(1) }
task(:patch){ bump_version(2) }
end
end
task :default => :spec
begin
YARD_OPTS = ['-m', 'markdown', '-M', 'maruku']
require 'yard'
YARD::Rake::YardocTask.new(:doc) do |t|
t.files = OMNIAUTH_GEMS.inject([]){|a,g| a = a + ["#{g}/lib/**/*.rb"]; a} + ['README.markdown']
t.options = YARD_OPTS
end
namespace :doc do
YARD::Rake::YardocTask.new(:pages) do |t|
t.files = OMNIAUTH_GEMS.inject([]){|a,g| a = a + ["#{g}/lib/**/*.rb"]; a} + ['README.markdown']
t.options = YARD_OPTS + ['-o', '../omniauth.doc']
end
namespace :pages do
desc 'Generate and publish YARD docs to GitHub pages.'
task :publish => ['doc:pages'] do
Dir.chdir(File.dirname(__FILE__) + '/../omniauth.doc') do
system("git add .")
system("git add -u")
system("git commit -m 'Generating docs for version #{version}.'")
system("git push origin gh-pages")
end
end
end
end
rescue LoadError
puts "You need to install YARD."
end
Jump to Line
Something went wrong with that request. Please try again.