root/tags/0.3.7/Rakefile

Revision 382, 4.0 kB (checked in by e.@brainspl.at, 1 year ago)

updated controller exceptions so you don't need to preceed the exception clases with ControllerException? in controllers

Line 
1 require 'rake'
2 require 'rake/clean'
3 require 'rake/gempackagetask'
4 require 'rake/rdoctask'
5 require 'rake/testtask'
6 require 'spec/rake/spectask'
7 require 'fileutils'
8 def __DIR__
9   File.dirname(__FILE__)
10 end
11
12 require __DIR__+'/tools/rakehelp'
13 require __DIR__+'/tools/annotation_extract'
14 include FileUtils
15
16
17 NAME = "merb"
18 VERS = "0.3.7"
19 CLEAN.include ['**/.*.sw?', '*.gem', '.config']
20
21 setup_clean [ "pkg", "lib/*.bundle", "*.gem",
22             "doc", ".config", "examples/sample_app/dist/public/files/**/*", 'examples/sample_app/log/*', 'coverage']
23
24
25 desc "Packages up Merb."
26 task :default => [:package]
27 task :merb => [:clean, :rdoc, :package]
28
29 task :doc => [:rdoc]
30
31
32 Rake::RDocTask.new do |rdoc|
33      files =['README', 'LICENSE', 'TODO', 'lib/**/*.rb']
34      rdoc.rdoc_files.add(files)
35      rdoc.main = "README" # page to start on
36      rdoc.title = "Merb Docs"
37      rdoc.template = __DIR__+"/tools/allison/allison.rb"
38      rdoc.rdoc_dir = 'doc' # rdoc output folder
39      rdoc.options << '--line-numbers' << '--inline-source'
40 end
41
42
43
44 spec = Gem::Specification.new do |s|
45   s.name = NAME
46   s.version = VERS
47   s.platform = Gem::Platform::RUBY
48   s.has_rdoc = true
49   s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
50   #s.rdoc_options += RDOC_OPTS +
51   #  ['--exclude', '^(app|uploads)']
52   s.summary = "Merb == Mongrel + Erb. Pocket rocket web framework."
53   s.description = s.summary
54   s.author = "Ezra Zygmuntowicz"
55   s.email = 'ez@engineyard.com'
56   s.homepage = 'http://merb.devjavu.com'
57   s.executables = ['merb']
58
59   s.add_dependency('mongrel')
60   s.add_dependency('erubis')
61   s.add_dependency('json')
62   s.add_dependency('mime-types')
63   s.required_ruby_version = '>= 1.8.4'
64
65   s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{bin,test,lib,examples}/**/*")
66      
67   s.require_path = "lib"
68   s.bindir = "bin"
69 end
70
71 Rake::GemPackageTask.new(spec) do |p|
72   #p.need_tar = true
73   p.gem_spec = spec
74 end
75
76 task :install do
77   sh %{rake package}
78   sh %{sudo gem install pkg/#{NAME}-#{VERS}}
79 end
80
81 task :uninstall => [:clean] do
82   sh %{sudo gem uninstall #{NAME}}
83 end
84
85 desc "rdoc to rubyforge"
86 task :doc_rforge do
87   sh %{rake doc}
88   sh %{sudo chmod -R 755 doc}
89   sh %{scp -r -p doc/* ezmobius@rubyforge.org:/var/www/gforge-projects/merb}
90 end
91
92 desc 'Run unit tests'
93 Rake::TestTask.new('test_unit') do |t|
94   t.libs << 'test'
95   t.pattern = 'test/unit/*_test.rb'
96   t.verbose = true
97 end
98
99 desc 'Run functional tests'
100 Rake::TestTask.new('test_functional') do |t|
101   t.libs << 'test'
102   t.pattern = 'test/functional/*_test.rb'
103   t.verbose = true
104 end
105
106 desc 'Run all tests'
107 Rake::TestTask.new('test') do |t|
108   t.libs << 'test'
109   t.pattern = 'test/**/*_test.rb'
110   t.verbose = true
111 end
112
113 desc 'Run all tests, specs and finish with rcov'
114 task :aok do
115   sh %{rake specs;rake rcov}
116 end
117
118 desc "Run all specs"
119 Spec::Rake::SpecTask.new('specs') do |t|
120   t.spec_opts = ["--format", "specdoc"]
121   t.libs = ['lib', 'server/lib' ]
122   t.spec_files = Dir['specs/**/*_spec.rb'].sort
123 end
124
125 desc "Run all specs output html"
126 Spec::Rake::SpecTask.new('specs_html') do |t|
127   t.spec_opts = ["--format", "html"]
128   t.libs = ['lib', 'server/lib' ]
129   t.spec_files = Dir['specs/**/*_spec.rb'].sort
130 end
131
132 desc "RCov"
133 Spec::Rake::SpecTask.new('rcov') do |t|
134   t.spec_opts = ["--format", "specdoc"]
135   t.spec_files = Dir['specs/**/*_spec.rb'].sort
136   t.libs = ['lib', 'server/lib' ]
137   t.rcov = true
138 end
139
140 STATS_DIRECTORIES = [
141   %w(Code               lib/),
142   %w(Unit\ tests        specs),
143 ].collect { |name, dir| [ name, "./#{dir}" ] }.select { |name, dir| File.directory?(dir) }
144
145 desc "Report code statistics (KLOCs, etc) from the application"
146 task :stats do
147   require __DIR__ + '/tools/code_statistics'
148   #require 'extra/stats'
149   verbose = true
150   CodeStatistics.new(*STATS_DIRECTORIES).to_s
151 end
152
153 ##############################################################################
154 # SVN
155 ##############################################################################
156
157 desc "Add new files to subversion"
158 task :svn_add do
159    system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add"
160 end
Note: See TracBrowser for help on using the browser.