Adding documentation and release tasks to Rakefile

This commit is contained in:
Michael Bleigh 2010-10-14 10:27:33 -05:00
Родитель 8e15f5572d
Коммит a6e1de9ca1
4 изменённых файлов: 101 добавлений и 52 удалений

2
.gitignore поставляемый
Просмотреть файл

@ -28,5 +28,7 @@ oa-live
*.gem
.bundle
.project
.yardoc
doc
Gemfile.lock

Просмотреть файл

@ -1,8 +1,14 @@
require 'rubygems'
require 'rake'
require 'term/ansicolor'
include Term::ANSIColor
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)
@ -60,6 +66,15 @@ namespace :dependencies do
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'
@ -70,7 +85,7 @@ namespace :gems do
end
desc 'Push all gems to Gemcutter'
task :release do
task :push do
each_gem('is releasing to Gemcutter...') do
system('rake gem:publish')
end
@ -119,3 +134,33 @@ namespace :version do
end
task :default => :spec
begin
require 'yard'
YARD::Rake::YardocTask.new(:doc) do |t|
t.name = 'doc'
t.files = OMNIAUTH_GEMS.inject([]){|a,g| a = a + ["#{g}/lib/**/*.rb"]; a} + ['README.markdown']
t.options = ["-o", "../omniauth.doc"]
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 = ["-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

Просмотреть файл

@ -1,49 +0,0 @@
= OmniAuth::OpenID
OpenID strategies for the OmniAuth gem.
== Installation
To get just OpenID functionality:
gem install oa-openid
For the full auth suite:
gem install omniauth
== Stand-Alone Example
Use the strategy as a middleware in your application:
require 'omniauth/openid'
require 'openid/store/filesystem'
use OmniAuth::Strategies::OpenID, OpenID::Store::Filesystem.new('/tmp')
Then simply direct users to '/auth/open_id' to prompt them for their OpenID identifier. You may also pre-set the identifier by passing an <tt>identifier</tt> parameter to the URL (Example: <tt>/auth/open_id?openid_url=yahoo.com</tt>).
A list of all OpenID stores is available at http://github.com/openid/ruby-openid/tree/master/lib/openid/store/
== OmniAuth Builder
If OpenID is one of several authentication strategies, use the OmniAuth Builder:
require 'omniauth/openid'
require 'omniauth/basic' # for Campfire
require 'openid/store/filesystem'
use OmniAuth::Builder do
provider :open_id, OpenID::Store::Filesystem.new('/tmp')
provider :campfire
end
== Configured Identifiers
You may pre-configure an OpenID identifier. For example, to use Google's main OpenID endpoint:
use OmniAuth::Builder do
provider :openid, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end
Note the use of nil, which will trigger ruby-openid's default Memory Store.

Просмотреть файл

@ -1,6 +1,57 @@
require 'omniauth/core'
module OmniAuth
# OmniAuth::OpenID provides strategies for authenticating to providers
# using the OpenID standard.
#
# == Installation
#
# To get just OpenID functionality:
#
# gem install oa-openid
#
# For the full auth suite:
#
# gem install omniauth
#
# == Stand-Alone Example
#
# Use the strategy as a middleware in your application:
#
# require 'omniauth/openid'
# require 'openid/store/filesystem'
#
# use Rack::Session::Cookie
# use OmniAuth::Strategies::OpenID, OpenID::Store::Filesystem.new('/tmp')
#
# Then simply direct users to '/auth/open_id' to prompt them for their OpenID identifier. You may also pre-set the identifier by passing an <tt>identifier</tt> parameter to the URL (Example: <tt>/auth/open_id?openid_url=yahoo.com</tt>).
#
# A list of all OpenID stores is available at http://github.com/openid/ruby-openid/tree/master/lib/openid/store/
#
# == OmniAuth Builder
#
# If OpenID is one of several authentication strategies, use the OmniAuth Builder:
#
# require 'omniauth/openid'
# require 'omniauth/basic' # for Campfire
# require 'openid/store/filesystem'
#
# use OmniAuth::Builder do
# provider :open_id, OpenID::Store::Filesystem.new('/tmp')
# provider :campfire
# end
#
# == Configured Identifiers
#
# You may pre-configure an OpenID identifier. For example, to use Google's main OpenID endpoint:
#
# use OmniAuth::Builder do
# provider :open_id, nil, :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
# end
#
# Note the use of nil, which will trigger ruby-openid's default Memory Store.
module OpenID; end
module Strategies
autoload :OpenID, 'omniauth/strategies/open_id'
autoload :GoogleApps, 'omniauth/strategies/google_apps'