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
@@ -1,89 +0,0 @@
1
- require File.dirname(__FILE__) + '/options'
2
-
3
- module Rails
4
- module Generator
5
- module Scripts
6
-
7
- # Generator scripts handle command-line invocation. Each script
8
- # responds to an invoke! class method which handles option parsing
9
- # and generator invocation.
10
- class Base
11
- include Options
12
- default_options :collision => :ask, :quiet => false
13
-
14
- # Run the generator script. Takes an array of unparsed arguments
15
- # and a hash of parsed arguments, takes the generator as an option
16
- # or first remaining argument, and invokes the requested command.
17
- def run(args = [], runtime_options = {})
18
- begin
19
- parse!(args.dup, runtime_options)
20
- rescue OptionParser::InvalidOption => e
21
- # Don't cry, script. Generators want what you think is invalid.
22
- end
23
-
24
- # Generator name is the only required option.
25
- unless options[:generator]
26
- usage if args.empty?
27
- options[:generator] ||= args.shift
28
- end
29
-
30
- # Look up generator instance and invoke command on it.
31
- Rails::Generator::Base.instance(options[:generator], args, options).command(options[:command]).invoke!
32
- rescue => e
33
- puts e
34
- puts " #{e.backtrace.join("\n ")}\n" if options[:backtrace]
35
- raise SystemExit
36
- end
37
-
38
- protected
39
- # Override with your own script usage banner.
40
- def banner
41
- "Usage: #{$0} generator [options] [args]"
42
- end
43
-
44
- def usage_message
45
- usage = "\nInstalled Generators\n"
46
- Rails::Generator::Base.sources.inject([]) do |mem, source|
47
- # Using an association list instead of a hash to preserve order,
48
- # for aesthetic reasons more than anything else.
49
- label = source.label.to_s.capitalize
50
- pair = mem.assoc(label)
51
- mem << (pair = [label, []]) if pair.nil?
52
- pair[1] |= source.names
53
- mem
54
- end.each do |label, names|
55
- usage << " #{label}: #{names.join(', ')}\n" unless names.empty?
56
- end
57
-
58
- usage << <<end_blurb
59
-
60
- More are available at http://wiki.rubyonrails.org/rails/pages/AvailableGenerators
61
- 1. Download, for example, login_generator.zip
62
- 2. Unzip to directory #{Dir.user_home}/.rails/generators/login
63
- to use the generator with all your Rails apps
64
- end_blurb
65
-
66
- if Object.const_defined?(:RAILS_ROOT)
67
- usage << <<end_blurb
68
- or to #{File.expand_path(RAILS_ROOT)}/lib/generators/login
69
- to use with this app only.
70
- end_blurb
71
- end
72
-
73
- usage << <<end_blurb
74
- 3. Run generate with no arguments for usage information
75
- #{$0} login
76
-
77
- Generator gems are also available:
78
- 1. gem search -r generator
79
- 2. gem install login_generator
80
- 3. #{$0} login
81
-
82
- end_blurb
83
- return usage
84
- end
85
- end # Base
86
-
87
- end
88
- end
89
- end
@@ -1,24 +0,0 @@
1
- require 'active_support/deprecation'
2
-
3
- module Rails
4
- # A class for creating random secret keys. This class will do its best to create a
5
- # random secret key that's as secure as possible, using whatever methods are
6
- # available on the current platform. For example:
7
- #
8
- # generator = Rails::SecretKeyGenerator("some unique identifier, such as the application name")
9
- # generator.generate_secret # => "f3f1be90053fa851... (some long string)"
10
- #
11
- # This class is *deprecated* in Rails 2.2 in favor of ActiveSupport::SecureRandom.
12
- # It is currently a wrapper around ActiveSupport::SecureRandom.
13
- class SecretKeyGenerator
14
- def initialize(identifier)
15
- end
16
-
17
- # Generate a random secret key with the best possible method available on
18
- # the current platform.
19
- def generate_secret
20
- ActiveSupport::SecureRandom.hex(64)
21
- end
22
- deprecate :generate_secret=>"You should use ActiveSupport::SecureRandom.hex(64)"
23
- end
24
- end
@@ -1,46 +0,0 @@
1
- module Rails
2
- module Generator
3
- class SimpleLogger # :nodoc:
4
- attr_reader :out
5
- attr_accessor :quiet
6
-
7
- def initialize(out = $stdout)
8
- @out = out
9
- @quiet = false
10
- @level = 0
11
- end
12
-
13
- def log(status, message, &block)
14
- @out.print("%12s %s%s\n" % [status, ' ' * @level, message]) unless quiet
15
- indent(&block) if block_given?
16
- end
17
-
18
- def indent(&block)
19
- @level += 1
20
- if block_given?
21
- begin
22
- block.call
23
- ensure
24
- outdent
25
- end
26
- end
27
- end
28
-
29
- def outdent
30
- @level -= 1
31
- if block_given?
32
- begin
33
- block.call
34
- ensure
35
- indent
36
- end
37
- end
38
- end
39
-
40
- private
41
- def method_missing(method, *args, &block)
42
- log(method.to_s, args.first, &block)
43
- end
44
- end
45
- end
46
- end
@@ -1,44 +0,0 @@
1
- module Rails
2
- module Generator
3
- # A spec knows where a generator was found and how to instantiate it.
4
- # Metadata include the generator's name, its base path, and the source
5
- # which yielded it (PathSource, GemPathSource, etc.)
6
- class Spec
7
- attr_reader :name, :path, :source
8
-
9
- def initialize(name, path, source)
10
- @name, @path, @source = name, path, source
11
- end
12
-
13
- # Look up the generator class. Require its class file, find the class
14
- # in ObjectSpace, tag it with this spec, and return.
15
- def klass
16
- unless @klass
17
- require class_file
18
- @klass = lookup_class
19
- @klass.spec = self
20
- end
21
- @klass
22
- end
23
-
24
- def class_file
25
- "#{path}/#{name}_generator.rb"
26
- end
27
-
28
- def class_name
29
- "#{name.camelize}Generator"
30
- end
31
-
32
- private
33
- # Search for the first Class descending from Rails::Generator::Base
34
- # whose name matches the requested class name.
35
- def lookup_class
36
- ObjectSpace.each_object(Class) do |obj|
37
- return obj if obj.ancestors.include?(Rails::Generator::Base) and
38
- obj.name.split('::').last == class_name
39
- end
40
- raise NameError, "Missing #{class_name} class in #{class_file}"
41
- end
42
- end
43
- end
44
- end
@@ -1,46 +0,0 @@
1
- #--
2
- # Copyright (c) 2004 Jeremy Kemper
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #++
23
-
24
- railties = File.expand_path("..", __FILE__)
25
- $:.unshift(railties) unless $:.include?(railties)
26
-
27
- activesupport = File.expand_path("../../../activesupport/lib", __FILE__)
28
- $:.unshift(activesupport) unless $:.include?(activesupport)
29
-
30
- begin
31
- require 'active_support'
32
- rescue LoadError
33
- require 'rubygems'
34
- gem 'activesupport'
35
- end
36
-
37
- require 'rails_generator/base'
38
- require 'rails_generator/lookup'
39
- require 'rails_generator/commands'
40
-
41
- Rails::Generator::Base.send(:include, Rails::Generator::Lookup)
42
- Rails::Generator::Base.send(:include, Rails::Generator::Commands)
43
-
44
- # Set up a default logger for convenience.
45
- require 'rails_generator/simple_logger'
46
- Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new(STDOUT)
data/lib/railties_path.rb DELETED
@@ -1 +0,0 @@
1
- RAILTIES_PATH = File.join(File.dirname(__FILE__), '..')
@@ -1,17 +0,0 @@
1
- min_release = "1.8.2 (2004-12-25)"
2
- ruby_release = "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE})"
3
- if ruby_release =~ /1\.8\.3/
4
- abort <<-end_message
5
-
6
- Rails does not work with Ruby version 1.8.3.
7
- Please upgrade to version 1.8.4 or downgrade to 1.8.2.
8
-
9
- end_message
10
- elsif ruby_release < min_release
11
- abort <<-end_message
12
-
13
- Rails requires Ruby version #{min_release} or later.
14
- You're running #{ruby_release}; please upgrade to continue.
15
-
16
- end_message
17
- end
data/lib/rubyprof_ext.rb DELETED
@@ -1,35 +0,0 @@
1
- require 'prof'
2
-
3
- module Prof #:nodoc:
4
- # Adapted from Shugo Maeda's unprof.rb
5
- def self.print_profile(results, io = $stderr)
6
- total = results.detect { |i|
7
- i.method_class.nil? && i.method_id == :"#toplevel"
8
- }.total_time
9
- total = 0.001 if total < 0.001
10
-
11
- io.puts " %% cumulative self self total"
12
- io.puts " time seconds seconds calls ms/call ms/call name"
13
-
14
- sum = 0.0
15
- for r in results
16
- sum += r.self_time
17
-
18
- name = if r.method_class.nil?
19
- r.method_id.to_s
20
- elsif r.method_class.is_a?(Class)
21
- "#{r.method_class}##{r.method_id}"
22
- else
23
- "#{r.method_class}.#{r.method_id}"
24
- end
25
- io.printf "%6.2f %8.3f %8.3f %8d %8.2f %8.2f %s\n",
26
- r.self_time / total * 100,
27
- sum,
28
- r.self_time,
29
- r.count,
30
- r.self_time * 1000 / r.count,
31
- r.total_time * 1000 / r.count,
32
- name
33
- end
34
- end
35
- end
@@ -1,102 +0,0 @@
1
- # Implements the logic behind the rake tasks for annotations like
2
- #
3
- # rake notes
4
- # rake notes:optimize
5
- #
6
- # and friends. See <tt>rake -T notes</tt> and <tt>railties/lib/tasks/annotations.rake</tt>.
7
- #
8
- # Annotation objects are triplets <tt>:line</tt>, <tt>:tag</tt>, <tt>:text</tt> that
9
- # represent the line where the annotation lives, its tag, and its text. Note
10
- # the filename is not stored.
11
- #
12
- # Annotations are looked for in comments and modulus whitespace they have to
13
- # start with the tag optionally followed by a colon. Everything up to the end
14
- # of the line (or closing ERb comment tag) is considered to be their text.
15
- class SourceAnnotationExtractor
16
- class Annotation < Struct.new(:line, :tag, :text)
17
-
18
- # Returns a representation of the annotation that looks like this:
19
- #
20
- # [126] [TODO] This algorithm is simple and clearly correct, make it faster.
21
- #
22
- # If +options+ has a flag <tt>:tag</tt> the tag is shown as in the example above.
23
- # Otherwise the string contains just line and text.
24
- def to_s(options={})
25
- s = "[%3d] " % line
26
- s << "[#{tag}] " if options[:tag]
27
- s << text
28
- end
29
- end
30
-
31
- # Prints all annotations with tag +tag+ under the root directories +app+, +lib+,
32
- # and +test+ (recursively). Only filenames with extension +.builder+, +.rb+,
33
- # +.rxml+, +.rjs+, +.rhtml+, or +.erb+ are taken into account. The +options+
34
- # hash is passed to each annotation's +to_s+.
35
- #
36
- # This class method is the single entry point for the rake tasks.
37
- def self.enumerate(tag, options={})
38
- extractor = new(tag)
39
- extractor.display(extractor.find, options)
40
- end
41
-
42
- attr_reader :tag
43
-
44
- def initialize(tag)
45
- @tag = tag
46
- end
47
-
48
- # Returns a hash that maps filenames under +dirs+ (recursively) to arrays
49
- # with their annotations. Only files with annotations are included, and only
50
- # those with extension +.builder+, +.rb+, +.rxml+, +.rjs+, +.rhtml+, and +.erb+
51
- # are taken into account.
52
- def find(dirs=%w(app lib test))
53
- dirs.inject({}) { |h, dir| h.update(find_in(dir)) }
54
- end
55
-
56
- # Returns a hash that maps filenames under +dir+ (recursively) to arrays
57
- # with their annotations. Only files with annotations are included, and only
58
- # those with extension +.builder+, +.rb+, +.rxml+, +.rjs+, +.rhtml+, and +.erb+
59
- # are taken into account.
60
- def find_in(dir)
61
- results = {}
62
-
63
- Dir.glob("#{dir}/*") do |item|
64
- next if File.basename(item)[0] == ?.
65
-
66
- if File.directory?(item)
67
- results.update(find_in(item))
68
- elsif item =~ /\.(builder|(r(?:b|xml|js)))$/
69
- results.update(extract_annotations_from(item, /#\s*(#{tag}):?\s*(.*)$/))
70
- elsif item =~ /\.(rhtml|erb)$/
71
- results.update(extract_annotations_from(item, /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/))
72
- end
73
- end
74
-
75
- results
76
- end
77
-
78
- # If +file+ is the filename of a file that contains annotations this method returns
79
- # a hash with a single entry that maps +file+ to an array of its annotations.
80
- # Otherwise it returns an empty hash.
81
- def extract_annotations_from(file, pattern)
82
- lineno = 0
83
- result = File.readlines(file).inject([]) do |list, line|
84
- lineno += 1
85
- next list unless line =~ pattern
86
- list << Annotation.new(lineno, $1, $2)
87
- end
88
- result.empty? ? {} : { file => result }
89
- end
90
-
91
- # Prints the mapping from filenames to annotations in +results+ ordered by filename.
92
- # The +options+ hash is passed to each annotation's +to_s+.
93
- def display(results, options={})
94
- results.keys.sort.each do |file|
95
- puts "#{file}:"
96
- results[file].each do |note|
97
- puts " * #{note.to_s(options)}"
98
- end
99
- puts
100
- end
101
- end
102
- end
@@ -1,20 +0,0 @@
1
- require 'source_annotation_extractor'
2
-
3
- desc "Enumerate all annotations"
4
- task :notes do
5
- SourceAnnotationExtractor.enumerate "OPTIMIZE|FIXME|TODO", :tag => true
6
- end
7
-
8
- namespace :notes do
9
- ["OPTIMIZE", "FIXME", "TODO"].each do |annotation|
10
- desc "Enumerate all #{annotation} annotations"
11
- task annotation.downcase.intern do
12
- SourceAnnotationExtractor.enumerate annotation
13
- end
14
- end
15
-
16
- desc "Enumerate a custom annotation, specify with ANNOTATION=WTFHAX"
17
- task :custom do
18
- SourceAnnotationExtractor.enumerate ENV['ANNOTATION']
19
- end
20
- end