public
Rubygem
Description: Resource-oriented open source Ruby framework for Web apps.
Homepage: http://rubywaves.com/
Clone URL: git://github.com/dyoder/waves.git
automatthew (author)
Wed Jul 02 10:05:04 -0700 2008
commit  004bbb8a7ad16e223f5c7f13e0b7215f25cd5ad6
tree    fdbc2c859ed16aa407608f12026282927ffe60f8
parent  42a8d0d94de4902a90ab1cfc342aeed27a9f65d6
waves / Rakefile
100644 122 lines (105 sloc) 3.764 kb
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
begin
  $: << 'lib'; %w( rubygems rake/testtask rake/rdoctask rake/gempackagetask extensions/all
utilities/string utilities/symbol date).each { |dep| require dep }
rescue
  puts "Better do `rake setup` to get all the fancies you're missing"
end
 
gem = Gem::Specification.new do |gem|
  gem.name = "waves"
  gem.rubyforge_project = "waves"
  gem.summary = "Open-source framework for building Ruby-based Web applications."
  gem.version = '0.7.7'
  gem.homepage = 'http://rubywaves.com'
  gem.author = 'Dan Yoder'
  gem.email = 'dan@zeraweb.com'
  gem.platform = Gem::Platform::RUBY
  gem.required_ruby_version = '>= 1.8.6'
  %w( mongrel rack markaby erubis haml RedCloth metaid
extensions live_console choice daemons rakegen).each do |dep|
    gem.add_dependency dep
  end
  gem.add_dependency('sequel', '>= 2.0.0')
  gem.add_dependency('autocode', '>= 1.0.0')
  gem.files = Dir[ 'app/**/*', 'app/**/.gitignore', 'lib/**/*.rb','lib/**/*.erb', "{doc,samples,verify}/**/*" ]
  gem.has_rdoc = true
  gem.bindir = 'bin'
  gem.executables = [ 'waves', 'waves-server', 'waves-console' ]
end
 
desc "Create the waves gem"
task( :package => :clean ) { Gem::Builder.new( gem ).build }
 
desc "Clean build artifacts"
task( :clean ) { FileUtils.rm_rf Dir['*.gem'] }
 
desc "Rebuild and Install Waves as a gem"
task( :install => [ :package, :rdoc, :install_gem ] )
 
desc "Install Waves a local gem"
task( :install_gem ) do
    require 'rubygems/installer'
    Dir['*.gem'].each do |gem|
      Gem::Installer.new(gem).install
    end
end
 
desc "create .gemspec file (useful for github)"
task :gemspec do
  filename = "#{gem.name}.gemspec"
  File.open(filename, "w") do |f|
    f.puts gem.to_ruby
  end
end
 
desc "Publish to RubyForge"
task( :publish => [ :package, :rdoc_publish ] ) do
  `rubyforge login`
  `rubyforge add_release #{gem.name} #{gem.name} #{gem.version} #{gem.name}-#{gem.version}.gem`
end
 
task( :rdoc_publish => :rdoc ) do
  path = "/var/www/gforge-projects/#{gem.name}/"
  `rsync -a --delete ./doc/rdoc/ dyoder67@rubyforge.org:#{path}`
end
 
Rake::RDocTask.new do |rdoc|
  rdoc.rdoc_dir = 'doc/rdoc'
  rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README.rdoc'
  rdoc.rdoc_files.add [ 'lib/**/*.rb', 'README.rdoc', 'doc/HISTORY' ]
end
 
# based on a blog post by Assaf Arkin
desc "Set up dependencies so you can work from source"
task( :setup ) do
  gems = Gem::SourceIndex.from_installed_gems
  # Runtime dependencies from the Gem's spec.
  dependencies = gem.dependencies
  # Add build-time dependencies, like this:
  dependencies.each do |dep|
    if gems.search(dep.name, dep.version_requirements).empty?
      puts "Installing dependency: #{dep}"
      begin
        require 'rubygems/dependency_installer'
        if Gem::RubyGemsVersion =~ /^1\.0\./
          Gem::DependencyInstaller.new(dep.name, dep.version_requirements).install
        else
          # as of 1.1.0
          Gem::DependencyInstaller.new.install(dep.name, dep.version_requirements)
        end
      rescue LoadError # < rubygems 1.0.1
        require 'rubygems/remote_installer'
        Gem::RemoteInstaller.new.install(dep.name, dep.version_requirements)
      end
    end
  end
  system(cmd = "chmod +x bin/waves*")
end
 
desc "Run verification suite."
Rake::TestTask.new(:verify) do |t|
  t.test_files = FileList["verify/**/*.rb"].exclude(
  "**/helpers.rb",
  "**/foundations/*_application/**/*",
  "**/app_generation/*.rb")
  t.verbose = true
end
 
# subset tasks, e.g. verify:mapping
namespace :verify do
  
  FileList["verify/*/"].each do |area|
    task = area.chomp("/").sub("verify/", '')
    Rake::TestTask.new(task) do |t|
      t.test_files = FileList["#{area}**/*.rb"].exclude("**/helpers.rb")
      t.verbose = true
    end
  end
 
end