rails 2.3.18 → 3.0.0.beta

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.

Files changed (215) hide show
  1. metadata +61 -295
  2. data/CHANGELOG +0 -2193
  3. data/MIT-LICENSE +0 -20
  4. data/README +0 -243
  5. data/Rakefile +0 -365
  6. data/bin/about +0 -4
  7. data/bin/console +0 -3
  8. data/bin/dbconsole +0 -3
  9. data/bin/destroy +0 -3
  10. data/bin/generate +0 -3
  11. data/bin/performance/benchmarker +0 -3
  12. data/bin/performance/profiler +0 -3
  13. data/bin/plugin +0 -3
  14. data/bin/rails +0 -21
  15. data/bin/runner +0 -3
  16. data/bin/server +0 -3
  17. data/builtin/rails_info/rails/info.rb +0 -131
  18. data/builtin/rails_info/rails/info_controller.rb +0 -9
  19. data/builtin/rails_info/rails/info_helper.rb +0 -2
  20. data/builtin/rails_info/rails_info_controller.rb +0 -2
  21. data/configs/databases/frontbase.yml +0 -28
  22. data/configs/databases/ibm_db.yml +0 -62
  23. data/configs/databases/mysql.yml +0 -60
  24. data/configs/databases/oracle.yml +0 -39
  25. data/configs/databases/postgresql.yml +0 -51
  26. data/configs/databases/sqlite2.yml +0 -19
  27. data/configs/databases/sqlite3.yml +0 -22
  28. data/configs/empty.log +0 -0
  29. data/configs/initializers/backtrace_silencers.rb +0 -7
  30. data/configs/initializers/cookie_verification_secret.rb +0 -7
  31. data/configs/initializers/inflections.rb +0 -10
  32. data/configs/initializers/mime_types.rb +0 -5
  33. data/configs/initializers/new_rails_defaults.rb +0 -21
  34. data/configs/initializers/session_store.rb +0 -15
  35. data/configs/locales/en.yml +0 -5
  36. data/configs/routes.rb +0 -43
  37. data/configs/seeds.rb +0 -7
  38. data/dispatches/config.ru +0 -7
  39. data/dispatches/dispatch.fcgi +0 -24
  40. data/dispatches/dispatch.rb +0 -10
  41. data/dispatches/gateway.cgi +0 -97
  42. data/doc/README_FOR_APP +0 -2
  43. data/environments/boot.rb +0 -114
  44. data/environments/development.rb +0 -17
  45. data/environments/environment.rb +0 -41
  46. data/environments/production.rb +0 -28
  47. data/environments/test.rb +0 -28
  48. data/fresh_rakefile +0 -10
  49. data/helpers/application_controller.rb +0 -10
  50. data/helpers/application_helper.rb +0 -3
  51. data/helpers/performance_test.rb +0 -9
  52. data/helpers/test_helper.rb +0 -38
  53. data/html/404.html +0 -30
  54. data/html/422.html +0 -30
  55. data/html/500.html +0 -30
  56. data/html/favicon.ico +0 -0
  57. data/html/images/rails.png +0 -0
  58. data/html/index.html +0 -275
  59. data/html/javascripts/application.js +0 -2
  60. data/html/javascripts/controls.js +0 -963
  61. data/html/javascripts/dragdrop.js +0 -973
  62. data/html/javascripts/effects.js +0 -1128
  63. data/html/javascripts/prototype.js +0 -4320
  64. data/html/robots.txt +0 -5
  65. data/lib/code_statistics.rb +0 -107
  66. data/lib/commands.rb +0 -17
  67. data/lib/commands/about.rb +0 -3
  68. data/lib/commands/console.rb +0 -45
  69. data/lib/commands/dbconsole.rb +0 -87
  70. data/lib/commands/destroy.rb +0 -6
  71. data/lib/commands/generate.rb +0 -6
  72. data/lib/commands/ncgi/listener +0 -86
  73. data/lib/commands/ncgi/tracker +0 -69
  74. data/lib/commands/performance/benchmarker.rb +0 -24
  75. data/lib/commands/performance/profiler.rb +0 -50
  76. data/lib/commands/plugin.rb +0 -968
  77. data/lib/commands/runner.rb +0 -54
  78. data/lib/commands/server.rb +0 -114
  79. data/lib/commands/update.rb +0 -4
  80. data/lib/console_app.rb +0 -30
  81. data/lib/console_sandbox.rb +0 -6
  82. data/lib/console_with_helpers.rb +0 -5
  83. data/lib/dispatcher.rb +0 -24
  84. data/lib/fcgi_handler.rb +0 -239
  85. data/lib/initializer.rb +0 -1152
  86. data/lib/performance_test_help.rb +0 -5
  87. data/lib/rails/backtrace_cleaner.rb +0 -54
  88. data/lib/rails/gem_builder.rb +0 -21
  89. data/lib/rails/gem_dependency.rb +0 -317
  90. data/lib/rails/plugin.rb +0 -179
  91. data/lib/rails/plugin/loader.rb +0 -198
  92. data/lib/rails/plugin/locator.rb +0 -100
  93. data/lib/rails/rack.rb +0 -8
  94. data/lib/rails/rack/debugger.rb +0 -23
  95. data/lib/rails/rack/log_tailer.rb +0 -35
  96. data/lib/rails/rack/metal.rb +0 -51
  97. data/lib/rails/rack/static.rb +0 -46
  98. data/lib/rails/vendor_gem_source_index.rb +0 -140
  99. data/lib/rails/version.rb +0 -9
  100. data/lib/rails_generator.rb +0 -46
  101. data/lib/rails_generator/base.rb +0 -266
  102. data/lib/rails_generator/commands.rb +0 -621
  103. data/lib/rails_generator/generated_attribute.rb +0 -47
  104. data/lib/rails_generator/generators/applications/app/USAGE +0 -9
  105. data/lib/rails_generator/generators/applications/app/app_generator.rb +0 -266
  106. data/lib/rails_generator/generators/applications/app/scm/git.rb +0 -18
  107. data/lib/rails_generator/generators/applications/app/scm/scm.rb +0 -8
  108. data/lib/rails_generator/generators/applications/app/scm/svn.rb +0 -7
  109. data/lib/rails_generator/generators/applications/app/template_runner.rb +0 -401
  110. data/lib/rails_generator/generators/components/controller/USAGE +0 -30
  111. data/lib/rails_generator/generators/components/controller/controller_generator.rb +0 -43
  112. data/lib/rails_generator/generators/components/controller/templates/controller.rb +0 -7
  113. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +0 -8
  114. data/lib/rails_generator/generators/components/controller/templates/helper.rb +0 -2
  115. data/lib/rails_generator/generators/components/controller/templates/helper_test.rb +0 -4
  116. data/lib/rails_generator/generators/components/controller/templates/view.html.erb +0 -2
  117. data/lib/rails_generator/generators/components/helper/USAGE +0 -24
  118. data/lib/rails_generator/generators/components/helper/helper_generator.rb +0 -25
  119. data/lib/rails_generator/generators/components/helper/templates/helper.rb +0 -2
  120. data/lib/rails_generator/generators/components/helper/templates/helper_test.rb +0 -4
  121. data/lib/rails_generator/generators/components/integration_test/USAGE +0 -8
  122. data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +0 -16
  123. data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +0 -10
  124. data/lib/rails_generator/generators/components/mailer/USAGE +0 -16
  125. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +0 -30
  126. data/lib/rails_generator/generators/components/mailer/templates/fixture.erb +0 -3
  127. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  128. data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +0 -15
  129. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +0 -20
  130. data/lib/rails_generator/generators/components/mailer/templates/view.erb +0 -3
  131. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  132. data/lib/rails_generator/generators/components/metal/USAGE +0 -8
  133. data/lib/rails_generator/generators/components/metal/metal_generator.rb +0 -8
  134. data/lib/rails_generator/generators/components/metal/templates/metal.rb +0 -12
  135. data/lib/rails_generator/generators/components/migration/USAGE +0 -29
  136. data/lib/rails_generator/generators/components/migration/migration_generator.rb +0 -20
  137. data/lib/rails_generator/generators/components/migration/templates/migration.rb +0 -11
  138. data/lib/rails_generator/generators/components/model/USAGE +0 -27
  139. data/lib/rails_generator/generators/components/model/model_generator.rb +0 -52
  140. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -23
  141. data/lib/rails_generator/generators/components/model/templates/migration.rb +0 -16
  142. data/lib/rails_generator/generators/components/model/templates/model.rb +0 -5
  143. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -8
  144. data/lib/rails_generator/generators/components/observer/USAGE +0 -13
  145. data/lib/rails_generator/generators/components/observer/observer_generator.rb +0 -16
  146. data/lib/rails_generator/generators/components/observer/templates/observer.rb +0 -2
  147. data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +0 -8
  148. data/lib/rails_generator/generators/components/performance_test/USAGE +0 -8
  149. data/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +0 -16
  150. data/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +0 -9
  151. data/lib/rails_generator/generators/components/plugin/USAGE +0 -25
  152. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +0 -39
  153. data/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +0 -20
  154. data/lib/rails_generator/generators/components/plugin/templates/README +0 -13
  155. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +0 -23
  156. data/lib/rails_generator/generators/components/plugin/templates/USAGE +0 -8
  157. data/lib/rails_generator/generators/components/plugin/templates/generator.rb +0 -8
  158. data/lib/rails_generator/generators/components/plugin/templates/init.rb +0 -1
  159. data/lib/rails_generator/generators/components/plugin/templates/install.rb +0 -1
  160. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +0 -1
  161. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +0 -4
  162. data/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +0 -4
  163. data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +0 -1
  164. data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +0 -8
  165. data/lib/rails_generator/generators/components/resource/USAGE +0 -23
  166. data/lib/rails_generator/generators/components/resource/resource_generator.rb +0 -76
  167. data/lib/rails_generator/generators/components/resource/templates/controller.rb +0 -2
  168. data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +0 -8
  169. data/lib/rails_generator/generators/components/resource/templates/helper.rb +0 -2
  170. data/lib/rails_generator/generators/components/resource/templates/helper_test.rb +0 -4
  171. data/lib/rails_generator/generators/components/scaffold/USAGE +0 -29
  172. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +0 -103
  173. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +0 -83
  174. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +0 -45
  175. data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +0 -2
  176. data/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +0 -4
  177. data/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +0 -17
  178. data/lib/rails_generator/generators/components/scaffold/templates/style.css +0 -54
  179. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +0 -18
  180. data/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +0 -24
  181. data/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +0 -17
  182. data/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +0 -10
  183. data/lib/rails_generator/generators/components/session_migration/USAGE +0 -10
  184. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +0 -18
  185. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +0 -16
  186. data/lib/rails_generator/lookup.rb +0 -249
  187. data/lib/rails_generator/manifest.rb +0 -53
  188. data/lib/rails_generator/options.rb +0 -150
  189. data/lib/rails_generator/scripts.rb +0 -89
  190. data/lib/rails_generator/scripts/destroy.rb +0 -29
  191. data/lib/rails_generator/scripts/generate.rb +0 -7
  192. data/lib/rails_generator/scripts/update.rb +0 -12
  193. data/lib/rails_generator/secret_key_generator.rb +0 -24
  194. data/lib/rails_generator/simple_logger.rb +0 -46
  195. data/lib/rails_generator/spec.rb +0 -44
  196. data/lib/railties_path.rb +0 -1
  197. data/lib/ruby_version_check.rb +0 -17
  198. data/lib/rubyprof_ext.rb +0 -35
  199. data/lib/source_annotation_extractor.rb +0 -102
  200. data/lib/tasks/annotations.rake +0 -20
  201. data/lib/tasks/databases.rake +0 -436
  202. data/lib/tasks/documentation.rake +0 -93
  203. data/lib/tasks/framework.rake +0 -146
  204. data/lib/tasks/gems.rake +0 -78
  205. data/lib/tasks/log.rake +0 -9
  206. data/lib/tasks/middleware.rake +0 -7
  207. data/lib/tasks/misc.rake +0 -63
  208. data/lib/tasks/rails.rb +0 -14
  209. data/lib/tasks/routes.rake +0 -18
  210. data/lib/tasks/statistics.rake +0 -17
  211. data/lib/tasks/testing.rake +0 -139
  212. data/lib/tasks/tmp.rake +0 -37
  213. data/lib/test_help.rb +0 -38
  214. data/lib/webrick_server.rb +0 -156
  215. data/railties.gemspec +0 -22
@@ -1,5 +0,0 @@
1
- # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
- #
3
- # To ban all spiders from the entire site uncomment the next two lines:
4
- # User-Agent: *
5
- # Disallow: /
@@ -1,107 +0,0 @@
1
- class CodeStatistics #:nodoc:
2
-
3
- TEST_TYPES = %w(Units Functionals Unit\ tests Functional\ tests Integration\ tests)
4
-
5
- def initialize(*pairs)
6
- @pairs = pairs
7
- @statistics = calculate_statistics
8
- @total = calculate_total if pairs.length > 1
9
- end
10
-
11
- def to_s
12
- print_header
13
- @pairs.each { |pair| print_line(pair.first, @statistics[pair.first]) }
14
- print_splitter
15
-
16
- if @total
17
- print_line("Total", @total)
18
- print_splitter
19
- end
20
-
21
- print_code_test_stats
22
- end
23
-
24
- private
25
- def calculate_statistics
26
- @pairs.inject({}) { |stats, pair| stats[pair.first] = calculate_directory_statistics(pair.last); stats }
27
- end
28
-
29
- def calculate_directory_statistics(directory, pattern = /.*\.rb$/)
30
- stats = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }
31
-
32
- Dir.foreach(directory) do |file_name|
33
- if File.stat(directory + "/" + file_name).directory? and (/^\./ !~ file_name)
34
- newstats = calculate_directory_statistics(directory + "/" + file_name, pattern)
35
- stats.each { |k, v| stats[k] += newstats[k] }
36
- end
37
-
38
- next unless file_name =~ pattern
39
-
40
- f = File.open(directory + "/" + file_name)
41
-
42
- while line = f.gets
43
- stats["lines"] += 1
44
- stats["classes"] += 1 if line =~ /class [A-Z]/
45
- stats["methods"] += 1 if line =~ /def [a-z]/
46
- stats["codelines"] += 1 unless line =~ /^\s*$/ || line =~ /^\s*#/
47
- end
48
- end
49
-
50
- stats
51
- end
52
-
53
- def calculate_total
54
- total = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }
55
- @statistics.each_value { |pair| pair.each { |k, v| total[k] += v } }
56
- total
57
- end
58
-
59
- def calculate_code
60
- code_loc = 0
61
- @statistics.each { |k, v| code_loc += v['codelines'] unless TEST_TYPES.include? k }
62
- code_loc
63
- end
64
-
65
- def calculate_tests
66
- test_loc = 0
67
- @statistics.each { |k, v| test_loc += v['codelines'] if TEST_TYPES.include? k }
68
- test_loc
69
- end
70
-
71
- def print_header
72
- print_splitter
73
- puts "| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |"
74
- print_splitter
75
- end
76
-
77
- def print_splitter
78
- puts "+----------------------+-------+-------+---------+---------+-----+-------+"
79
- end
80
-
81
- def print_line(name, statistics)
82
- m_over_c = (statistics["methods"] / statistics["classes"]) rescue m_over_c = 0
83
- loc_over_m = (statistics["codelines"] / statistics["methods"]) - 2 rescue loc_over_m = 0
84
-
85
- start = if TEST_TYPES.include? name
86
- "| #{name.ljust(20)} "
87
- else
88
- "| #{name.ljust(20)} "
89
- end
90
-
91
- puts start +
92
- "| #{statistics["lines"].to_s.rjust(5)} " +
93
- "| #{statistics["codelines"].to_s.rjust(5)} " +
94
- "| #{statistics["classes"].to_s.rjust(7)} " +
95
- "| #{statistics["methods"].to_s.rjust(7)} " +
96
- "| #{m_over_c.to_s.rjust(3)} " +
97
- "| #{loc_over_m.to_s.rjust(5)} |"
98
- end
99
-
100
- def print_code_test_stats
101
- code = calculate_code
102
- tests = calculate_tests
103
-
104
- puts " Code LOC: #{code} Test LOC: #{tests} Code to Test Ratio: 1:#{sprintf("%.1f", tests.to_f/code)}"
105
- puts ""
106
- end
107
- end
@@ -1,17 +0,0 @@
1
- commands = Dir["#{File.dirname(__FILE__)}/commands/*.rb"].collect { |file_path| File.basename(file_path).split(".").first }
2
-
3
- if commands.include?(ARGV.first)
4
- require "#{File.dirname(__FILE__)}/commands/#{ARGV.shift}"
5
- else
6
- puts <<-USAGE
7
- The 'run' provides a unified access point for all the default Rails' commands.
8
-
9
- Usage: ./script/run <command> [OPTIONS]
10
-
11
- Examples:
12
- ./script/run generate controller Admin
13
- ./script/run process reaper
14
-
15
- USAGE
16
- puts "Choose: #{commands.join(", ")}"
17
- end
@@ -1,3 +0,0 @@
1
- require "#{RAILS_ROOT}/config/environment"
2
- require 'rails/info'
3
- puts Rails::Info
@@ -1,45 +0,0 @@
1
- irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
2
-
3
- require 'optparse'
4
-
5
- options = { :sandbox => false, :irb => irb }
6
- OptionParser.new do |opt|
7
- opt.banner = "Usage: console [environment] [options]"
8
- opt.on('-s', '--sandbox', 'Rollback database modifications on exit.') { |v| options[:sandbox] = v }
9
- opt.on("--irb=[#{irb}]", 'Invoke a different irb.') { |v| options[:irb] = v }
10
- opt.on("--debugger", 'Enable ruby-debugging for the console.') { |v| options[:debugger] = v }
11
- opt.parse!(ARGV)
12
- end
13
-
14
- libs = " -r irb/completion"
15
- libs << %( -r "#{RAILS_ROOT}/config/environment")
16
- libs << " -r console_app"
17
- libs << " -r console_sandbox" if options[:sandbox]
18
- libs << " -r console_with_helpers"
19
-
20
- if options[:debugger]
21
- begin
22
- require 'ruby-debug'
23
- libs << " -r ruby-debug"
24
- puts "=> Debugger enabled"
25
- rescue Exception
26
- puts "You need to install ruby-debug to run the console in debugging mode. With gems, use 'gem install ruby-debug'"
27
- exit
28
- end
29
- end
30
-
31
- ENV['RAILS_ENV'] = case ARGV.first
32
- when "p"; "production"
33
- when "d"; "development"
34
- when "t"; "test"
35
- else
36
- ARGV.first || ENV['RAILS_ENV'] || 'development'
37
- end
38
-
39
- if options[:sandbox]
40
- puts "Loading #{ENV['RAILS_ENV']} environment in sandbox (Rails #{Rails.version})"
41
- puts "Any modifications you make will be rolled back on exit"
42
- else
43
- puts "Loading #{ENV['RAILS_ENV']} environment (Rails #{Rails.version})"
44
- end
45
- exec "#{options[:irb]} #{libs} --simple-prompt"
@@ -1,87 +0,0 @@
1
- require 'erb'
2
- require 'yaml'
3
- require 'optparse'
4
-
5
- include_password = false
6
- options = {}
7
-
8
- OptionParser.new do |opt|
9
- opt.banner = "Usage: dbconsole [options] [environment]"
10
- opt.on("-p", "--include-password", "Automatically provide the password from database.yml") do |v|
11
- include_password = true
12
- end
13
-
14
- opt.on("--mode [MODE]", ['html', 'list', 'line', 'column'],
15
- "Automatically put the sqlite3 database in the specified mode (html, list, line, column).") do |mode|
16
- options['mode'] = mode
17
- end
18
-
19
- opt.on("-h", "--header") do |h|
20
- options['header'] = h
21
- end
22
-
23
- opt.parse!(ARGV)
24
- abort opt.to_s unless (0..1).include?(ARGV.size)
25
- end
26
-
27
- env = ARGV.first || ENV['RAILS_ENV'] || 'development'
28
- unless config = YAML::load(ERB.new(IO.read(RAILS_ROOT + "/config/database.yml")).result)[env]
29
- abort "No database is configured for the environment '#{env}'"
30
- end
31
-
32
-
33
- def find_cmd(*commands)
34
- dirs_on_path = ENV['PATH'].to_s.split(File::PATH_SEPARATOR)
35
- commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/
36
-
37
- full_path_command = nil
38
- found = commands.detect do |cmd|
39
- dir = dirs_on_path.detect do |path|
40
- full_path_command = File.join(path, cmd)
41
- File.executable? full_path_command
42
- end
43
- end
44
- found ? full_path_command : abort("Couldn't find database client: #{commands.join(', ')}. Check your $PATH and try again.")
45
- end
46
-
47
- case config["adapter"]
48
- when /^mysql/
49
- args = {
50
- 'host' => '--host',
51
- 'port' => '--port',
52
- 'socket' => '--socket',
53
- 'username' => '--user',
54
- 'encoding' => '--default-character-set'
55
- }.map { |opt, arg| "#{arg}=#{config[opt]}" if config[opt] }.compact
56
-
57
- if config['password'] && include_password
58
- args << "--password=#{config['password']}"
59
- elsif config['password'] && !config['password'].to_s.empty?
60
- args << "-p"
61
- end
62
-
63
- args << config['database']
64
-
65
- exec(find_cmd('mysql', 'mysql5'), *args)
66
-
67
- when "postgresql"
68
- ENV['PGUSER'] = config["username"] if config["username"]
69
- ENV['PGHOST'] = config["host"] if config["host"]
70
- ENV['PGPORT'] = config["port"].to_s if config["port"]
71
- ENV['PGPASSWORD'] = config["password"].to_s if config["password"] && include_password
72
- exec(find_cmd('psql'), config["database"])
73
-
74
- when "sqlite"
75
- exec(find_cmd('sqlite'), config["database"])
76
-
77
- when "sqlite3"
78
- args = []
79
-
80
- args << "-#{options['mode']}" if options['mode']
81
- args << "-header" if options['header']
82
- args << config['database']
83
-
84
- exec(find_cmd('sqlite3'), *args)
85
- else
86
- abort "Unknown command-line client for #{config['database']}. Submit a Rails patch to add support!"
87
- end
@@ -1,6 +0,0 @@
1
- require "#{RAILS_ROOT}/config/environment"
2
- require 'rails_generator'
3
- require 'rails_generator/scripts/destroy'
4
-
5
- ARGV.shift if ['--help', '-h'].include?(ARGV[0])
6
- Rails::Generator::Scripts::Destroy.new.run(ARGV)
@@ -1,6 +0,0 @@
1
- require "#{RAILS_ROOT}/config/environment"
2
- require 'rails_generator'
3
- require 'rails_generator/scripts/generate'
4
-
5
- ARGV.shift if ['--help', '-h'].include?(ARGV[0])
6
- Rails::Generator::Scripts::Generate.new.run(ARGV)
@@ -1,86 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'stringio'
4
- require 'fileutils'
5
- require 'fcgi_handler'
6
-
7
- def message(s)
8
- $stderr.puts "listener: #{s}" if ENV && ENV["DEBUG_GATEWAY"]
9
- end
10
-
11
- class RemoteCGI < CGI
12
- attr_accessor :stdinput, :stdoutput, :env_table
13
- def initialize(env_table, input = nil, output = nil)
14
- self.env_table = env_table
15
- self.stdinput = input || StringIO.new
16
- self.stdoutput = output || StringIO.new
17
- super()
18
- end
19
-
20
- def out(stream) # Ignore the requested output stream
21
- super(stdoutput)
22
- end
23
- end
24
-
25
- class Listener
26
- include DRbUndumped
27
-
28
- def initialize(timeout, socket_path)
29
- @socket = File.expand_path(socket_path)
30
- @mutex = Mutex.new
31
- @active = false
32
- @timeout = timeout
33
-
34
- @handler = RailsFCGIHandler.new
35
- @handler.extend DRbUndumped
36
-
37
- message 'opening socket'
38
- DRb.start_service("drbunix:#{@socket}", self)
39
-
40
- message 'entering process loop'
41
- @handler.process! self
42
- end
43
-
44
- def each_cgi(&cgi_block)
45
- @cgi_block = cgi_block
46
- message 'entering idle loop'
47
- loop do
48
- sleep @timeout rescue nil
49
- die! unless @active
50
- @active = false
51
- end
52
- end
53
-
54
- def process(env, input)
55
- message 'received request'
56
- @mutex.synchronize do
57
- @active = true
58
-
59
- message 'creating input stream'
60
- input_stream = StringIO.new(input)
61
- message 'building CGI instance'
62
- cgi = RemoteCGI.new(eval(env), input_stream)
63
-
64
- message 'yielding to fcgi handler'
65
- @cgi_block.call cgi
66
- message 'yield finished -- sending output'
67
-
68
- cgi.stdoutput.seek(0)
69
- output = cgi.stdoutput.read
70
-
71
- return output
72
- end
73
- end
74
-
75
- def die!
76
- message 'shutting down'
77
- DRb.stop_service
78
- FileUtils.rm_f @socket
79
- Kernel.exit 0
80
- end
81
- end
82
-
83
- socket_path = ARGV.shift
84
- timeout = (ARGV.shift || 90).to_i
85
-
86
- Listener.new(timeout, socket_path)
@@ -1,69 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'drb'
4
- require 'thread'
5
-
6
- def message(s)
7
- $stderr.puts "tracker: #{s}" if ENV && ENV["DEBUG_GATEWAY"]
8
- end
9
-
10
- class Tracker
11
- include DRbUndumped
12
-
13
- def initialize(instances, socket_path)
14
- @instances = instances
15
- @socket = File.expand_path(socket_path)
16
- @active = false
17
-
18
- @listeners = []
19
- @instances.times { @listeners << Mutex.new }
20
-
21
- message "using #{@listeners.length} listeners"
22
- message "opening socket at #{@socket}"
23
-
24
- @service = DRb.start_service("drbunix://#{@socket}", self)
25
- end
26
-
27
- def with_listener
28
- message "listener requested"
29
-
30
- mutex = has_lock = index = nil
31
- 3.times do
32
- @listeners.each_with_index do |mutex, index|
33
- has_lock = mutex.try_lock
34
- break if has_lock
35
- end
36
- break if has_lock
37
- sleep 0.05
38
- end
39
-
40
- if has_lock
41
- message "obtained listener #{index}"
42
- @active = true
43
- begin yield index
44
- ensure
45
- mutex.unlock
46
- message "released listener #{index}"
47
- end
48
- else
49
- message "dropping request because no listeners are available!"
50
- end
51
- end
52
-
53
- def background(check_interval = nil)
54
- if check_interval
55
- loop do
56
- sleep check_interval
57
- message "Idle for #{check_interval}, shutting down" unless @active
58
- @active = false
59
- Kernel.exit 0
60
- end
61
- else DRb.thread.join
62
- end
63
- end
64
- end
65
-
66
- socket_path = ARGV.shift
67
- instances = ARGV.shift.to_i
68
- t = Tracker.new(instances, socket_path)
69
- t.background(ARGV.first ? ARGV.shift.to_i : 90)
@@ -1,24 +0,0 @@
1
- if ARGV.empty?
2
- puts "Usage: ./script/performance/benchmarker [times] 'Person.expensive_way' 'Person.another_expensive_way' ..."
3
- exit 1
4
- end
5
-
6
- begin
7
- N = Integer(ARGV.first)
8
- ARGV.shift
9
- rescue ArgumentError
10
- N = 1
11
- end
12
-
13
- require RAILS_ROOT + '/config/environment'
14
- require 'benchmark'
15
- include Benchmark
16
-
17
- # Don't include compilation in the benchmark
18
- ARGV.each { |expression| eval(expression) }
19
-
20
- bm(6) do |x|
21
- ARGV.each_with_index do |expression, idx|
22
- x.report("##{idx + 1}") { N.times { eval(expression) } }
23
- end
24
- end