rails 2.3.18 → 7.1.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +2 -2
  3. data/README.md +97 -0
  4. metadata +207 -332
  5. data/CHANGELOG +0 -2193
  6. data/README +0 -243
  7. data/Rakefile +0 -365
  8. data/bin/about +0 -4
  9. data/bin/console +0 -3
  10. data/bin/dbconsole +0 -3
  11. data/bin/destroy +0 -3
  12. data/bin/generate +0 -3
  13. data/bin/performance/benchmarker +0 -3
  14. data/bin/performance/profiler +0 -3
  15. data/bin/plugin +0 -3
  16. data/bin/rails +0 -21
  17. data/bin/runner +0 -3
  18. data/bin/server +0 -3
  19. data/builtin/rails_info/rails/info.rb +0 -131
  20. data/builtin/rails_info/rails/info_controller.rb +0 -9
  21. data/builtin/rails_info/rails/info_helper.rb +0 -2
  22. data/builtin/rails_info/rails_info_controller.rb +0 -2
  23. data/configs/databases/frontbase.yml +0 -28
  24. data/configs/databases/ibm_db.yml +0 -62
  25. data/configs/databases/mysql.yml +0 -60
  26. data/configs/databases/oracle.yml +0 -39
  27. data/configs/databases/postgresql.yml +0 -51
  28. data/configs/databases/sqlite2.yml +0 -19
  29. data/configs/databases/sqlite3.yml +0 -22
  30. data/configs/empty.log +0 -0
  31. data/configs/initializers/backtrace_silencers.rb +0 -7
  32. data/configs/initializers/cookie_verification_secret.rb +0 -7
  33. data/configs/initializers/inflections.rb +0 -10
  34. data/configs/initializers/mime_types.rb +0 -5
  35. data/configs/initializers/new_rails_defaults.rb +0 -21
  36. data/configs/initializers/session_store.rb +0 -15
  37. data/configs/locales/en.yml +0 -5
  38. data/configs/routes.rb +0 -43
  39. data/configs/seeds.rb +0 -7
  40. data/dispatches/config.ru +0 -7
  41. data/dispatches/dispatch.fcgi +0 -24
  42. data/dispatches/dispatch.rb +0 -10
  43. data/dispatches/gateway.cgi +0 -97
  44. data/doc/README_FOR_APP +0 -2
  45. data/environments/boot.rb +0 -114
  46. data/environments/development.rb +0 -17
  47. data/environments/environment.rb +0 -41
  48. data/environments/production.rb +0 -28
  49. data/environments/test.rb +0 -28
  50. data/fresh_rakefile +0 -10
  51. data/helpers/application_controller.rb +0 -10
  52. data/helpers/application_helper.rb +0 -3
  53. data/helpers/performance_test.rb +0 -9
  54. data/helpers/test_helper.rb +0 -38
  55. data/html/404.html +0 -30
  56. data/html/422.html +0 -30
  57. data/html/500.html +0 -30
  58. data/html/favicon.ico +0 -0
  59. data/html/images/rails.png +0 -0
  60. data/html/index.html +0 -275
  61. data/html/javascripts/application.js +0 -2
  62. data/html/javascripts/controls.js +0 -963
  63. data/html/javascripts/dragdrop.js +0 -973
  64. data/html/javascripts/effects.js +0 -1128
  65. data/html/javascripts/prototype.js +0 -4320
  66. data/html/robots.txt +0 -5
  67. data/lib/code_statistics.rb +0 -107
  68. data/lib/commands/about.rb +0 -3
  69. data/lib/commands/console.rb +0 -45
  70. data/lib/commands/dbconsole.rb +0 -87
  71. data/lib/commands/destroy.rb +0 -6
  72. data/lib/commands/generate.rb +0 -6
  73. data/lib/commands/ncgi/listener +0 -86
  74. data/lib/commands/ncgi/tracker +0 -69
  75. data/lib/commands/performance/benchmarker.rb +0 -24
  76. data/lib/commands/performance/profiler.rb +0 -50
  77. data/lib/commands/plugin.rb +0 -968
  78. data/lib/commands/runner.rb +0 -54
  79. data/lib/commands/server.rb +0 -114
  80. data/lib/commands/update.rb +0 -4
  81. data/lib/commands.rb +0 -17
  82. data/lib/console_app.rb +0 -30
  83. data/lib/console_sandbox.rb +0 -6
  84. data/lib/console_with_helpers.rb +0 -5
  85. data/lib/dispatcher.rb +0 -24
  86. data/lib/fcgi_handler.rb +0 -239
  87. data/lib/initializer.rb +0 -1152
  88. data/lib/performance_test_help.rb +0 -5
  89. data/lib/rails/backtrace_cleaner.rb +0 -54
  90. data/lib/rails/gem_builder.rb +0 -21
  91. data/lib/rails/gem_dependency.rb +0 -317
  92. data/lib/rails/plugin/loader.rb +0 -198
  93. data/lib/rails/plugin/locator.rb +0 -100
  94. data/lib/rails/plugin.rb +0 -179
  95. data/lib/rails/rack/debugger.rb +0 -23
  96. data/lib/rails/rack/log_tailer.rb +0 -35
  97. data/lib/rails/rack/metal.rb +0 -51
  98. data/lib/rails/rack/static.rb +0 -46
  99. data/lib/rails/rack.rb +0 -8
  100. data/lib/rails/vendor_gem_source_index.rb +0 -140
  101. data/lib/rails/version.rb +0 -9
  102. data/lib/rails_generator/base.rb +0 -266
  103. data/lib/rails_generator/commands.rb +0 -621
  104. data/lib/rails_generator/generated_attribute.rb +0 -47
  105. data/lib/rails_generator/generators/applications/app/USAGE +0 -9
  106. data/lib/rails_generator/generators/applications/app/app_generator.rb +0 -266
  107. data/lib/rails_generator/generators/applications/app/scm/git.rb +0 -18
  108. data/lib/rails_generator/generators/applications/app/scm/scm.rb +0 -8
  109. data/lib/rails_generator/generators/applications/app/scm/svn.rb +0 -7
  110. data/lib/rails_generator/generators/applications/app/template_runner.rb +0 -401
  111. data/lib/rails_generator/generators/components/controller/USAGE +0 -30
  112. data/lib/rails_generator/generators/components/controller/controller_generator.rb +0 -43
  113. data/lib/rails_generator/generators/components/controller/templates/controller.rb +0 -7
  114. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +0 -8
  115. data/lib/rails_generator/generators/components/controller/templates/helper.rb +0 -2
  116. data/lib/rails_generator/generators/components/controller/templates/helper_test.rb +0 -4
  117. data/lib/rails_generator/generators/components/controller/templates/view.html.erb +0 -2
  118. data/lib/rails_generator/generators/components/helper/USAGE +0 -24
  119. data/lib/rails_generator/generators/components/helper/helper_generator.rb +0 -25
  120. data/lib/rails_generator/generators/components/helper/templates/helper.rb +0 -2
  121. data/lib/rails_generator/generators/components/helper/templates/helper_test.rb +0 -4
  122. data/lib/rails_generator/generators/components/integration_test/USAGE +0 -8
  123. data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +0 -16
  124. data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +0 -10
  125. data/lib/rails_generator/generators/components/mailer/USAGE +0 -16
  126. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +0 -30
  127. data/lib/rails_generator/generators/components/mailer/templates/fixture.erb +0 -3
  128. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  129. data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +0 -15
  130. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +0 -20
  131. data/lib/rails_generator/generators/components/mailer/templates/view.erb +0 -3
  132. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  133. data/lib/rails_generator/generators/components/metal/USAGE +0 -8
  134. data/lib/rails_generator/generators/components/metal/metal_generator.rb +0 -8
  135. data/lib/rails_generator/generators/components/metal/templates/metal.rb +0 -12
  136. data/lib/rails_generator/generators/components/migration/USAGE +0 -29
  137. data/lib/rails_generator/generators/components/migration/migration_generator.rb +0 -20
  138. data/lib/rails_generator/generators/components/migration/templates/migration.rb +0 -11
  139. data/lib/rails_generator/generators/components/model/USAGE +0 -27
  140. data/lib/rails_generator/generators/components/model/model_generator.rb +0 -52
  141. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -23
  142. data/lib/rails_generator/generators/components/model/templates/migration.rb +0 -16
  143. data/lib/rails_generator/generators/components/model/templates/model.rb +0 -5
  144. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -8
  145. data/lib/rails_generator/generators/components/observer/USAGE +0 -13
  146. data/lib/rails_generator/generators/components/observer/observer_generator.rb +0 -16
  147. data/lib/rails_generator/generators/components/observer/templates/observer.rb +0 -2
  148. data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +0 -8
  149. data/lib/rails_generator/generators/components/performance_test/USAGE +0 -8
  150. data/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +0 -16
  151. data/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +0 -9
  152. data/lib/rails_generator/generators/components/plugin/USAGE +0 -25
  153. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +0 -39
  154. data/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +0 -20
  155. data/lib/rails_generator/generators/components/plugin/templates/README +0 -13
  156. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +0 -23
  157. data/lib/rails_generator/generators/components/plugin/templates/USAGE +0 -8
  158. data/lib/rails_generator/generators/components/plugin/templates/generator.rb +0 -8
  159. data/lib/rails_generator/generators/components/plugin/templates/init.rb +0 -1
  160. data/lib/rails_generator/generators/components/plugin/templates/install.rb +0 -1
  161. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +0 -1
  162. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +0 -4
  163. data/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +0 -4
  164. data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +0 -1
  165. data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +0 -8
  166. data/lib/rails_generator/generators/components/resource/USAGE +0 -23
  167. data/lib/rails_generator/generators/components/resource/resource_generator.rb +0 -76
  168. data/lib/rails_generator/generators/components/resource/templates/controller.rb +0 -2
  169. data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +0 -8
  170. data/lib/rails_generator/generators/components/resource/templates/helper.rb +0 -2
  171. data/lib/rails_generator/generators/components/resource/templates/helper_test.rb +0 -4
  172. data/lib/rails_generator/generators/components/scaffold/USAGE +0 -29
  173. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +0 -103
  174. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +0 -83
  175. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +0 -45
  176. data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +0 -2
  177. data/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +0 -4
  178. data/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +0 -17
  179. data/lib/rails_generator/generators/components/scaffold/templates/style.css +0 -54
  180. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +0 -18
  181. data/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +0 -24
  182. data/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +0 -17
  183. data/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +0 -10
  184. data/lib/rails_generator/generators/components/session_migration/USAGE +0 -10
  185. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +0 -18
  186. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +0 -16
  187. data/lib/rails_generator/lookup.rb +0 -249
  188. data/lib/rails_generator/manifest.rb +0 -53
  189. data/lib/rails_generator/options.rb +0 -150
  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/scripts.rb +0 -89
  194. data/lib/rails_generator/secret_key_generator.rb +0 -24
  195. data/lib/rails_generator/simple_logger.rb +0 -46
  196. data/lib/rails_generator/spec.rb +0 -44
  197. data/lib/rails_generator.rb +0 -46
  198. data/lib/railties_path.rb +0 -1
  199. data/lib/ruby_version_check.rb +0 -17
  200. data/lib/rubyprof_ext.rb +0 -35
  201. data/lib/source_annotation_extractor.rb +0 -102
  202. data/lib/tasks/annotations.rake +0 -20
  203. data/lib/tasks/databases.rake +0 -436
  204. data/lib/tasks/documentation.rake +0 -93
  205. data/lib/tasks/framework.rake +0 -146
  206. data/lib/tasks/gems.rake +0 -78
  207. data/lib/tasks/log.rake +0 -9
  208. data/lib/tasks/middleware.rake +0 -7
  209. data/lib/tasks/misc.rake +0 -63
  210. data/lib/tasks/rails.rb +0 -14
  211. data/lib/tasks/routes.rake +0 -18
  212. data/lib/tasks/statistics.rake +0 -17
  213. data/lib/tasks/testing.rake +0 -139
  214. data/lib/tasks/tmp.rake +0 -37
  215. data/lib/test_help.rb +0 -38
  216. data/lib/webrick_server.rb +0 -156
  217. data/railties.gemspec +0 -22
data/html/robots.txt DELETED
@@ -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,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
@@ -1,50 +0,0 @@
1
- if ARGV.empty?
2
- $stderr.puts "Usage: ./script/performance/profiler 'Person.expensive_method(10)' [times] [flat|graph|graph_html]"
3
- exit(1)
4
- end
5
-
6
- # Keep the expensive require out of the profile.
7
- $stderr.puts 'Loading Rails...'
8
- require RAILS_ROOT + '/config/environment'
9
-
10
- # Define a method to profile.
11
- if ARGV[1] and ARGV[1].to_i > 1
12
- eval "def profile_me() #{ARGV[1]}.times { #{ARGV[0]} } end"
13
- else
14
- eval "def profile_me() #{ARGV[0]} end"
15
- end
16
-
17
- # Use the ruby-prof extension if available. Fall back to stdlib profiler.
18
- begin
19
- begin
20
- require "ruby-prof"
21
- $stderr.puts 'Using the ruby-prof extension.'
22
- RubyProf.measure_mode = RubyProf::WALL_TIME
23
- RubyProf.start
24
- profile_me
25
- results = RubyProf.stop
26
- if ARGV[2]
27
- printer_class = RubyProf.const_get((ARGV[2] + "_printer").classify)
28
- else
29
- printer_class = RubyProf::FlatPrinter
30
- end
31
- printer = printer_class.new(results)
32
- printer.print($stderr)
33
- rescue LoadError
34
- require "prof"
35
- $stderr.puts 'Using the old ruby-prof extension.'
36
- Prof.clock_mode = Prof::GETTIMEOFDAY
37
- Prof.start
38
- profile_me
39
- results = Prof.stop
40
- require 'rubyprof_ext'
41
- Prof.print_profile(results, $stderr)
42
- end
43
- rescue LoadError
44
- require 'profiler'
45
- $stderr.puts 'Using the standard Ruby profiler.'
46
- Profiler__.start_profile
47
- profile_me
48
- Profiler__.stop_profile
49
- Profiler__.print_profile($stderr)
50
- end