| 1 |
require 'rubygems' |
|---|
| 2 |
require 'rake/gempackagetask' |
|---|
| 3 |
require 'rake/clean' |
|---|
| 4 |
require 'spec/rake/spectask' |
|---|
| 5 |
|
|---|
| 6 |
jar = 'lib/java/jerbivore.jar' |
|---|
| 7 |
CLEAN.include(jar, 'pkg') |
|---|
| 8 |
|
|---|
| 9 |
version = '0.0.1' |
|---|
| 10 |
|
|---|
| 11 |
gemspec = Gem::Specification.new do |s| |
|---|
| 12 |
s.name = 'jerbivore' |
|---|
| 13 |
s.version = version |
|---|
| 14 |
s.platform = 'java' |
|---|
| 15 |
s.has_rdoc = true |
|---|
| 16 |
s.summary = 'Merb + JRuby = Slightly less painful Java web apps' |
|---|
| 17 |
s.description = s.summary |
|---|
| 18 |
s.author = 'Dudley Flanders' |
|---|
| 19 |
s.email = 'dudley@misnomer.us' |
|---|
| 20 |
s.homepage = '' |
|---|
| 21 |
s.add_dependency 'Antwrap' |
|---|
| 22 |
s.requirements << 'merb' |
|---|
| 23 |
s.require_path = 'lib' |
|---|
| 24 |
s.autorequire = 'jerbivore' |
|---|
| 25 |
files = FileList.new(%w[LICENSE Rakefile]) |
|---|
| 26 |
files.include('{ext,jetty,lib,spec}/**/*') |
|---|
| 27 |
files.include(jar) |
|---|
| 28 |
files.exclude('spec/fixtures/fake-app/**/*') |
|---|
| 29 |
s.files = files |
|---|
| 30 |
end |
|---|
| 31 |
|
|---|
| 32 |
Rake::GemPackageTask.new(gemspec) do |pkg| |
|---|
| 33 |
pkg.gem_spec = gemspec |
|---|
| 34 |
end |
|---|
| 35 |
|
|---|
| 36 |
desc 'Run all specs' |
|---|
| 37 |
Spec::Rake::SpecTask.new('specs') do |t| |
|---|
| 38 |
t.spec_opts = ['--format', 'specdoc', '--colour'] |
|---|
| 39 |
t.spec_files = Dir['spec/**/*_spec.rb'].sort |
|---|
| 40 |
end |
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 |
task :clean => ['java:clean'] |
|---|
| 44 |
file jar => ['java:jar'] |
|---|
| 45 |
task :gem => jar |
|---|
| 46 |
|
|---|
| 47 |
namespace :java do |
|---|
| 48 |
desc "Run the merb-servlet's clean Ant task" |
|---|
| 49 |
task :clean do |
|---|
| 50 |
sh "ant -f ext/merb-servlet/build.xml clean" |
|---|
| 51 |
end |
|---|
| 52 |
|
|---|
| 53 |
desc "Run the merb-servlet's jar Ant task to create jerbivore.jar" |
|---|
| 54 |
task :jar do |
|---|
| 55 |
sh "ant -f ext/merb-servlet/build.xml jar" |
|---|
| 56 |
end |
|---|
| 57 |
end |
|---|
| 58 |
|
|---|
| 59 |
namespace :test do |
|---|
| 60 |
namespace :app do |
|---|
| 61 |
desc "Generate a Merb app for testing" |
|---|
| 62 |
task :setup => :gem do |
|---|
| 63 |
mkdir_p test |
|---|
| 64 |
cd "spec/fixtures" do |
|---|
| 65 |
rm_rf "fake-app" |
|---|
| 66 |
system "jruby -S merb -g fake-app" |
|---|
| 67 |
system "jruby -S gem install -i fake-app/gems ../../pkg/jerbivore-#{version}-java.gem" |
|---|
| 68 |
File.open("fake-app/config/dependencies.rb", "a") {|f| f << "\ndependency 'jerbivore'\n"} |
|---|
| 69 |
File.open("fake-app/config/merb.yml", "a") {|f| f << "\n:path_prefix: '/fake-app'\n"} |
|---|
| 70 |
end |
|---|
| 71 |
|
|---|
| 72 |
cd "spec/fixtures/fake-app" do |
|---|
| 73 |
system "jruby -S rake jerbivore:war" |
|---|
| 74 |
end |
|---|
| 75 |
end |
|---|
| 76 |
|
|---|
| 77 |
desc "Update the fake app's jerbivore installation" |
|---|
| 78 |
task :update => :gem do |
|---|
| 79 |
cd "spec/fixtures" do |
|---|
| 80 |
system "jruby -S gem install -i fake-app/gems ../../pkg/jerbivore-#{version}-java.gem" |
|---|
| 81 |
end |
|---|
| 82 |
end |
|---|
| 83 |
end |
|---|
| 84 |
end |
|---|