root/tags/0.3.2/Rakefile

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

merb now accepts xml posts and parses them into params

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.2"
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/*']
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 #  rdoc.rdoc_dir = 'doc/rdoc'
34 #  rdoc.options += RDOC_OPTS
35 #  rdoc.main = "README"
36 #  rdoc.title = "Merb Documentation"
37 #  rdoc.rdoc_files.add ['README', 'LICENSE', 'TODO', 'lib/**/*.rb']
38 #end
39 Rake::RDocTask.new do |rdoc|
40      files =['README', 'LICENSE', 'TODO', 'lib/**/*.rb']
41      rdoc.rdoc_files.add(files)
42      rdoc.main = "README" # page to start on
43      rdoc.title = "Merb Docs"
44      rdoc.template = __DIR__+"/tools/allison/allison.rb"
45      rdoc.rdoc_dir = 'doc' # rdoc output folder
46      rdoc.options << '--line-numbers' << '--inline-source'
47 end
48
49
50
51 spec = Gem::Specification.new do |s|
52   s.name = NAME
53   s.version = VERS
54   s.platform = Gem::Platform::RUBY
55   s.has_rdoc = true
56   s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
57   #s.rdoc_options += RDOC_OPTS +
58   #  ['--exclude', '^(app|uploads)']
59   s.summary = "Merb == Mongrel + Erb. Pocket rocket web framework."
60   s.description = s.summary
61   s.author = "Ezra Zygmuntowicz"
62   s.email = 'ez@engineyard.com'
63   s.homepage = 'http://merb.devjavu.com'
64   s.executables = ['merb']
65
66   s.add_dependency('mongrel')
67   s.add_dependency('erubis')
68   s.add_dependency('json')
69   s.add_dependency('mime-types')
70   s.add_dependency('xml-simple')
71   s.add_dependency('archive-tar-minitar')
72   s.required_ruby_version = '>= 1.8.4'
73
74   s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{bin,test,lib,examples}/**/*")
75      
76   s.require_path = "lib"
77   s.bindir = "bin"
78 end
79
80 Rake::GemPackageTask.new(spec) do |p|
81   #p.need_tar = true
82   p.gem_spec = spec
83 end
84
85 task :install do
86   sh %{rake package}
87   sh %{sudo gem install pkg/#{NAME}-#{VERS}}
88 end
89
90 task :uninstall => [:clean] do
91   sh %{sudo gem uninstall #{NAME}}
92 end
93
94 desc "rdoc to rubyforge"
95 task :doc_rforge do
96   sh %{rake doc}
97   sh %{sudo chmod -R 755 doc}
98   sh %{scp -r -p doc/* ezmobius@rubyforge.org:/var/www/gforge-projects/merb}
99 end
100
101
102 desc "Pack skeleton app as a tar.gz file"
103 task :skeleton do
104   require 'archive/tar/minitar'
105   include Archive::Tar
106   Find.find(File.join(__DIR__,'examples/skeleton')) do |f|
107     FileUtils.rm_rf(f) if /\.svn$/ =~ f
108   end
109   File.open(File.join(__DIR__,'examples/skeleton.tar'), 'wb') do |tar|
110     Dir.chdir 'examples/skeleton'
111     Minitar.pack('.', tar, true)
112   end
113 end 
114
115 desc 'Run unit tests'
116 Rake::TestTask.new('test_unit') do |t|
117   t.libs << 'test'
118   t.pattern = 'test/unit/*_test.rb'
119   t.verbose = true
120 end
121
122 desc 'Run functional tests'
123 Rake::TestTask.new('test_functional') do |t|
124   t.libs << 'test'
125   t.pattern = 'test/functional/*_test.rb'
126   t.verbose = true
127 end
128
129 desc 'Run all tests'
130 Rake::TestTask.new('test') do |t|
131   t.libs << 'test'
132   t.pattern = 'test/**/*_test.rb'
133   t.verbose = true
134 end
135
136 desc 'Run all tests, specs and finish with rcov'
137 task :aok do
138   sh %{rake specs;rake rcov}
139 end
140
141 desc "Run all specs"
142 Spec::Rake::SpecTask.new('specs') do |t|
143   t.spec_opts = ["--format", "specdoc"]
144   t.libs = ['lib', 'server/lib' ]
145   t.spec_files = FileList['specs/**/*_spec.rb']
146 end
147
148 desc "RCov"
149 Spec::Rake::SpecTask.new('rcov') do |t|
150   t.spec_opts = ["--format", "specdoc"]
151   t.spec_files = FileList['specs/**/*_spec.rb']
152   t.libs = ['lib', 'server/lib' ]
153   t.rcov = true
154 end
155
156 ##############################################################################
157 # SVN
158 ##############################################################################
159
160 desc "Add new files to subversion"
161 task :svn_add do
162    system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add"
163 end
Note: See TracBrowser for help on using the browser.