rails 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rails might be problematic. Click here for more details.
- data/CHANGELOG +152 -10
- data/README +30 -5
- data/Rakefile +18 -13
- data/bin/rails +1 -11
- data/{lib/rails_info.rb → builtin/rails_info/rails/info.rb} +25 -8
- data/builtin/{controllers/rails_info_controller.rb → rails_info/rails/info_controller.rb} +2 -2
- data/configs/databases/mysql.yml +47 -0
- data/configs/databases/oracle.yml +30 -0
- data/configs/databases/postgresql.yml +44 -0
- data/configs/databases/sqlite2.yml +16 -0
- data/configs/databases/sqlite3.yml +16 -0
- data/configs/lighttpd.conf +11 -5
- data/configs/routes.rb +5 -2
- data/environments/development.rb +3 -2
- data/environments/environment.rb +5 -8
- data/environments/production.rb +1 -2
- data/environments/test.rb +1 -1
- data/fresh_rakefile +2 -2
- data/html/500.html +1 -1
- data/html/index.html +3 -3
- data/html/javascripts/application.js +2 -0
- data/html/javascripts/controls.js +95 -30
- data/html/javascripts/dragdrop.js +161 -21
- data/html/javascripts/effects.js +310 -211
- data/html/javascripts/prototype.js +228 -28
- data/lib/code_statistics.rb +1 -1
- data/lib/commands/console.rb +3 -1
- data/lib/commands/plugin.rb +113 -70
- data/lib/commands/process/reaper.rb +1 -1
- data/lib/commands/process/spawner.rb +33 -4
- data/lib/commands/runner.rb +1 -1
- data/lib/commands/server.rb +3 -1
- data/lib/commands/servers/lighttpd.rb +41 -9
- data/lib/console_app.rb +27 -0
- data/lib/console_with_helpers.rb +23 -0
- data/lib/dispatcher.rb +8 -8
- data/lib/fcgi_handler.rb +22 -4
- data/lib/initializer.rb +107 -38
- data/lib/rails_generator/commands.rb +17 -7
- data/lib/rails_generator/generators/applications/app/app_generator.rb +30 -18
- data/lib/rails_generator/generators/components/integration_test/USAGE +14 -0
- data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
- data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
- data/lib/rails_generator/generators/components/mailer/USAGE +1 -1
- data/lib/rails_generator/generators/components/migration/USAGE +1 -1
- data/lib/rails_generator/generators/components/model/USAGE +3 -1
- data/lib/rails_generator/generators/components/model/model_generator.rb +16 -0
- data/lib/rails_generator/generators/components/model/templates/migration.rb +11 -0
- data/lib/rails_generator/generators/components/model/templates/unit_test.rb +1 -1
- data/lib/rails_generator/generators/components/plugin/USAGE +3 -1
- data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +1 -0
- data/lib/rails_generator/generators/components/plugin/templates/Rakefile +1 -1
- data/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
- data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +1 -1
- data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +4 -0
- data/lib/rails_generator/generators/components/scaffold/templates/style.css +4 -4
- data/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml +1 -1
- data/lib/rails_generator/generators/components/session_migration/USAGE +1 -1
- data/lib/rails_generator/options.rb +2 -2
- data/lib/rails_version.rb +1 -1
- data/lib/ruby_version_check.rb +17 -0
- data/lib/tasks/databases.rake +141 -139
- data/lib/tasks/documentation.rake +73 -68
- data/lib/tasks/framework.rake +86 -58
- data/lib/tasks/log.rake +9 -0
- data/lib/tasks/misc.rake +2 -17
- data/lib/tasks/pre_namespace_aliases.rake +46 -0
- data/lib/tasks/statistics.rake +9 -8
- data/lib/tasks/testing.rake +81 -29
- data/lib/tasks/tmp.rake +30 -0
- data/lib/test_help.rb +1 -0
- data/lib/webrick_server.rb +6 -8
- metadata +284 -271
- data/bin/process/spinner +0 -3
- data/configs/database.yml +0 -85
- data/lib/tasks/javascripts.rake +0 -6
@@ -1,76 +1,81 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
namespace :doc do
|
2
|
+
desc "Generate documentation for the application"
|
3
|
+
Rake::RDocTask.new("app") { |rdoc|
|
4
|
+
rdoc.rdoc_dir = 'doc/app'
|
5
|
+
rdoc.title = "Rails Application Documentation"
|
6
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
7
|
+
rdoc.rdoc_files.include('doc/README_FOR_APP')
|
8
|
+
rdoc.rdoc_files.include('app/**/*.rb')
|
9
|
+
}
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
options
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
desc "Generate documentation for the Rails framework"
|
12
|
+
Rake::RDocTask.new("rails") { |rdoc|
|
13
|
+
rdoc.rdoc_dir = 'doc/api'
|
14
|
+
rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
15
|
+
rdoc.title = "Rails Framework Documentation"
|
16
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
17
|
+
rdoc.rdoc_files.include('README')
|
18
|
+
rdoc.rdoc_files.include('vendor/rails/railties/CHANGELOG')
|
19
|
+
rdoc.rdoc_files.include('vendor/rails/railties/MIT-LICENSE')
|
20
|
+
rdoc.rdoc_files.include('vendor/rails/activerecord/README')
|
21
|
+
rdoc.rdoc_files.include('vendor/rails/activerecord/CHANGELOG')
|
22
|
+
rdoc.rdoc_files.include('vendor/rails/activerecord/lib/active_record/**/*.rb')
|
23
|
+
rdoc.rdoc_files.exclude('vendor/rails/activerecord/lib/active_record/vendor/*')
|
24
|
+
rdoc.rdoc_files.include('vendor/rails/actionpack/README')
|
25
|
+
rdoc.rdoc_files.include('vendor/rails/actionpack/CHANGELOG')
|
26
|
+
rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_controller/**/*.rb')
|
27
|
+
rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_view/**/*.rb')
|
28
|
+
rdoc.rdoc_files.include('vendor/rails/actionmailer/README')
|
29
|
+
rdoc.rdoc_files.include('vendor/rails/actionmailer/CHANGELOG')
|
30
|
+
rdoc.rdoc_files.include('vendor/rails/actionmailer/lib/action_mailer/base.rb')
|
31
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/README')
|
32
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/CHANGELOG')
|
33
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service.rb')
|
34
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/*.rb')
|
35
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/api/*.rb')
|
36
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/client/*.rb')
|
37
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/container/*.rb')
|
38
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/dispatcher/*.rb')
|
39
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/protocol/*.rb')
|
40
|
+
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/support/*.rb')
|
41
|
+
rdoc.rdoc_files.include('vendor/rails/activesupport/README')
|
42
|
+
rdoc.rdoc_files.include('vendor/rails/activesupport/CHANGELOG')
|
43
|
+
rdoc.rdoc_files.include('vendor/rails/activesupport/lib/active_support/**/*.rb')
|
44
|
+
}
|
21
45
|
|
22
|
-
|
23
|
-
if File.exists?("#{plugin_base}/README")
|
24
|
-
files.include("#{plugin_base}/README")
|
25
|
-
options << "--main '#{plugin_base}/README'"
|
26
|
-
end
|
27
|
-
files.include("#{plugin_base}/CHANGELOG") if File.exists?("#{plugin_base}/CHANGELOG")
|
46
|
+
plugins = FileList['vendor/plugins/**'].collect { |plugin| File.basename(plugin) }
|
28
47
|
|
29
|
-
|
48
|
+
desc "Generate documation for all installed plugins"
|
49
|
+
task :plugins => plugins.collect { |plugin| "doc:plugins:#{plugin}" }
|
30
50
|
|
31
|
-
|
51
|
+
desc "Remove plugin documentation"
|
52
|
+
task :clobber_plugins do
|
53
|
+
rm_rf 'doc/plugins' rescue nil
|
32
54
|
end
|
33
|
-
end
|
34
55
|
|
35
|
-
|
36
|
-
|
56
|
+
namespace :plugins do
|
57
|
+
# Define doc tasks for each plugin
|
58
|
+
plugins.each do |plugin|
|
59
|
+
task(plugin => :environment) do
|
60
|
+
plugin_base = "vendor/plugins/#{plugin}"
|
61
|
+
options = []
|
62
|
+
files = Rake::FileList.new
|
63
|
+
options << "-o doc/plugins/#{plugin}"
|
64
|
+
options << "--title '#{plugin.titlecase} Plugin Documentation'"
|
65
|
+
options << '--line-numbers' << '--inline-source'
|
66
|
+
options << '-T html'
|
67
|
+
|
68
|
+
files.include("#{plugin_base}/lib/**/*.rb")
|
69
|
+
if File.exists?("#{plugin_base}/README")
|
70
|
+
files.include("#{plugin_base}/README")
|
71
|
+
options << "--main '#{plugin_base}/README'"
|
72
|
+
end
|
73
|
+
files.include("#{plugin_base}/CHANGELOG") if File.exists?("#{plugin_base}/CHANGELOG")
|
37
74
|
|
38
|
-
|
39
|
-
task :clobber_plugindoc do
|
40
|
-
rm_rf 'doc/plugins' rescue nil
|
41
|
-
end
|
75
|
+
options << files.to_s
|
42
76
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
rdoc.options << '--line-numbers --inline-source'
|
49
|
-
rdoc.rdoc_files.include('README')
|
50
|
-
rdoc.rdoc_files.include('vendor/rails/railties/CHANGELOG')
|
51
|
-
rdoc.rdoc_files.include('vendor/rails/railties/MIT-LICENSE')
|
52
|
-
rdoc.rdoc_files.include('vendor/rails/activerecord/README')
|
53
|
-
rdoc.rdoc_files.include('vendor/rails/activerecord/CHANGELOG')
|
54
|
-
rdoc.rdoc_files.include('vendor/rails/activerecord/lib/active_record/**/*.rb')
|
55
|
-
rdoc.rdoc_files.exclude('vendor/rails/activerecord/lib/active_record/vendor/*')
|
56
|
-
rdoc.rdoc_files.include('vendor/rails/actionpack/README')
|
57
|
-
rdoc.rdoc_files.include('vendor/rails/actionpack/CHANGELOG')
|
58
|
-
rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_controller/**/*.rb')
|
59
|
-
rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_view/**/*.rb')
|
60
|
-
rdoc.rdoc_files.include('vendor/rails/actionmailer/README')
|
61
|
-
rdoc.rdoc_files.include('vendor/rails/actionmailer/CHANGELOG')
|
62
|
-
rdoc.rdoc_files.include('vendor/rails/actionmailer/lib/action_mailer/base.rb')
|
63
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/README')
|
64
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/CHANGELOG')
|
65
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service.rb')
|
66
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/*.rb')
|
67
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/api/*.rb')
|
68
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/client/*.rb')
|
69
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/container/*.rb')
|
70
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/dispatcher/*.rb')
|
71
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/protocol/*.rb')
|
72
|
-
rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/support/*.rb')
|
73
|
-
rdoc.rdoc_files.include('vendor/rails/activesupport/README')
|
74
|
-
rdoc.rdoc_files.include('vendor/rails/activesupport/CHANGELOG')
|
75
|
-
rdoc.rdoc_files.include('vendor/rails/activesupport/lib/active_support/**/*.rb')
|
76
|
-
}
|
77
|
+
sh %(rdoc #{options * ' '})
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/lib/tasks/framework.rake
CHANGED
@@ -1,71 +1,99 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
else
|
9
|
-
Gem.cache.search('rails').sort_by { |g| g.version }.last
|
10
|
-
end
|
11
|
-
version ||= rails.version
|
12
|
-
|
13
|
-
unless rails
|
14
|
-
puts "No rails gem #{version} is installed. Do 'gem list rails' to see what you have available."
|
15
|
-
exit
|
16
|
-
end
|
1
|
+
namespace :rails do
|
2
|
+
namespace :freeze do
|
3
|
+
desc "Lock this application to the current gems (by unpacking them into vendor/rails)"
|
4
|
+
task :gems do
|
5
|
+
deps = %w(actionpack activerecord actionmailer activesupport actionwebservice)
|
6
|
+
require 'rubygems'
|
7
|
+
Gem.manage_gems
|
17
8
|
|
18
|
-
|
19
|
-
|
20
|
-
|
9
|
+
rails = version = ENV['VERSION'] ?
|
10
|
+
Gem.cache.search('rails', "= #{version}").first :
|
11
|
+
Gem.cache.search('rails').sort_by { |g| g.version }.last
|
21
12
|
|
22
|
-
|
23
|
-
system "cd vendor/rails; gem unpack -v '#{g.version_requirements}' #{g.name}; mv #{g.name}* #{g.name}"
|
24
|
-
end
|
25
|
-
system "cd vendor/rails; gem unpack -v '=#{version}' rails"
|
26
|
-
|
27
|
-
FileUtils.mv(Dir.glob("vendor/rails/rails*").first, "vendor/rails/railties")
|
28
|
-
end
|
13
|
+
version ||= rails.version
|
29
14
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
15
|
+
unless rails
|
16
|
+
puts "No rails gem #{version} is installed. Do 'gem list rails' to see what you have available."
|
17
|
+
exit
|
18
|
+
end
|
19
|
+
|
20
|
+
puts "Freezing to the gems for Rails #{rails.version}"
|
21
|
+
rm_rf "vendor/rails"
|
22
|
+
mkdir_p "vendor/rails"
|
23
|
+
|
24
|
+
chdir("vendor/rails") do
|
25
|
+
rails.dependencies.select { |g| deps.include? g.name }.each do |g|
|
26
|
+
Gem::GemRunner.new.run(["unpack", "-v", "#{g.version_requirements}", "#{g.name}"])
|
27
|
+
mv(Dir.glob("#{g.name}*").first, g.name)
|
28
|
+
end
|
29
|
+
|
30
|
+
Gem::GemRunner.new.run(["unpack", "-v", "=#{version}", "rails"])
|
31
|
+
FileUtils.mv(Dir.glob("rails*").first, "railties")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Lock this application to latest Edge Rails. Lock a specific revision with REVISION=X"
|
36
|
+
task :edge do
|
37
|
+
$verbose = false
|
38
|
+
`svn --version` rescue nil
|
39
|
+
unless !$?.nil? && $?.success?
|
40
|
+
$stderr.puts "ERROR: Must have subversion (svn) available in the PATH to lock this application to Edge Rails"
|
41
|
+
exit 1
|
42
|
+
end
|
38
43
|
|
39
|
-
|
40
|
-
mkdir_p "vendor/rails"
|
44
|
+
rails_svn = 'http://dev.rubyonrails.org/svn/rails/trunk'
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
+
if ENV['REVISION'].nil?
|
47
|
+
ENV['REVISION'] = /^r(\d+)/.match(%x{svn log -q --limit 1 #{rails_svn}})[1]
|
48
|
+
puts "REVISION not set. Using HEAD, which is revision #{ENV['REVISION']}."
|
49
|
+
end
|
50
|
+
|
51
|
+
rm_rf "vendor/rails"
|
52
|
+
mkdir_p "vendor/rails"
|
53
|
+
|
54
|
+
touch "vendor/rails/REVISION_#{ENV['REVISION']}"
|
55
|
+
|
56
|
+
for framework in %w( railties actionpack activerecord actionmailer activesupport actionwebservice )
|
57
|
+
system "svn export #{rails_svn}/#{framework} vendor/rails/#{framework} -r #{ENV['REVISION']}"
|
58
|
+
end
|
59
|
+
end
|
46
60
|
end
|
47
|
-
end
|
48
61
|
|
49
|
-
desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
|
50
|
-
task :
|
51
|
-
|
52
|
-
end
|
62
|
+
desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
|
63
|
+
task :unfreeze do
|
64
|
+
rm_rf "vendor/rails"
|
65
|
+
end
|
66
|
+
|
67
|
+
desc "Update both scripts and public/javascripts from Rails"
|
68
|
+
task :update => [ "update:scripts", "update:javascripts" ]
|
53
69
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
70
|
+
namespace :update do
|
71
|
+
desc "Add new scripts to the application script/ directory"
|
72
|
+
task :scripts do
|
73
|
+
local_base = "script"
|
74
|
+
edge_base = "#{File.dirname(__FILE__)}/../../bin"
|
58
75
|
|
59
|
-
|
60
|
-
|
76
|
+
local = Dir["#{local_base}/**/*"].reject { |path| File.directory?(path) }
|
77
|
+
edge = Dir["#{edge_base}/**/*"].reject { |path| File.directory?(path) }
|
61
78
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
79
|
+
edge.each do |script|
|
80
|
+
base_name = script[(edge_base.length+1)..-1]
|
81
|
+
next if base_name == "rails"
|
82
|
+
next if local.detect { |path| base_name == path[(local_base.length+1)..-1] }
|
83
|
+
if !File.directory?("#{local_base}/#{File.dirname(base_name)}")
|
84
|
+
mkdir_p "#{local_base}/#{File.dirname(base_name)}"
|
85
|
+
end
|
86
|
+
install script, "#{local_base}/#{base_name}", :mode => 0755
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
desc "Update your javascripts from your current rails install"
|
91
|
+
task :javascripts do
|
92
|
+
require 'railties_path'
|
93
|
+
project_dir = RAILS_ROOT + '/public/javascripts/'
|
94
|
+
scripts = Dir[RAILTIES_PATH + '/html/javascripts/*.js']
|
95
|
+
scripts.reject!{|s| File.basename(s) == 'application.js'} if File.exists?(project_dir + 'application.js')
|
96
|
+
FileUtils.cp(scripts, project_dir)
|
68
97
|
end
|
69
|
-
install script, "#{local_base}/#{base_name}", :mode => 0755
|
70
98
|
end
|
71
99
|
end
|
data/lib/tasks/log.rake
ADDED
data/lib/tasks/misc.rake
CHANGED
@@ -1,19 +1,4 @@
|
|
1
|
-
|
2
|
-
task :default do
|
3
|
-
Rake::Task[:test_units].invoke rescue got_error = true
|
4
|
-
Rake::Task[:test_functional].invoke rescue got_error = true
|
5
|
-
raise "Test failures" if got_error
|
6
|
-
end
|
7
|
-
|
1
|
+
task :default => :test
|
8
2
|
task :environment do
|
9
3
|
require(File.join(RAILS_ROOT, 'config', 'environment'))
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
|
-
desc "Clears all *.log files in log/"
|
14
|
-
task :clear_logs do
|
15
|
-
FileList["log/*.log"].each do |log_file|
|
16
|
-
f = File.open(log_file, "w")
|
17
|
-
f.close
|
18
|
-
end
|
19
|
-
end
|
4
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# clear
|
2
|
+
task :clear_logs => "log:clear"
|
3
|
+
|
4
|
+
# test
|
5
|
+
task :recent => "test:recent"
|
6
|
+
task :test_units => "test:units"
|
7
|
+
task :test_functional => "test:functionals"
|
8
|
+
task :test_plugins => "test:plugins"
|
9
|
+
|
10
|
+
|
11
|
+
# doc
|
12
|
+
task :appdoc => "doc:app"
|
13
|
+
task :apidoc => "doc:rails"
|
14
|
+
task :plugindoc => "doc:plugins"
|
15
|
+
task :clobber_plugindoc => "doc:clobber_plugins"
|
16
|
+
|
17
|
+
FileList['vendor/plugins/**'].collect { |plugin| File.basename(plugin) }.each do |plugin|
|
18
|
+
task :"#{plugin}_plugindoc" => "doc:plugins:#{plugin}"
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
# rails
|
23
|
+
task :freeze_gems => "rails:freeze:gems"
|
24
|
+
task :freeze_edge => "rails:freeze:edge"
|
25
|
+
task :unfreeze_rails => "rails:unfreeze"
|
26
|
+
task :add_new_scripts => "rails:update:scripts"
|
27
|
+
task :update_javascripts => "rails:update:javascripts"
|
28
|
+
|
29
|
+
|
30
|
+
# db
|
31
|
+
task :migrate => "db:migrate"
|
32
|
+
task :load_fixtures => "db:fixtures:load"
|
33
|
+
|
34
|
+
task :db_schema_dump => "db:schema:dump"
|
35
|
+
task :db_schema_import => "db:schema:load"
|
36
|
+
|
37
|
+
task :db_structure_dump => "db:structure:dump"
|
38
|
+
|
39
|
+
task :purge_test_database => "db:test:purge"
|
40
|
+
task :clone_schema_to_test => "db:test:clone"
|
41
|
+
task :clone_structure_to_test => "db:test:clone_structure"
|
42
|
+
task :prepare_test_database => "db:test:prepare"
|
43
|
+
|
44
|
+
task :create_sessions_table => "db:sessions:create"
|
45
|
+
task :drop_sessions_table => "db:sessions:drop"
|
46
|
+
task :purge_sessions_table => "db:sessions:recreate"
|
data/lib/tasks/statistics.rake
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
STATS_DIRECTORIES = [
|
2
|
-
%w(Helpers
|
3
|
-
%w(Controllers
|
4
|
-
%w(APIs
|
5
|
-
%w(Components
|
6
|
-
%w(Functional\ tests
|
7
|
-
%w(Models
|
8
|
-
%w(Unit\ tests
|
9
|
-
%w(Libraries
|
2
|
+
%w(Helpers app/helpers),
|
3
|
+
%w(Controllers app/controllers),
|
4
|
+
%w(APIs app/apis),
|
5
|
+
%w(Components components),
|
6
|
+
%w(Functional\ tests test/functional),
|
7
|
+
%w(Models app/models),
|
8
|
+
%w(Unit\ tests test/unit),
|
9
|
+
%w(Libraries lib/),
|
10
|
+
%w(Integration\ tests test/integration)
|
10
11
|
].collect { |name, dir| [ name, "#{RAILS_ROOT}/#{dir}" ] }.select { |name, dir| File.directory?(dir) }
|
11
12
|
|
12
13
|
desc "Report code statistics (KLOCs, etc) from the application"
|
data/lib/tasks/testing.rake
CHANGED
@@ -10,41 +10,93 @@ def recent_tests(source_pattern, test_path, touched_since = 10.minutes.ago)
|
|
10
10
|
end.compact
|
11
11
|
end
|
12
12
|
|
13
|
-
desc 'Test recent changes'
|
14
|
-
Rake::TestTask.new(:recent => [ :prepare_test_database ]) do |t|
|
15
|
-
since = TEST_CHANGES_SINCE
|
16
|
-
touched = FileList['test/**/*_test.rb'].select { |path| File.mtime(path) > since } +
|
17
|
-
recent_tests('app/models/*.rb', 'test/unit', since) +
|
18
|
-
recent_tests('app/controllers/*.rb', 'test/functional', since)
|
19
|
-
|
20
|
-
t.libs << 'test'
|
21
|
-
t.verbose = true
|
22
|
-
t.test_files = touched.uniq
|
23
|
-
end
|
24
13
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
14
|
+
# Recreated here from ActiveSupport because :uncommitted needs it before Rails is available
|
15
|
+
module Kernel
|
16
|
+
def silence_stderr
|
17
|
+
old_stderr = STDERR.dup
|
18
|
+
STDERR.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
|
19
|
+
STDERR.sync = true
|
20
|
+
yield
|
21
|
+
ensure
|
22
|
+
STDERR.reopen(old_stderr)
|
23
|
+
end
|
30
24
|
end
|
31
25
|
|
32
|
-
desc
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
26
|
+
desc 'Test all units and functionals'
|
27
|
+
task :test do
|
28
|
+
Rake::Task["test:units"].invoke rescue got_error = true
|
29
|
+
Rake::Task["test:functionals"].invoke rescue got_error = true
|
30
|
+
|
31
|
+
if File.exist?("test/integration")
|
32
|
+
Rake::Task["test:integration"].invoke rescue got_error = true
|
33
|
+
end
|
34
|
+
|
35
|
+
raise "Test failures" if got_error
|
37
36
|
end
|
38
37
|
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
namespace :test do
|
39
|
+
desc 'Test recent changes'
|
40
|
+
Rake::TestTask.new(:recent => "db:test:prepare") do |t|
|
41
|
+
since = TEST_CHANGES_SINCE
|
42
|
+
touched = FileList['test/**/*_test.rb'].select { |path| File.mtime(path) > since } +
|
43
|
+
recent_tests('app/models/*.rb', 'test/unit', since) +
|
44
|
+
recent_tests('app/controllers/*.rb', 'test/functional', since)
|
45
|
+
|
46
|
+
t.libs << 'test'
|
47
|
+
t.verbose = true
|
48
|
+
t.test_files = touched.uniq
|
49
|
+
end
|
42
50
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
51
|
+
desc 'Test changes since last checkin (only Subversion)'
|
52
|
+
Rake::TestTask.new(:uncommitted => "db:test:prepare") do |t|
|
53
|
+
def t.file_list
|
54
|
+
changed_since_checkin = silence_stderr { `svn status` }.map { |path| path.chomp[7 .. -1] }
|
55
|
+
|
56
|
+
models = changed_since_checkin.select { |path| path =~ /app\/models\/.*\.rb/ }
|
57
|
+
controllers = changed_since_checkin.select { |path| path =~ /app\/controllers\/.*\.rb/ }
|
58
|
+
|
59
|
+
unit_tests = models.map { |model| "test/unit/#{File.basename(model, '.rb')}_test.rb" }
|
60
|
+
functional_tests = controllers.map { |controller| "test/functional/#{File.basename(controller, '.rb')}_test.rb" }
|
61
|
+
|
62
|
+
unit_tests.uniq + functional_tests.uniq
|
63
|
+
end
|
64
|
+
|
65
|
+
t.libs << 'test'
|
66
|
+
t.verbose = true
|
47
67
|
end
|
48
68
|
|
49
|
-
|
69
|
+
desc "Run the unit tests in test/unit"
|
70
|
+
Rake::TestTask.new(:units => "db:test:prepare") do |t|
|
71
|
+
t.libs << "test"
|
72
|
+
t.pattern = 'test/unit/**/*_test.rb'
|
73
|
+
t.verbose = true
|
74
|
+
end
|
75
|
+
|
76
|
+
desc "Run the functional tests in test/functional"
|
77
|
+
Rake::TestTask.new(:functionals => "db:test:prepare") do |t|
|
78
|
+
t.libs << "test"
|
79
|
+
t.pattern = 'test/functional/**/*_test.rb'
|
80
|
+
t.verbose = true
|
81
|
+
end
|
82
|
+
|
83
|
+
desc "Run the integration tests in test/integration"
|
84
|
+
Rake::TestTask.new(:integration => "db:test:prepare") do |t|
|
85
|
+
t.libs << "test"
|
86
|
+
t.pattern = 'test/integration/**/*_test.rb'
|
87
|
+
t.verbose = true
|
88
|
+
end
|
89
|
+
|
90
|
+
desc "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)"
|
91
|
+
Rake::TestTask.new(:plugins => :environment) do |t|
|
92
|
+
t.libs << "test"
|
93
|
+
|
94
|
+
if ENV['PLUGIN']
|
95
|
+
t.pattern = "vendor/plugins/#{ENV['PLUGIN']}/test/**/*_test.rb"
|
96
|
+
else
|
97
|
+
t.pattern = 'vendor/plugins/**/test/**/*_test.rb'
|
98
|
+
end
|
99
|
+
|
100
|
+
t.verbose = true
|
101
|
+
end
|
50
102
|
end
|