railties 3.2.22.5 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (450) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +186 -78
  3. data/README.rdoc +4 -2
  4. data/lib/rails.rb +11 -44
  5. data/lib/rails/all.rb +0 -1
  6. data/lib/rails/app_rails_loader.rb +37 -0
  7. data/lib/rails/application.rb +176 -124
  8. data/lib/rails/application/bootstrap.rb +29 -23
  9. data/lib/rails/application/configuration.rb +54 -48
  10. data/lib/rails/application/finisher.rb +8 -12
  11. data/lib/rails/application/routes_reloader.rb +2 -2
  12. data/lib/rails/backtrace_cleaner.rb +1 -16
  13. data/lib/rails/cli.rb +2 -2
  14. data/lib/rails/code_statistics.rb +30 -45
  15. data/lib/rails/code_statistics_calculator.rb +79 -0
  16. data/lib/rails/commands.rb +44 -37
  17. data/lib/rails/commands/application.rb +14 -9
  18. data/lib/rails/commands/console.rb +77 -33
  19. data/lib/rails/commands/dbconsole.rb +115 -64
  20. data/lib/rails/commands/destroy.rb +2 -3
  21. data/lib/rails/commands/generate.rb +2 -3
  22. data/lib/rails/commands/plugin_new.rb +0 -2
  23. data/lib/rails/commands/runner.rb +4 -5
  24. data/lib/rails/commands/server.rb +28 -9
  25. data/lib/rails/commands/update.rb +1 -1
  26. data/lib/rails/configuration.rb +35 -8
  27. data/lib/rails/console/app.rb +0 -4
  28. data/lib/rails/deprecation.rb +19 -0
  29. data/lib/rails/engine.rb +111 -92
  30. data/lib/rails/engine/commands.rb +1 -3
  31. data/lib/rails/engine/configuration.rb +26 -19
  32. data/lib/rails/engine/railties.rb +14 -18
  33. data/lib/rails/generators.rb +30 -50
  34. data/lib/rails/generators/actions.rb +38 -103
  35. data/lib/rails/generators/active_model.rb +14 -6
  36. data/lib/rails/generators/app_base.rb +70 -83
  37. data/lib/rails/generators/base.rb +23 -35
  38. data/lib/rails/generators/css/assets/assets_generator.rb +3 -3
  39. data/lib/rails/generators/css/scaffold/scaffold_generator.rb +3 -3
  40. data/lib/rails/generators/erb.rb +2 -2
  41. data/lib/rails/generators/erb/controller/controller_generator.rb +4 -4
  42. data/lib/rails/generators/erb/mailer/mailer_generator.rb +3 -3
  43. data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +4 -4
  44. data/lib/rails/generators/erb/scaffold/templates/index.html.erb +18 -14
  45. data/lib/rails/generators/erb/scaffold/templates/show.html.erb +1 -1
  46. data/lib/rails/generators/generated_attribute.rb +51 -16
  47. data/lib/rails/generators/js/assets/assets_generator.rb +3 -3
  48. data/lib/rails/generators/migration.rb +1 -5
  49. data/lib/rails/generators/named_base.rb +20 -25
  50. data/lib/rails/generators/rails/app/app_generator.rb +40 -48
  51. data/lib/rails/generators/rails/app/templates/Gemfile +8 -7
  52. data/lib/rails/generators/rails/app/templates/README.rdoc +28 -0
  53. data/lib/rails/generators/rails/app/templates/Rakefile +0 -1
  54. data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +2 -1
  55. data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt +5 -0
  56. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +2 -2
  57. data/lib/rails/generators/rails/app/templates/bin/bundle +2 -0
  58. data/lib/rails/generators/rails/app/templates/bin/rails +3 -0
  59. data/lib/rails/generators/rails/app/templates/bin/rake +3 -0
  60. data/lib/rails/generators/rails/app/templates/config/application.rb +5 -43
  61. data/lib/rails/generators/rails/app/templates/config/boot.rb +0 -2
  62. data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml +2 -2
  63. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml +1 -4
  64. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml +8 -3
  65. data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml +57 -0
  66. data/lib/rails/generators/rails/app/templates/config/environment.rb +2 -2
  67. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +9 -19
  68. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +40 -29
  69. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +12 -15
  70. data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb +4 -0
  71. data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb +6 -5
  72. data/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt +6 -1
  73. data/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt +1 -6
  74. data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +6 -6
  75. data/lib/rails/generators/rails/app/templates/config/locales/en.yml +20 -2
  76. data/lib/rails/generators/rails/app/templates/config/routes.rb +15 -24
  77. data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +2 -2
  78. data/lib/rails/generators/rails/app/templates/gitignore +3 -2
  79. data/lib/rails/generators/rails/app/templates/public/404.html +2 -1
  80. data/lib/rails/generators/rails/app/templates/public/422.html +1 -1
  81. data/lib/rails/generators/rails/app/templates/public/500.html +2 -1
  82. data/lib/rails/generators/rails/app/templates/public/robots.txt +1 -1
  83. data/lib/rails/generators/rails/app/templates/test/test_helper.rb +3 -1
  84. data/lib/rails/generators/rails/assets/assets_generator.rb +5 -5
  85. data/lib/rails/generators/rails/controller/USAGE +7 -7
  86. data/lib/rails/generators/rails/controller/controller_generator.rb +3 -3
  87. data/lib/rails/generators/rails/controller/templates/controller.rb +1 -1
  88. data/lib/rails/generators/rails/generator/generator_generator.rb +4 -4
  89. data/lib/rails/generators/rails/helper/USAGE +1 -1
  90. data/lib/rails/generators/rails/helper/helper_generator.rb +2 -2
  91. data/lib/rails/generators/rails/integration_test/integration_test_generator.rb +2 -2
  92. data/lib/rails/generators/rails/migration/USAGE +12 -6
  93. data/lib/rails/generators/rails/migration/migration_generator.rb +3 -3
  94. data/lib/rails/generators/rails/model/USAGE +53 -4
  95. data/lib/rails/generators/rails/model/model_generator.rb +3 -3
  96. data/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb +81 -39
  97. data/lib/rails/generators/rails/plugin_new/templates/%name%.gemspec +2 -2
  98. data/lib/rails/generators/rails/plugin_new/templates/Gemfile +16 -1
  99. data/lib/rails/generators/rails/plugin_new/templates/Rakefile +3 -9
  100. data/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt +0 -1
  101. data/lib/rails/generators/rails/plugin_new/templates/app/views/layouts/%name%/application.html.erb.tt +1 -1
  102. data/lib/rails/generators/rails/plugin_new/templates/{script → bin}/rails.tt +0 -0
  103. data/lib/rails/generators/rails/plugin_new/templates/gitignore +3 -0
  104. data/lib/rails/generators/rails/plugin_new/templates/lib/%name%.rb +1 -1
  105. data/lib/rails/generators/rails/plugin_new/templates/rails/application.rb +0 -1
  106. data/lib/rails/generators/rails/plugin_new/templates/rails/boot.rb +0 -1
  107. data/lib/rails/generators/rails/resource/resource_generator.rb +5 -5
  108. data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +2 -2
  109. data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +11 -7
  110. data/lib/rails/generators/rails/scaffold_controller/USAGE +4 -4
  111. data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +9 -7
  112. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +27 -48
  113. data/lib/rails/generators/rails/task/task_generator.rb +2 -2
  114. data/lib/rails/generators/rails/task/templates/task.rb +1 -1
  115. data/lib/rails/generators/resource_helpers.rb +3 -5
  116. data/lib/rails/generators/test_case.rb +22 -28
  117. data/lib/rails/generators/test_unit.rb +3 -3
  118. data/lib/rails/generators/test_unit/controller/controller_generator.rb +6 -6
  119. data/lib/rails/generators/test_unit/helper/helper_generator.rb +5 -5
  120. data/lib/rails/generators/test_unit/integration/integration_generator.rb +4 -4
  121. data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +6 -6
  122. data/lib/rails/generators/test_unit/model/model_generator.rb +7 -7
  123. data/lib/rails/generators/test_unit/model/templates/fixtures.yml +8 -2
  124. data/lib/rails/generators/test_unit/plugin/plugin_generator.rb +4 -4
  125. data/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +1 -2
  126. data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +10 -19
  127. data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb +5 -5
  128. data/lib/rails/info.rb +3 -3
  129. data/lib/rails/info_controller.rb +26 -8
  130. data/lib/rails/initializable.rb +2 -2
  131. data/lib/rails/paths.rb +59 -54
  132. data/lib/rails/rack/debugger.rb +2 -2
  133. data/lib/rails/rack/logger.rb +33 -8
  134. data/lib/rails/railtie.rb +24 -24
  135. data/lib/rails/railtie/configurable.rb +1 -1
  136. data/lib/rails/railtie/configuration.rb +15 -5
  137. data/lib/rails/ruby_version_check.rb +3 -13
  138. data/lib/rails/rubyprof_ext.rb +1 -1
  139. data/lib/rails/source_annotation_extractor.rb +40 -17
  140. data/lib/rails/tasks/annotations.rake +1 -1
  141. data/lib/rails/tasks/documentation.rake +10 -57
  142. data/lib/rails/tasks/engine.rake +1 -1
  143. data/lib/rails/tasks/framework.rake +9 -9
  144. data/lib/rails/tasks/log.rake +18 -4
  145. data/lib/rails/tasks/middleware.rake +1 -1
  146. data/lib/rails/tasks/misc.rake +2 -9
  147. data/lib/rails/tasks/routes.rake +4 -6
  148. data/lib/rails/tasks/statistics.rake +8 -2
  149. data/lib/rails/tasks/tmp.rake +12 -4
  150. data/lib/rails/templates/layouts/application.html.erb +36 -0
  151. data/lib/rails/templates/rails/info/properties.html.erb +1 -0
  152. data/lib/rails/templates/rails/info/routes.html.erb +9 -0
  153. data/lib/rails/{generators/rails/app/templates/public/index.html → templates/rails/welcome/index.html.erb} +18 -14
  154. data/lib/rails/test_help.rb +6 -29
  155. data/lib/rails/test_unit/railtie.rb +2 -3
  156. data/lib/rails/test_unit/testing.rake +45 -33
  157. data/lib/rails/version.rb +4 -4
  158. data/lib/rails/welcome_controller.rb +7 -0
  159. metadata +86 -378
  160. data/guides/assets/images/belongs_to.png +0 -0
  161. data/guides/assets/images/book_icon.gif +0 -0
  162. data/guides/assets/images/bullet.gif +0 -0
  163. data/guides/assets/images/challenge.png +0 -0
  164. data/guides/assets/images/chapters_icon.gif +0 -0
  165. data/guides/assets/images/check_bullet.gif +0 -0
  166. data/guides/assets/images/credits_pic_blank.gif +0 -0
  167. data/guides/assets/images/csrf.png +0 -0
  168. data/guides/assets/images/customized_error_messages.png +0 -0
  169. data/guides/assets/images/edge_badge.png +0 -0
  170. data/guides/assets/images/error_messages.png +0 -0
  171. data/guides/assets/images/feature_tile.gif +0 -0
  172. data/guides/assets/images/footer_tile.gif +0 -0
  173. data/guides/assets/images/fxn.png +0 -0
  174. data/guides/assets/images/grey_bullet.gif +0 -0
  175. data/guides/assets/images/habtm.png +0 -0
  176. data/guides/assets/images/has_many.png +0 -0
  177. data/guides/assets/images/has_many_through.png +0 -0
  178. data/guides/assets/images/has_one.png +0 -0
  179. data/guides/assets/images/has_one_through.png +0 -0
  180. data/guides/assets/images/header_backdrop.png +0 -0
  181. data/guides/assets/images/header_tile.gif +0 -0
  182. data/guides/assets/images/i18n/demo_html_safe.png +0 -0
  183. data/guides/assets/images/i18n/demo_localized_pirate.png +0 -0
  184. data/guides/assets/images/i18n/demo_translated_en.png +0 -0
  185. data/guides/assets/images/i18n/demo_translated_pirate.png +0 -0
  186. data/guides/assets/images/i18n/demo_translation_missing.png +0 -0
  187. data/guides/assets/images/i18n/demo_untranslated.png +0 -0
  188. data/guides/assets/images/icons/README +0 -5
  189. data/guides/assets/images/icons/callouts/1.png +0 -0
  190. data/guides/assets/images/icons/callouts/10.png +0 -0
  191. data/guides/assets/images/icons/callouts/11.png +0 -0
  192. data/guides/assets/images/icons/callouts/12.png +0 -0
  193. data/guides/assets/images/icons/callouts/13.png +0 -0
  194. data/guides/assets/images/icons/callouts/14.png +0 -0
  195. data/guides/assets/images/icons/callouts/15.png +0 -0
  196. data/guides/assets/images/icons/callouts/2.png +0 -0
  197. data/guides/assets/images/icons/callouts/3.png +0 -0
  198. data/guides/assets/images/icons/callouts/4.png +0 -0
  199. data/guides/assets/images/icons/callouts/5.png +0 -0
  200. data/guides/assets/images/icons/callouts/6.png +0 -0
  201. data/guides/assets/images/icons/callouts/7.png +0 -0
  202. data/guides/assets/images/icons/callouts/8.png +0 -0
  203. data/guides/assets/images/icons/callouts/9.png +0 -0
  204. data/guides/assets/images/icons/caution.png +0 -0
  205. data/guides/assets/images/icons/example.png +0 -0
  206. data/guides/assets/images/icons/home.png +0 -0
  207. data/guides/assets/images/icons/important.png +0 -0
  208. data/guides/assets/images/icons/next.png +0 -0
  209. data/guides/assets/images/icons/note.png +0 -0
  210. data/guides/assets/images/icons/prev.png +0 -0
  211. data/guides/assets/images/icons/tip.png +0 -0
  212. data/guides/assets/images/icons/up.png +0 -0
  213. data/guides/assets/images/icons/warning.png +0 -0
  214. data/guides/assets/images/jaimeiniesta.jpg +0 -0
  215. data/guides/assets/images/nav_arrow.gif +0 -0
  216. data/guides/assets/images/polymorphic.png +0 -0
  217. data/guides/assets/images/posts_index.png +0 -0
  218. data/guides/assets/images/radar.png +0 -0
  219. data/guides/assets/images/rails_guides_kindle_cover.jpg +0 -0
  220. data/guides/assets/images/rails_guides_logo.gif +0 -0
  221. data/guides/assets/images/rails_logo_remix.gif +0 -0
  222. data/guides/assets/images/rails_welcome.png +0 -0
  223. data/guides/assets/images/session_fixation.png +0 -0
  224. data/guides/assets/images/tab_grey.gif +0 -0
  225. data/guides/assets/images/tab_info.gif +0 -0
  226. data/guides/assets/images/tab_note.gif +0 -0
  227. data/guides/assets/images/tab_red.gif +0 -0
  228. data/guides/assets/images/tab_yellow.gif +0 -0
  229. data/guides/assets/images/tab_yellow.png +0 -0
  230. data/guides/assets/images/validation_error_messages.png +0 -0
  231. data/guides/assets/images/vijaydev.jpg +0 -0
  232. data/guides/assets/javascripts/guides.js +0 -7
  233. data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +0 -59
  234. data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +0 -75
  235. data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +0 -59
  236. data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +0 -65
  237. data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +0 -100
  238. data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +0 -97
  239. data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +0 -91
  240. data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +0 -55
  241. data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +0 -41
  242. data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +0 -52
  243. data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +0 -67
  244. data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +0 -52
  245. data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +0 -57
  246. data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +0 -58
  247. data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +0 -72
  248. data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +0 -88
  249. data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +0 -33
  250. data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +0 -74
  251. data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +0 -64
  252. data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +0 -55
  253. data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +0 -94
  254. data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +0 -51
  255. data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +0 -66
  256. data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +0 -56
  257. data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +0 -69
  258. data/guides/assets/javascripts/syntaxhighlighter/shCore.js +0 -17
  259. data/guides/assets/stylesheets/fixes.css +0 -16
  260. data/guides/assets/stylesheets/kindle.css +0 -11
  261. data/guides/assets/stylesheets/main.css +0 -453
  262. data/guides/assets/stylesheets/print.css +0 -52
  263. data/guides/assets/stylesheets/reset.css +0 -43
  264. data/guides/assets/stylesheets/style.css +0 -13
  265. data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +0 -226
  266. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +0 -328
  267. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +0 -331
  268. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +0 -339
  269. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +0 -324
  270. data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +0 -328
  271. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +0 -324
  272. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +0 -324
  273. data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +0 -324
  274. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +0 -117
  275. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +0 -120
  276. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +0 -128
  277. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +0 -113
  278. data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +0 -117
  279. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +0 -113
  280. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +0 -113
  281. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +0 -113
  282. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +0 -116
  283. data/guides/code/getting_started/Gemfile +0 -38
  284. data/guides/code/getting_started/README.rdoc +0 -261
  285. data/guides/code/getting_started/Rakefile +0 -7
  286. data/guides/code/getting_started/app/assets/images/rails.png +0 -0
  287. data/guides/code/getting_started/app/assets/javascripts/application.js +0 -15
  288. data/guides/code/getting_started/app/assets/javascripts/comments.js.coffee +0 -3
  289. data/guides/code/getting_started/app/assets/javascripts/home.js.coffee +0 -3
  290. data/guides/code/getting_started/app/assets/javascripts/posts.js.coffee +0 -3
  291. data/guides/code/getting_started/app/assets/stylesheets/application.css +0 -13
  292. data/guides/code/getting_started/app/assets/stylesheets/comments.css.scss +0 -3
  293. data/guides/code/getting_started/app/assets/stylesheets/home.css.scss +0 -3
  294. data/guides/code/getting_started/app/assets/stylesheets/posts.css.scss +0 -3
  295. data/guides/code/getting_started/app/assets/stylesheets/scaffolds.css.scss +0 -56
  296. data/guides/code/getting_started/app/controllers/application_controller.rb +0 -3
  297. data/guides/code/getting_started/app/controllers/comments_controller.rb +0 -16
  298. data/guides/code/getting_started/app/controllers/home_controller.rb +0 -5
  299. data/guides/code/getting_started/app/controllers/posts_controller.rb +0 -84
  300. data/guides/code/getting_started/app/helpers/application_helper.rb +0 -2
  301. data/guides/code/getting_started/app/helpers/comments_helper.rb +0 -2
  302. data/guides/code/getting_started/app/helpers/home_helper.rb +0 -2
  303. data/guides/code/getting_started/app/helpers/posts_helper.rb +0 -5
  304. data/guides/code/getting_started/app/models/comment.rb +0 -3
  305. data/guides/code/getting_started/app/models/post.rb +0 -11
  306. data/guides/code/getting_started/app/models/tag.rb +0 -3
  307. data/guides/code/getting_started/app/views/comments/_comment.html.erb +0 -15
  308. data/guides/code/getting_started/app/views/comments/_form.html.erb +0 -13
  309. data/guides/code/getting_started/app/views/home/index.html.erb +0 -2
  310. data/guides/code/getting_started/app/views/layouts/application.html.erb +0 -14
  311. data/guides/code/getting_started/app/views/posts/_form.html.erb +0 -32
  312. data/guides/code/getting_started/app/views/posts/edit.html.erb +0 -6
  313. data/guides/code/getting_started/app/views/posts/index.html.erb +0 -27
  314. data/guides/code/getting_started/app/views/posts/new.html.erb +0 -5
  315. data/guides/code/getting_started/app/views/posts/show.html.erb +0 -31
  316. data/guides/code/getting_started/app/views/tags/_form.html.erb +0 -12
  317. data/guides/code/getting_started/config.ru +0 -4
  318. data/guides/code/getting_started/config/application.rb +0 -59
  319. data/guides/code/getting_started/config/boot.rb +0 -6
  320. data/guides/code/getting_started/config/database.yml +0 -25
  321. data/guides/code/getting_started/config/environment.rb +0 -5
  322. data/guides/code/getting_started/config/environments/development.rb +0 -37
  323. data/guides/code/getting_started/config/environments/production.rb +0 -67
  324. data/guides/code/getting_started/config/environments/test.rb +0 -37
  325. data/guides/code/getting_started/config/initializers/backtrace_silencers.rb +0 -7
  326. data/guides/code/getting_started/config/initializers/inflections.rb +0 -15
  327. data/guides/code/getting_started/config/initializers/mime_types.rb +0 -5
  328. data/guides/code/getting_started/config/initializers/secret_token.rb +0 -7
  329. data/guides/code/getting_started/config/initializers/session_store.rb +0 -8
  330. data/guides/code/getting_started/config/initializers/wrap_parameters.rb +0 -14
  331. data/guides/code/getting_started/config/locales/en.yml +0 -5
  332. data/guides/code/getting_started/config/routes.rb +0 -64
  333. data/guides/code/getting_started/db/migrate/20110901012504_create_posts.rb +0 -11
  334. data/guides/code/getting_started/db/migrate/20110901012815_create_comments.rb +0 -12
  335. data/guides/code/getting_started/db/migrate/20110901013701_create_tags.rb +0 -11
  336. data/guides/code/getting_started/db/schema.rb +0 -43
  337. data/guides/code/getting_started/db/seeds.rb +0 -7
  338. data/guides/code/getting_started/doc/README_FOR_APP +0 -2
  339. data/guides/code/getting_started/public/404.html +0 -26
  340. data/guides/code/getting_started/public/422.html +0 -26
  341. data/guides/code/getting_started/public/500.html +0 -25
  342. data/guides/code/getting_started/public/favicon.ico +0 -0
  343. data/guides/code/getting_started/public/robots.txt +0 -5
  344. data/guides/code/getting_started/script/rails +0 -6
  345. data/guides/code/getting_started/test/fixtures/comments.yml +0 -11
  346. data/guides/code/getting_started/test/fixtures/posts.yml +0 -11
  347. data/guides/code/getting_started/test/fixtures/tags.yml +0 -9
  348. data/guides/code/getting_started/test/functional/comments_controller_test.rb +0 -7
  349. data/guides/code/getting_started/test/functional/home_controller_test.rb +0 -9
  350. data/guides/code/getting_started/test/functional/posts_controller_test.rb +0 -49
  351. data/guides/code/getting_started/test/performance/browsing_test.rb +0 -12
  352. data/guides/code/getting_started/test/test_helper.rb +0 -13
  353. data/guides/code/getting_started/test/unit/comment_test.rb +0 -7
  354. data/guides/code/getting_started/test/unit/helpers/comments_helper_test.rb +0 -4
  355. data/guides/code/getting_started/test/unit/helpers/home_helper_test.rb +0 -4
  356. data/guides/code/getting_started/test/unit/helpers/posts_helper_test.rb +0 -4
  357. data/guides/code/getting_started/test/unit/post_test.rb +0 -7
  358. data/guides/code/getting_started/test/unit/tag_test.rb +0 -7
  359. data/guides/rails_guides.rb +0 -50
  360. data/guides/rails_guides/generator.rb +0 -310
  361. data/guides/rails_guides/helpers.rb +0 -45
  362. data/guides/rails_guides/indexer.rb +0 -69
  363. data/guides/rails_guides/levenshtein.rb +0 -31
  364. data/guides/rails_guides/textile_extensions.rb +0 -63
  365. data/guides/source/2_2_release_notes.textile +0 -422
  366. data/guides/source/2_3_release_notes.textile +0 -610
  367. data/guides/source/3_0_release_notes.textile +0 -595
  368. data/guides/source/3_1_release_notes.textile +0 -553
  369. data/guides/source/3_2_release_notes.textile +0 -540
  370. data/guides/source/_license.html.erb +0 -2
  371. data/guides/source/_welcome.html.erb +0 -19
  372. data/guides/source/action_controller_overview.textile +0 -820
  373. data/guides/source/action_mailer_basics.textile +0 -516
  374. data/guides/source/action_view_overview.textile +0 -1497
  375. data/guides/source/active_model_basics.textile +0 -205
  376. data/guides/source/active_record_basics.textile +0 -218
  377. data/guides/source/active_record_querying.textile +0 -1433
  378. data/guides/source/active_record_validations_callbacks.textile +0 -1287
  379. data/guides/source/active_resource_basics.textile +0 -120
  380. data/guides/source/active_support_core_extensions.textile +0 -3715
  381. data/guides/source/api_documentation_guidelines.textile +0 -185
  382. data/guides/source/asset_pipeline.textile +0 -707
  383. data/guides/source/association_basics.textile +0 -1959
  384. data/guides/source/caching_with_rails.textile +0 -437
  385. data/guides/source/command_line.textile +0 -574
  386. data/guides/source/configuring.textile +0 -643
  387. data/guides/source/contributing_to_ruby_on_rails.textile +0 -448
  388. data/guides/source/credits.html.erb +0 -72
  389. data/guides/source/debugging_rails_applications.textile +0 -714
  390. data/guides/source/documents.yaml +0 -157
  391. data/guides/source/engines.textile +0 -618
  392. data/guides/source/form_helpers.textile +0 -798
  393. data/guides/source/generators.textile +0 -621
  394. data/guides/source/getting_started.textile +0 -1931
  395. data/guides/source/i18n.textile +0 -931
  396. data/guides/source/index.html.erb +0 -30
  397. data/guides/source/initialization.textile +0 -1116
  398. data/guides/source/kindle/KINDLE.md +0 -26
  399. data/guides/source/kindle/copyright.html.erb +0 -1
  400. data/guides/source/kindle/layout.html.erb +0 -27
  401. data/guides/source/kindle/rails_guides.opf.erb +0 -52
  402. data/guides/source/kindle/toc.html.erb +0 -24
  403. data/guides/source/kindle/toc.ncx.erb +0 -64
  404. data/guides/source/kindle/welcome.html.erb +0 -5
  405. data/guides/source/layout.html.erb +0 -124
  406. data/guides/source/layouts_and_rendering.textile +0 -1237
  407. data/guides/source/migrations.textile +0 -900
  408. data/guides/source/nested_model_forms.textile +0 -222
  409. data/guides/source/performance_testing.textile +0 -597
  410. data/guides/source/plugins.textile +0 -464
  411. data/guides/source/rails_application_templates.textile +0 -240
  412. data/guides/source/rails_on_rack.textile +0 -236
  413. data/guides/source/routing.textile +0 -885
  414. data/guides/source/ruby_on_rails_guides_guidelines.textile +0 -79
  415. data/guides/source/security.textile +0 -1004
  416. data/guides/source/testing.textile +0 -947
  417. data/guides/w3c_validator.rb +0 -91
  418. data/lib/rails/application/railties.rb +0 -13
  419. data/lib/rails/application/route_inspector.rb +0 -84
  420. data/lib/rails/commands/benchmarker.rb +0 -34
  421. data/lib/rails/commands/plugin.rb +0 -544
  422. data/lib/rails/commands/profiler.rb +0 -33
  423. data/lib/rails/generators/rails/app/templates/README +0 -261
  424. data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb +0 -3
  425. data/lib/rails/generators/rails/app/templates/app/mailers/.empty_directory +0 -0
  426. data/lib/rails/generators/rails/app/templates/app/models/.empty_directory +0 -0
  427. data/lib/rails/generators/rails/app/templates/doc/README_FOR_APP +0 -2
  428. data/lib/rails/generators/rails/app/templates/public/stylesheets/.empty_directory +0 -0
  429. data/lib/rails/generators/rails/app/templates/script/rails +0 -5
  430. data/lib/rails/generators/rails/app/templates/test/fixtures/.empty_directory +0 -0
  431. data/lib/rails/generators/rails/app/templates/test/functional/.empty_directory +0 -0
  432. data/lib/rails/generators/rails/app/templates/test/integration/.empty_directory +0 -0
  433. data/lib/rails/generators/rails/app/templates/test/performance/browsing_test.rb +0 -12
  434. data/lib/rails/generators/rails/app/templates/test/unit/.empty_directory +0 -0
  435. data/lib/rails/generators/rails/generator/templates/templates/.empty_directory +0 -0
  436. data/lib/rails/generators/rails/observer/USAGE +0 -12
  437. data/lib/rails/generators/rails/observer/observer_generator.rb +0 -7
  438. data/lib/rails/generators/rails/performance_test/USAGE +0 -10
  439. data/lib/rails/generators/rails/performance_test/performance_test_generator.rb +0 -7
  440. data/lib/rails/generators/rails/plugin_new/templates/app/mailers/.empty_directory +0 -0
  441. data/lib/rails/generators/rails/plugin_new/templates/app/models/.empty_directory +0 -0
  442. data/lib/rails/generators/rails/session_migration/USAGE +0 -8
  443. data/lib/rails/generators/rails/session_migration/session_migration_generator.rb +0 -8
  444. data/lib/rails/generators/test_unit/observer/observer_generator.rb +0 -13
  445. data/lib/rails/generators/test_unit/observer/templates/unit_test.rb +0 -9
  446. data/lib/rails/generators/test_unit/performance/performance_generator.rb +0 -13
  447. data/lib/rails/generators/test_unit/performance/templates/performance_test.rb +0 -12
  448. data/lib/rails/performance_test_help.rb +0 -3
  449. data/lib/rails/plugin.rb +0 -92
  450. data/lib/rails/script_rails_loader.rb +0 -29
@@ -6,13 +6,13 @@ module Rails
6
6
 
7
7
  ARGV.clear # clear ARGV so that rails server options aren't passed to IRB
8
8
 
9
- require 'ruby-debug'
9
+ require 'debugger'
10
10
 
11
11
  ::Debugger.start
12
12
  ::Debugger.settings[:autoeval] = true if ::Debugger.respond_to?(:settings)
13
13
  puts "=> Debugger enabled"
14
14
  rescue LoadError
15
- puts "You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'"
15
+ puts "You're missing the 'debugger' gem. Add it to your Gemfile, bundle, and try again."
16
16
  exit
17
17
  end
18
18
 
@@ -1,19 +1,24 @@
1
1
  require 'active_support/core_ext/time/conversions'
2
2
  require 'active_support/core_ext/object/blank'
3
+ require 'active_support/log_subscriber'
4
+ require 'action_dispatch/http/request'
5
+ require 'rack/body_proxy'
3
6
 
4
7
  module Rails
5
8
  module Rack
6
9
  # Sets log tags, logs the request, calls the app, and flushes the logs.
7
10
  class Logger < ActiveSupport::LogSubscriber
8
11
  def initialize(app, taggers = nil)
9
- @app, @taggers = app, taggers || []
12
+ @app = app
13
+ @taggers = taggers || []
14
+ @instrumenter = ActiveSupport::Notifications.instrumenter
10
15
  end
11
16
 
12
17
  def call(env)
13
18
  request = ActionDispatch::Request.new(env)
14
19
 
15
- if Rails.logger.respond_to?(:tagged)
16
- Rails.logger.tagged(compute_tags(request)) { call_app(request, env) }
20
+ if logger.respond_to?(:tagged)
21
+ logger.tagged(compute_tags(request)) { call_app(request, env) }
17
22
  else
18
23
  call_app(request, env)
19
24
  end
@@ -23,13 +28,19 @@ module Rails
23
28
 
24
29
  def call_app(request, env)
25
30
  # Put some space between requests in development logs.
26
- if Rails.env.development?
27
- Rails.logger.info ''
28
- Rails.logger.info ''
31
+ if development?
32
+ logger.debug ''
33
+ logger.debug ''
29
34
  end
30
35
 
31
- Rails.logger.info started_request_message(request)
32
- @app.call(env)
36
+ @instrumenter.start 'action_dispatch.request', request: request
37
+ logger.info started_request_message(request)
38
+ resp = @app.call(env)
39
+ resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
40
+ resp
41
+ rescue
42
+ finish(request)
43
+ raise
33
44
  ensure
34
45
  ActiveSupport::LogSubscriber.flush_all!
35
46
  end
@@ -55,6 +66,20 @@ module Rails
55
66
  end
56
67
  end
57
68
  end
69
+
70
+ private
71
+
72
+ def finish(request)
73
+ @instrumenter.finish 'action_dispatch.request', request: request
74
+ end
75
+
76
+ def development?
77
+ Rails.env.development?
78
+ end
79
+
80
+ def logger
81
+ Rails.logger
82
+ end
58
83
  end
59
84
  end
60
85
  end
@@ -9,7 +9,7 @@ module Rails
9
9
  # Rails and/or modify the initialization process.
10
10
  #
11
11
  # Every major component of Rails (Action Mailer, Action Controller,
12
- # Action View, Active Record and Active Resource) is a Railtie. Each of
12
+ # Action View and Active Record) is a Railtie. Each of
13
13
  # them is responsible for their own initialization. This makes Rails itself
14
14
  # absent of any component hooks, allowing other components to be used in
15
15
  # place of any of the Rails defaults.
@@ -22,7 +22,7 @@ module Rails
22
22
  #
23
23
  # * creating initializers
24
24
  # * configuring a Rails framework for the application, like setting a generator
25
- # * adding config.* keys to the environment
25
+ # * +adding config.*+ keys to the environment
26
26
  # * setting up a subscriber with ActiveSupport::Notifications
27
27
  # * adding rake tasks
28
28
  #
@@ -103,11 +103,11 @@ module Rails
103
103
  # end
104
104
  # end
105
105
  #
106
- # == Application, Plugin and Engine
106
+ # == Application and Engine
107
107
  #
108
108
  # A Rails::Engine is nothing more than a Railtie with some initializers already set.
109
- # And since Rails::Application and Rails::Plugin are engines, the same configuration
110
- # described here can be used in all three.
109
+ # And since Rails::Application is an engine, the same configuration described here
110
+ # can be used in both.
111
111
  #
112
112
  # Be sure to look at the documentation of those specific classes for more information.
113
113
  #
@@ -117,7 +117,7 @@ module Rails
117
117
 
118
118
  include Initializable
119
119
 
120
- ABSTRACT_RAILTIES = %w(Rails::Railtie Rails::Plugin Rails::Engine Rails::Application)
120
+ ABSTRACT_RAILTIES = %w(Rails::Railtie Rails::Engine Rails::Application)
121
121
 
122
122
  class << self
123
123
  private :new
@@ -168,45 +168,45 @@ module Rails
168
168
 
169
169
  protected
170
170
  def generate_railtie_name(class_or_module)
171
- ActiveSupport::Inflector.underscore(class_or_module).gsub("/", "_")
171
+ ActiveSupport::Inflector.underscore(class_or_module).tr("/", "_")
172
172
  end
173
173
  end
174
174
 
175
- delegate :railtie_name, :to => "self.class"
175
+ delegate :railtie_name, to: :class
176
176
 
177
177
  def config
178
178
  @config ||= Railtie::Configuration.new
179
179
  end
180
180
 
181
- def eager_load!
181
+ def railtie_namespace
182
+ @railtie_namespace ||= self.class.parents.detect { |n| n.respond_to?(:railtie_namespace) }
182
183
  end
183
184
 
184
- def load_console(app=self)
185
+ protected
186
+
187
+ def run_console_blocks(app) #:nodoc:
185
188
  self.class.console.each { |block| block.call(app) }
186
189
  end
187
190
 
188
- def load_runner(app=self)
191
+ def run_generators_blocks(app) #:nodoc:
192
+ self.class.generators.each { |block| block.call(app) }
193
+ end
194
+
195
+ def run_runner_blocks(app) #:nodoc:
189
196
  self.class.runner.each { |block| block.call(app) }
190
197
  end
191
198
 
192
- def load_tasks(app=self)
193
- extend Rake::DSL if defined? Rake::DSL
194
- self.class.rake_tasks.each { |block| self.instance_exec(app, &block) }
199
+ def run_tasks_blocks(app) #:nodoc:
200
+ extend Rake::DSL
201
+ self.class.rake_tasks.each { |block| instance_exec(app, &block) }
195
202
 
196
- # load also tasks from all superclasses
203
+ # Load also tasks from all superclasses
197
204
  klass = self.class.superclass
205
+
198
206
  while klass.respond_to?(:rake_tasks)
199
- klass.rake_tasks.each { |t| self.instance_exec(app, &t) }
207
+ klass.rake_tasks.each { |t| instance_exec(app, &t) }
200
208
  klass = klass.superclass
201
209
  end
202
210
  end
203
-
204
- def load_generators(app=self)
205
- self.class.generators.each { |block| block.call(app) }
206
- end
207
-
208
- def railtie_namespace
209
- @railtie_namespace ||= self.class.parents.detect { |n| n.respond_to?(:railtie_namespace) }
210
- end
211
211
  end
212
212
  end
@@ -6,7 +6,7 @@ module Rails
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  module ClassMethods
9
- delegate :config, :to => :instance
9
+ delegate :config, to: :instance
10
10
 
11
11
  def inherited(base)
12
12
  raise "You cannot inherit from a #{self.superclass.name} child"
@@ -7,6 +7,16 @@ module Rails
7
7
  @@options ||= {}
8
8
  end
9
9
 
10
+ # Expose the eager_load_namespaces at "module" level for convenience.
11
+ def self.eager_load_namespaces #:nodoc:
12
+ @@eager_load_namespaces ||= []
13
+ end
14
+
15
+ # All namespaces that are eager loaded
16
+ def eager_load_namespaces
17
+ @@eager_load_namespaces ||= []
18
+ end
19
+
10
20
  # Add files that should be watched for change.
11
21
  def watchable_files
12
22
  @@watchable_files ||= []
@@ -40,23 +50,23 @@ module Rails
40
50
 
41
51
  # First configurable block to run. Called before any initializers are run.
42
52
  def before_configuration(&block)
43
- ActiveSupport.on_load(:before_configuration, :yield => true, &block)
53
+ ActiveSupport.on_load(:before_configuration, yield: true, &block)
44
54
  end
45
55
 
46
- # Third configurable block to run. Does not run if config.cache_classes
56
+ # Third configurable block to run. Does not run if +config.cache_classes+
47
57
  # set to false.
48
58
  def before_eager_load(&block)
49
- ActiveSupport.on_load(:before_eager_load, :yield => true, &block)
59
+ ActiveSupport.on_load(:before_eager_load, yield: true, &block)
50
60
  end
51
61
 
52
62
  # Second configurable block to run. Called before frameworks initialize.
53
63
  def before_initialize(&block)
54
- ActiveSupport.on_load(:before_initialize, :yield => true, &block)
64
+ ActiveSupport.on_load(:before_initialize, yield: true, &block)
55
65
  end
56
66
 
57
67
  # Last configurable block to run. Called after frameworks initialize.
58
68
  def after_initialize(&block)
59
- ActiveSupport.on_load(:after_initialize, :yield => true, &block)
69
+ ActiveSupport.on_load(:after_initialize, yield: true, &block)
60
70
  end
61
71
 
62
72
  # Array of callbacks defined by #to_prepare.
@@ -1,23 +1,13 @@
1
- if RUBY_VERSION < '1.8.7'
1
+ if RUBY_VERSION < '1.9.3'
2
2
  desc = defined?(RUBY_DESCRIPTION) ? RUBY_DESCRIPTION : "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE})"
3
3
  abort <<-end_message
4
4
 
5
- Rails 3 requires Ruby 1.8.7 or >= 1.9.2.
5
+ Rails 4 prefers to run on Ruby 2.0.
6
6
 
7
7
  You're running
8
8
  #{desc}
9
9
 
10
- Please upgrade to continue.
11
-
12
- end_message
13
- elsif RUBY_VERSION > '1.9' and RUBY_VERSION < '1.9.2'
14
- $stderr.puts <<-end_message
15
-
16
- Rails 3 doesn't officially support Ruby 1.9.1 since recent stable
17
- releases have segfaulted the test suite. Please upgrade to Ruby 1.9.2 or later.
18
-
19
- You're running
20
- #{RUBY_DESCRIPTION}
10
+ Please upgrade to Ruby 1.9.3 or newer to continue.
21
11
 
22
12
  end_message
23
13
  end
@@ -12,7 +12,7 @@ module Prof #:nodoc:
12
12
  io.puts " time seconds seconds calls ms/call ms/call name"
13
13
 
14
14
  sum = 0.0
15
- for r in results
15
+ results.each do |r|
16
16
  sum += r.self_time
17
17
 
18
18
  name = if r.method_class.nil?
@@ -14,6 +14,9 @@
14
14
  # of the line (or closing ERB comment tag) is considered to be their text.
15
15
  class SourceAnnotationExtractor
16
16
  class Annotation < Struct.new(:line, :tag, :text)
17
+ def self.directories
18
+ @@directories ||= %w(app config db lib test) + (ENV['SOURCE_ANNOTATION_DIRECTORIES'] || '').split(',')
19
+ end
17
20
 
18
21
  # Returns a representation of the annotation that looks like this:
19
22
  #
@@ -22,21 +25,31 @@ class SourceAnnotationExtractor
22
25
  # If +options+ has a flag <tt>:tag</tt> the tag is shown as in the example above.
23
26
  # Otherwise the string contains just line and text.
24
27
  def to_s(options={})
25
- s = "[%3d] " % line
28
+ s = "[#{line.to_s.rjust(options[:indent])}] "
26
29
  s << "[#{tag}] " if options[:tag]
27
30
  s << text
28
31
  end
29
32
  end
30
33
 
31
- # Prints all annotations with tag +tag+ under the root directories +app+, +config+, +lib+,
32
- # +script+, and +test+ (recursively). Only filenames with extension
33
- # +.builder+, +.rb+, and +.erb+ are taken into account. The +options+
34
- # hash is passed to each annotation's +to_s+.
34
+ # Prints all annotations with tag +tag+ under the root directories +app+,
35
+ # +config+, +db+, +lib+, and +test+ (recursively).
36
+ #
37
+ # Additional directories may be added using a comma-delimited list set using
38
+ # <tt>ENV['SOURCE_ANNOTATION_DIRECTORIES']</tt>.
39
+ #
40
+ # Directories may also be explicitly set using the <tt>:dirs</tt> key in +options+.
41
+ #
42
+ # SourceAnnotationExtractor.enumerate 'TODO|FIXME', dirs: %w(app lib), tag: true
43
+ #
44
+ # If +options+ has a <tt>:tag</tt> flag, it will be passed to each annotation's +to_s+.
45
+ #
46
+ # See <tt>#find_in</tt> for a list of file extensions that will be taken into account.
35
47
  #
36
48
  # This class method is the single entry point for the rake tasks.
37
49
  def self.enumerate(tag, options={})
38
50
  extractor = new(tag)
39
- extractor.display(extractor.find, options)
51
+ dirs = options.delete(:dirs) || Annotation.directories
52
+ extractor.display(extractor.find(dirs), options)
40
53
  end
41
54
 
42
55
  attr_reader :tag
@@ -47,13 +60,14 @@ class SourceAnnotationExtractor
47
60
 
48
61
  # Returns a hash that maps filenames under +dirs+ (recursively) to arrays
49
62
  # with their annotations.
50
- def find(dirs=%w(app config lib script test))
63
+ def find(dirs)
51
64
  dirs.inject({}) { |h, dir| h.update(find_in(dir)) }
52
65
  end
53
66
 
54
67
  # Returns a hash that maps filenames under +dir+ (recursively) to arrays
55
- # with their annotations. Only files with annotations are included, and only
56
- # those with extension +.builder+, +.rb+, +.erb+, +.haml+, +.slim+ and +.coffee+
68
+ # with their annotations. Only files with annotations are included. Files
69
+ # with extension +.builder+, +.rb+, +.erb+, +.haml+, +.slim+, +.css+,
70
+ # +.scss+, +.js+, +.coffee+, and +.rake+
57
71
  # are taken into account.
58
72
  def find_in(dir)
59
73
  results = {}
@@ -63,14 +77,22 @@ class SourceAnnotationExtractor
63
77
 
64
78
  if File.directory?(item)
65
79
  results.update(find_in(item))
66
- elsif item =~ /\.(builder|rb|coffee)$/
67
- results.update(extract_annotations_from(item, /#\s*(#{tag}):?\s*(.*)$/))
68
- elsif item =~ /\.erb$/
69
- results.update(extract_annotations_from(item, /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/))
70
- elsif item =~ /\.haml$/
71
- results.update(extract_annotations_from(item, /-\s*#\s*(#{tag}):?\s*(.*)$/))
72
- elsif item =~ /\.slim$/
73
- results.update(extract_annotations_from(item, /\/\s*\s*(#{tag}):?\s*(.*)$/))
80
+ else
81
+ pattern =
82
+ case item
83
+ when /\.(builder|rb|coffee|rake)$/
84
+ /#\s*(#{tag}):?\s*(.*)$/
85
+ when /\.(css|scss|js)$/
86
+ /\/\/\s*(#{tag}):?\s*(.*)$/
87
+ when /\.erb$/
88
+ /<%\s*#\s*(#{tag}):?\s*(.*?)\s*%>/
89
+ when /\.haml$/
90
+ /-\s*#\s*(#{tag}):?\s*(.*)$/
91
+ when /\.slim$/
92
+ /\/\s*\s*(#{tag}):?\s*(.*)$/
93
+ else nil
94
+ end
95
+ results.update(extract_annotations_from(item, pattern)) if pattern
74
96
  end
75
97
  end
76
98
 
@@ -93,6 +115,7 @@ class SourceAnnotationExtractor
93
115
  # Prints the mapping from filenames to annotations in +results+ ordered by filename.
94
116
  # The +options+ hash is passed to each annotation's +to_s+.
95
117
  def display(results, options={})
118
+ options[:indent] = results.map { |f, a| a.map(&:line) }.flatten.max.to_s.size
96
119
  results.keys.sort.each do |file|
97
120
  puts "#{file}:"
98
121
  results[file].each do |note|
@@ -2,7 +2,7 @@ require 'rails/source_annotation_extractor'
2
2
 
3
3
  desc "Enumerate all annotations (use notes:optimize, :fixme, :todo for focus)"
4
4
  task :notes do
5
- SourceAnnotationExtractor.enumerate "OPTIMIZE|FIXME|TODO", :tag => true
5
+ SourceAnnotationExtractor.enumerate "OPTIMIZE|FIXME|TODO", tag: true
6
6
  end
7
7
 
8
8
  namespace :notes do
@@ -1,14 +1,8 @@
1
- begin
2
- require 'rdoc/task'
3
- rescue LoadError
4
- require 'rdoc/rdoc'
5
- require 'rake/rdoctask'
6
- RDoc::Task = Rake::RDocTask
7
- end
1
+ require 'rdoc/task'
8
2
 
9
3
  # Monkey-patch to remove redoc'ing and clobber descriptions to cut down on rake -T noise
10
4
  class RDocTaskWithoutDescriptions < RDoc::Task
11
- include ::Rake::DSL if defined?(::Rake::DSL)
5
+ include ::Rake::DSL
12
6
 
13
7
  def define
14
8
  task rdoc_task_name
@@ -51,11 +45,11 @@ namespace :doc do
51
45
  rdoc.title = ENV['title'] || "Rails Application Documentation"
52
46
  rdoc.options << '--line-numbers'
53
47
  rdoc.options << '--charset' << 'utf-8'
54
- rdoc.rdoc_files.include('doc/README_FOR_APP')
48
+ rdoc.rdoc_files.include('README.rdoc')
55
49
  rdoc.rdoc_files.include('app/**/*.rb')
56
50
  rdoc.rdoc_files.include('lib/**/*.rb')
57
51
  }
58
- Rake::Task['doc:app'].comment = "Generate docs for the app -- also available doc:rails, doc:guides, doc:plugins (options: TEMPLATE=/rdoc-template.rb, TITLE=\"Custom Title\")"
52
+ Rake::Task['doc:app'].comment = "Generate docs for the app -- also available doc:rails, doc:guides (options: TEMPLATE=/rdoc-template.rb, TITLE=\"Custom Title\")"
59
53
 
60
54
  # desc 'Generate documentation for the Rails framework.'
61
55
  RDocTaskWithoutDescriptions.new("rails") { |rdoc|
@@ -63,7 +57,10 @@ namespace :doc do
63
57
  rdoc.template = "#{ENV['template']}.rb" if ENV['template']
64
58
  rdoc.title = "Rails Framework Documentation"
65
59
  rdoc.options << '--line-numbers'
66
- rdoc.rdoc_files.include('README.rdoc')
60
+
61
+ gem_path('rails') do |rails|
62
+ rdoc.options << '-m' << "#{rails}/README.rdoc"
63
+ end
67
64
 
68
65
  gem_path('actionmailer') do |actionmailer|
69
66
  %w(README.rdoc CHANGELOG.md MIT-LICENSE lib/action_mailer/base.rb).each do |file|
@@ -89,12 +86,6 @@ namespace :doc do
89
86
  end
90
87
  end
91
88
 
92
- gem_path('activeresource') do |activeresource|
93
- %w(README.rdoc CHANGELOG.md lib/active_resource.rb lib/active_resource/*).each do |file|
94
- rdoc.rdoc_files.include("#{activeresource}/#{file}")
95
- end
96
- end
97
-
98
89
  gem_path('activesupport') do |activesupport|
99
90
  %w(README.rdoc CHANGELOG.md lib/active_support/**/*.rb).each do |file|
100
91
  rdoc.rdoc_files.include("#{activesupport}/#{file}")
@@ -108,48 +99,10 @@ namespace :doc do
108
99
  end
109
100
  }
110
101
 
111
- plugins = FileList['vendor/plugins/**'].collect { |plugin| File.basename(plugin) }
112
-
113
- # desc "Generate documentation for all installed plugins"
114
- task :plugins => plugins.collect { |plugin| "doc:plugins:#{plugin}" }
115
-
116
- # desc "Remove plugin documentation"
117
- task :clobber_plugins do
118
- rm_rf 'doc/plugins' rescue nil
119
- end
120
-
121
102
  # desc "Generate Rails Guides"
122
103
  task :guides do
123
- rails_gem_dir = Gem::Specification.find_by_name("rails").gem_dir
124
- require File.expand_path(File.join(rails_gem_dir, "railties/guides/rails_guides"))
104
+ # FIXME: Reaching outside lib directory is a bad idea
105
+ require File.expand_path('../../../../../guides/rails_guides', __FILE__)
125
106
  RailsGuides::Generator.new(Rails.root.join("doc/guides")).generate
126
107
  end
127
-
128
- namespace :plugins do
129
- # Define doc tasks for each plugin
130
- plugins.each do |plugin|
131
- # desc "Generate documentation for the #{plugin} plugin"
132
- task(plugin => :environment) do
133
- plugin_base = "vendor/plugins/#{plugin}"
134
- options = []
135
- files = Rake::FileList.new
136
- options << "-o doc/plugins/#{plugin}"
137
- options << "--title '#{plugin.titlecase} Plugin Documentation'"
138
- options << '--line-numbers'
139
- options << '--charset' << 'utf-8'
140
- options << '-T html'
141
-
142
- files.include("#{plugin_base}/lib/**/*.rb")
143
- if File.exist?("#{plugin_base}/README")
144
- files.include("#{plugin_base}/README")
145
- options << "--main '#{plugin_base}/README'"
146
- end
147
- files.include("#{plugin_base}/CHANGELOG") if File.exist?("#{plugin_base}/CHANGELOG")
148
-
149
- options << files.to_s
150
-
151
- sh %(rdoc #{options * ' '})
152
- end
153
- end
154
- end
155
108
  end