root/tags/0.2.0/Rakefile

Revision 193, 3.6 kB (checked in by e.@brainspl.at, 2 years ago)

Merged from template_ext branch. New rendering system with support for Erubis, Markaby and XML Builder templates based on extension. Much more flexible system . even use .herb for layouts and .mab markaby for content , mix and match at will. XML Bulder templates are exempt from layout. See docs in render_mixin for new way to render everything. Some backwards caompat stuff left in like render_js and stuff. May go away in the future may not. Please play with this and see if any of your apps break.

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 include FileUtils
14
15
16 NAME = "merb"
17 VERS = "0.2.0"
18 CLEAN.include ['**/.*.sw?', '*.gem', '.config']
19 RDOC_OPTS = ['--quiet', '--title', "Merb Documentation",
20   "--opname", "index.html",
21   "--line-numbers", 'TODO',
22   "--main", "README",
23   "--inline-source"]
24
25 setup_clean [ "pkg", "lib/*.bundle", "*.gem",
26             "doc", ".config", "examples/sample_app/dist/public/files/**/*", 'examples/sample_app/log/*']
27
28
29 desc "Packages up Merb."
30 task :default => [:package]
31 task :merb => [:clean, :rdoc, :package]
32
33 task :doc => [:rdoc]
34
35
36 Rake::RDocTask.new do |rdoc|
37   rdoc.rdoc_dir = 'doc/rdoc'
38   rdoc.options += RDOC_OPTS
39   rdoc.main = "README"
40   rdoc.title = "Merb Documentation"
41   rdoc.rdoc_files.add ['README', 'LICENSE', 'TODO', 'lib/**/*.rb']
42 end
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.required_ruby_version = '>= 1.8.4'
63
64   s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{bin,test,lib,examples}/**/*")
65      
66   s.require_path = "lib"
67   s.bindir = "bin"
68 end
69
70 Rake::GemPackageTask.new(spec) do |p|
71   #p.need_tar = true
72   p.gem_spec = spec
73 end
74
75 task :install do
76   sh %{rake package}
77   sh %{sudo gem install pkg/#{NAME}-#{VERS}}
78 end
79
80 task :uninstall => [:clean] do
81   sh %{sudo gem uninstall #{NAME}}
82 end
83
84 desc "rdoc to rubyforge"
85 task :doc_rforge do
86   sh %{rake doc}
87   sh %{sudo chmod -R 755 doc/rdoc}
88   sh %{scp -r -p doc/rdoc/* ezmobius@rubyforge.org:/var/www/gforge-projects/merb}
89 end
90
91
92 desc "Pack skeleton app as a tar.gz file"
93 task :skeleton do
94   require 'archive/tar/minitar'
95   include Archive::Tar
96   Find.find(File.join(__DIR__,'examples/skeleton')) do |f|
97     FileUtils.rm_rf(f) if /\.svn$/ =~ f
98   end
99   File.open(File.join(__DIR__,'examples/skeleton.tar'), 'wb') do |tar|
100     Dir.chdir 'examples/skeleton'
101     Minitar.pack('.', tar, true)
102   end
103 end 
104
105 desc 'Run unit tests'
106 Rake::TestTask.new('test_unit') do |t|
107   t.libs << 'test'
108   t.pattern = 'test/unit/*_test.rb'
109   t.verbose = true
110 end
111
112 desc 'Run functional tests'
113 Rake::TestTask.new('test_functional') do |t|
114   t.libs << 'test'
115   t.pattern = 'test/functional/*_test.rb'
116   t.verbose = true
117 end
118
119 desc 'Run all tests'
120 Rake::TestTask.new('test') do |t|
121   t.libs << 'test'
122   t.pattern = 'test/**/*_test.rb'
123   t.verbose = true
124 end
125
126 desc 'Run all tests, specs and finish with rcov'
127 task :aok do
128   sh %{rake rcov}
129   sh %{rake spec}
130 end
131
132 desc "Run all specs"
133 Spec::Rake::SpecTask.new('specs') do |t|
134   t.spec_opts = ["--format", "specdoc"]
135   t.libs = ['lib', 'server/lib' ]
136   t.spec_files = FileList['specs/**/*_spec.rb']
137 end
138
139 desc "RCov"
140 Spec::Rake::SpecTask.new('rcov') do |t|
141   t.spec_files = FileList['specs/**/*_spec.rb']
142   t.libs = ['lib', 'server/lib' ]
143   t.rcov = true
144 end
145
146 ##############################################################################
147 # SVN
148 ##############################################################################
149
150 desc "Add new files to subversion"
151 task :svn_add do
152    system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add"
153 end
Note: See TracBrowser for help on using the browser.