forked from roman/rots
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRakefile
125 lines (105 loc) · 3.25 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Rakefile for Rack. -*-ruby-*-
require 'rake/rdoctask'
require 'rake/testtask'
require 'spec/rake/spectask'
desc "Run all the tests"
task :default => [:spec]
desc "Do predistribution stuff"
task :predist => [:changelog, :rdoc]
desc "Make an archive as .tar.gz"
task :dist => [:fulltest, :predist] do
sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
sh "pax -waf #{release}.tar -s ':^:#{release}/:' RDOX SPEC ChangeLog doc"
sh "gzip -f -9 #{release}.tar"
end
# Helper to retrieve the "revision number" of the git tree.
def git_tree_version
#if File.directory?(".git")
# @tree_version ||= `git describe`.strip.sub('-', '.')
# @tree_version << ".0" unless @tree_version.count('.') == 2
#else
$: << "lib"
require 'rots'
@tree_version = Rots.release
#end
@tree_version
end
def gem_version
git_tree_version.gsub(/-.*/, '')
end
def release
"ruby-openid-tester-#{git_tree_version}"
end
def manifest
`git ls-files`.split("\n")
end
desc "Generate a ChangeLog"
task :changelog do
File.open("ChangeLog", "w") do |out|
`git log -z`.split("\0").map do |chunk|
author = chunk[/Author: (.*)/, 1].strip
date = chunk[/Date: (.*)/, 1].strip
desc, detail = $'.strip.split("\n", 2)
detail ||= ""
detail.rstrip!
out.puts "#{date} #{author}"
out.puts " * #{desc.strip}"
out.puts detail unless detail.empty?
out.puts
end
end
end
begin
require 'rubygems'
require 'rake'
require 'rake/clean'
require 'rake/packagetask'
require 'rake/gempackagetask'
require 'fileutils'
rescue LoadError
# Too bad.
else
spec = Gem::Specification.new do |s|
s.name = "rots"
s.version = gem_version
s.platform = Gem::Platform::RUBY
s.summary = "an OpenID server for making tests of OpenID clients implementations"
s.description = <<-EOF
Ruby OpenID Test Server (ROST) provides a basic OpenID server made in top of the Rack gem.
With this small server, you can make dummy OpenID request for testing purposes,
the success of the response will depend on a parameter given on the url of the authentication request.
EOF
s.files = manifest
s.bindir = 'bin'
s.executables << 'rots'
s.require_path = 'lib'
s.has_rdoc = true
s.extra_rdoc_files = ['README']
s.test_files = Dir['spec/*_spec.rb']
s.author = 'Roman Gonzalez'
s.email = '[email protected]'
s.homepage = 'http://github.com/roman'
s.rubyforge_project = 'rots'
s.add_development_dependency 'rspec'
s.add_development_dependency 'rack'
s.add_development_dependency 'ruby-openid', '~> 2.0.0'
end
Rake::GemPackageTask.new(spec) do |p|
p.gem_spec = spec
p.need_tar = false
p.need_zip = false
end
end
Spec::Rake::SpecTask.new do |t|
end
desc "Generate RDoc documentation"
Rake::RDocTask.new(:rdoc) do |rdoc|
rdoc.options << '--line-numbers' << '--inline-source' <<
'--main' << 'README' <<
'--title' << 'ROTS Documentation' <<
'--charset' << 'utf-8'
rdoc.rdoc_dir = "doc"
rdoc.rdoc_files.include 'README'
rdoc.rdoc_files.include('lib/ruby_openid_test_server.rb')
rdoc.rdoc_files.include('lib/ruby_openid_test_server/*.rb')
end