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
@@ -7,21 +7,28 @@ module Rails
7
7
  module Bootstrap
8
8
  include Initializable
9
9
 
10
- initializer :load_environment_hook, :group => :all do end
10
+ initializer :load_environment_hook, group: :all do end
11
11
 
12
- initializer :load_active_support, :group => :all do
12
+ initializer :load_active_support, group: :all do
13
13
  require "active_support/all" unless config.active_support.bare
14
14
  end
15
15
 
16
- # Preload all frameworks specified by the Configuration#frameworks.
17
- # Used by Passenger to ensure everything's loaded before forking and
18
- # to avoid autoload race conditions in JRuby.
19
- initializer :preload_frameworks, :group => :all do
20
- ActiveSupport::Autoload.eager_autoload! if config.preload_frameworks
16
+ initializer :set_eager_load, group: :all do
17
+ if config.eager_load.nil?
18
+ warn <<-INFO
19
+ config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:
20
+
21
+ * development - set it to false
22
+ * test - set it to false (unless you use a tool that preloads your test environment)
23
+ * production - set it to true
24
+
25
+ INFO
26
+ config.eager_load = config.cache_classes
27
+ end
21
28
  end
22
29
 
23
30
  # Initialize the logger early in the stack in case we need to log some deprecation.
24
- initializer :initialize_logger, :group => :all do
31
+ initializer :initialize_logger, group: :all do
25
32
  Rails.logger ||= config.logger || begin
26
33
  path = config.paths["log"].first
27
34
  unless File.exist? File.dirname path
@@ -30,16 +37,16 @@ module Rails
30
37
 
31
38
  f = File.open path, 'a'
32
39
  f.binmode
33
- f.sync = true # make sure every write flushes
40
+ f.sync = config.autoflush_log # if true make sure every write flushes
34
41
 
35
- logger = ActiveSupport::TaggedLogging.new(
36
- ActiveSupport::BufferedLogger.new(f)
37
- )
38
- logger.level = ActiveSupport::BufferedLogger.const_get(config.log_level.to_s.upcase)
42
+ logger = ActiveSupport::Logger.new f
43
+ logger.formatter = config.log_formatter
44
+ logger = ActiveSupport::TaggedLogging.new(logger)
45
+ logger.level = ActiveSupport::Logger.const_get(config.log_level.to_s.upcase)
39
46
  logger
40
47
  rescue StandardError
41
- logger = ActiveSupport::TaggedLogging.new(ActiveSupport::BufferedLogger.new(STDERR))
42
- logger.level = ActiveSupport::BufferedLogger::WARN
48
+ logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDERR))
49
+ logger.level = ActiveSupport::Logger::WARN
43
50
  logger.warn(
44
51
  "Rails Error: Unable to access log file. Please ensure that #{path} exists and is chmod 0666. " +
45
52
  "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
@@ -49,23 +56,22 @@ module Rails
49
56
  end
50
57
 
51
58
  # Initialize cache early in the stack so railties can make use of it.
52
- initializer :initialize_cache, :group => :all do
53
- unless defined?(RAILS_CACHE)
54
- silence_warnings { Object.const_set "RAILS_CACHE", ActiveSupport::Cache.lookup_store(config.cache_store) }
59
+ initializer :initialize_cache, group: :all do
60
+ unless Rails.cache
61
+ Rails.cache = ActiveSupport::Cache.lookup_store(config.cache_store)
55
62
 
56
- if RAILS_CACHE.respond_to?(:middleware)
57
- config.middleware.insert_before("Rack::Runtime", RAILS_CACHE.middleware)
63
+ if Rails.cache.respond_to?(:middleware)
64
+ config.middleware.insert_before("Rack::Runtime", Rails.cache.middleware)
58
65
  end
59
66
  end
60
67
  end
61
68
 
62
69
  # Sets the dependency loading mechanism.
63
- # TODO: Remove files from the $" and always use require.
64
- initializer :initialize_dependency_mechanism, :group => :all do
70
+ initializer :initialize_dependency_mechanism, group: :all do
65
71
  ActiveSupport::Dependencies.mechanism = config.cache_classes ? :require : :load
66
72
  end
67
73
 
68
- initializer :bootstrap_hook, :group => :all do |app|
74
+ initializer :bootstrap_hook, group: :all do |app|
69
75
  ActiveSupport.run_load_hooks(:before_initialize, app)
70
76
  end
71
77
  end
@@ -1,4 +1,3 @@
1
- require 'active_support/core_ext/string/encoding'
2
1
  require 'active_support/core_ext/kernel/reporting'
3
2
  require 'active_support/file_update_checker'
4
3
  require 'rails/engine/configuration'
@@ -6,13 +5,14 @@ require 'rails/engine/configuration'
6
5
  module Rails
7
6
  class Application
8
7
  class Configuration < ::Rails::Engine::Configuration
9
- attr_accessor :allow_concurrency, :asset_host, :asset_path, :assets,
10
- :cache_classes, :cache_store, :consider_all_requests_local,
11
- :dependency_loading, :exceptions_app, :file_watcher, :filter_parameters,
12
- :force_ssl, :helpers_paths, :logger, :log_tags, :preload_frameworks,
13
- :railties_order, :relative_url_root, :reload_plugins, :secret_token,
8
+ attr_accessor :asset_host, :assets, :autoflush_log,
9
+ :cache_classes, :cache_store, :consider_all_requests_local, :console,
10
+ :eager_load, :exceptions_app, :file_watcher, :filter_parameters,
11
+ :force_ssl, :helpers_paths, :logger, :log_formatter, :log_tags,
12
+ :railties_order, :relative_url_root, :secret_key_base, :secret_token,
14
13
  :serve_static_assets, :ssl_options, :static_cache_control, :session_options,
15
- :time_zone, :reload_classes_only_on_change, :whiny_nils
14
+ :time_zone, :reload_classes_only_on_change,
15
+ :beginning_of_week, :filter_redirect
16
16
 
17
17
  attr_writer :log_level
18
18
  attr_reader :encoding
@@ -20,11 +20,10 @@ module Rails
20
20
  def initialize(*)
21
21
  super
22
22
  self.encoding = "utf-8"
23
- @allow_concurrency = false
24
23
  @consider_all_requests_local = false
25
24
  @filter_parameters = []
25
+ @filter_redirect = []
26
26
  @helpers_paths = []
27
- @dependency_loading = true
28
27
  @serve_static_assets = true
29
28
  @static_cache_control = nil
30
29
  @force_ssl = false
@@ -32,6 +31,7 @@ module Rails
32
31
  @session_store = :cookie_store
33
32
  @session_options = {}
34
33
  @time_zone = "UTC"
34
+ @beginning_of_week = :monday
35
35
  @log_level = nil
36
36
  @middleware = app_middleware
37
37
  @generators = app_generators
@@ -41,52 +41,44 @@ module Rails
41
41
  @reload_classes_only_on_change = true
42
42
  @file_watcher = ActiveSupport::FileUpdateChecker
43
43
  @exceptions_app = nil
44
+ @autoflush_log = true
45
+ @log_formatter = ActiveSupport::Logger::SimpleFormatter.new
46
+ @eager_load = nil
47
+ @secret_token = nil
48
+ @secret_key_base = nil
44
49
 
45
50
  @assets = ActiveSupport::OrderedOptions.new
46
- @assets.enabled = false
51
+ @assets.enabled = true
47
52
  @assets.paths = []
48
- @assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) },
53
+ @assets.precompile = [ Proc.new { |path, fn| fn =~ /app\/assets/ && !%w(.js .css).include?(File.extname(path)) },
49
54
  /(?:\/|\\|\A)application\.(css|js)$/ ]
50
55
  @assets.prefix = "/assets"
51
- @assets.version = ''
56
+ @assets.version = '1.0'
52
57
  @assets.debug = false
53
58
  @assets.compile = true
54
59
  @assets.digest = false
55
- @assets.manifest = nil
56
- @assets.cache_store = [ :file_store, "#{root}/tmp/cache/assets/" ]
60
+ @assets.cache_store = [ :file_store, "#{root}/tmp/cache/assets/#{Rails.env}/" ]
57
61
  @assets.js_compressor = nil
58
62
  @assets.css_compressor = nil
59
63
  @assets.initialize_on_precompile = true
60
64
  @assets.logger = nil
61
65
  end
62
66
 
63
- def compiled_asset_path
64
- "/"
65
- end
66
-
67
67
  def encoding=(value)
68
68
  @encoding = value
69
- if "ruby".encoding_aware?
70
- silence_warnings do
71
- Encoding.default_external = value
72
- Encoding.default_internal = value
73
- end
74
- else
75
- $KCODE = value
76
- if $KCODE == "NONE"
77
- raise "The value you specified for config.encoding is " \
78
- "invalid. The possible values are UTF8, SJIS, or EUC"
79
- end
69
+ silence_warnings do
70
+ Encoding.default_external = value
71
+ Encoding.default_internal = value
80
72
  end
81
73
  end
82
74
 
83
75
  def paths
84
76
  @paths ||= begin
85
77
  paths = super
86
- paths.add "config/database", :with => "config/database.yml"
87
- paths.add "config/environment", :with => "config/environment.rb"
78
+ paths.add "config/database", with: "config/database.yml"
79
+ paths.add "config/environment", with: "config/environment.rb"
88
80
  paths.add "lib/templates"
89
- paths.add "log", :with => "log/#{Rails.env}.log"
81
+ paths.add "log", with: "log/#{Rails.env}.log"
90
82
  paths.add "public"
91
83
  paths.add "public/javascripts"
92
84
  paths.add "public/stylesheets"
@@ -95,24 +87,30 @@ module Rails
95
87
  end
96
88
  end
97
89
 
98
- # Enable threaded mode. Allows concurrent requests to controller actions and
99
- # multiple database connections. Also disables automatic dependency loading
100
- # after boot, and disables reloading code on every request, as these are
101
- # fundamentally incompatible with thread safety.
102
90
  def threadsafe!
103
- self.preload_frameworks = true
104
- self.cache_classes = true
105
- self.dependency_loading = false
106
- self.allow_concurrency = true
91
+ message = "config.threadsafe! is deprecated. Rails applications " \
92
+ "behave by default as thread safe in production as long as config.cache_classes and " \
93
+ "config.eager_load are set to true"
94
+ ActiveSupport::Deprecation.warn message
95
+ @cache_classes = true
96
+ @eager_load = true
107
97
  self
108
98
  end
109
99
 
110
- # Loads and returns the contents of the #database_configuration_file. The
111
- # contents of the file are processed via ERB before being sent through
112
- # YAML::load.
100
+ # Loads and returns the configuration of the database.
101
+ # First, looks at If ENV['DATABASE_URL'] if it's not present it uses the #paths["config/database"]
102
+ # The contents of the file are processed via ERB before being sent through YAML::load.
113
103
  def database_configuration
114
- require 'erb'
115
- YAML::load(ERB.new(IO.read(paths["config/database"].first)).result)
104
+ if ENV['DATABASE_URL']
105
+ {Rails.env => ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver.connection_url_to_hash(ENV['DATABASE_URL']).stringify_keys}
106
+ else
107
+ require 'erb'
108
+ YAML.load ERB.new(IO.read(paths["config/database"].first)).result
109
+ end
110
+ rescue Psych::SyntaxError => e
111
+ raise "YAML syntax error occurred while parsing #{paths["config/database"].first}. " \
112
+ "Please note that YAML must be consistently indented using spaces. Tabs are not allowed. " \
113
+ "Error: #{e.message}"
116
114
  end
117
115
 
118
116
  def log_level
@@ -120,11 +118,10 @@ module Rails
120
118
  end
121
119
 
122
120
  def colorize_logging
123
- @colorize_logging
121
+ ActiveSupport::LogSubscriber.colorize_logging
124
122
  end
125
123
 
126
124
  def colorize_logging=(val)
127
- @colorize_logging = val
128
125
  ActiveSupport::LogSubscriber.colorize_logging = val
129
126
  self.generators.colorize_logging = val
130
127
  end
@@ -135,7 +132,12 @@ module Rails
135
132
  when :disabled
136
133
  nil
137
134
  when :active_record_store
138
- ActiveRecord::SessionStore
135
+ begin
136
+ ActionDispatch::Session::ActiveRecordStore
137
+ rescue NameError
138
+ raise "`ActiveRecord::SessionStore` is extracted out of Rails into a gem. " \
139
+ "Please add `activerecord-session_store` to your Gemfile to use it."
140
+ end
139
141
  when Symbol
140
142
  ActionDispatch::Session.const_get(@session_store.to_s.camelize)
141
143
  else
@@ -146,6 +148,10 @@ module Rails
146
148
  @session_options = args.shift || {}
147
149
  end
148
150
  end
151
+
152
+ def whiny_nils=(*)
153
+ ActiveSupport::Deprecation.warn "config.whiny_nils option is deprecated and no longer works"
154
+ end
149
155
  end
150
156
  end
151
157
  end
@@ -22,7 +22,10 @@ module Rails
22
22
  initializer :add_builtin_route do |app|
23
23
  if Rails.env.development?
24
24
  app.routes.append do
25
- match '/rails/info/properties' => "rails/info#properties"
25
+ get '/rails/info/properties' => "rails/info#properties"
26
+ get '/rails/info/routes' => "rails/info#routes"
27
+ get '/rails/info' => "rails/info#index"
28
+ get '/' => "rails/welcome#index"
26
29
  end
27
30
  end
28
31
  end
@@ -48,9 +51,9 @@ module Rails
48
51
  end
49
52
 
50
53
  initializer :eager_load! do
51
- if config.cache_classes && !(defined?($rails_rake_task) && $rails_rake_task)
54
+ if config.eager_load
52
55
  ActiveSupport.run_load_hooks(:before_eager_load, self)
53
- eager_load!
56
+ config.eager_load_namespaces.each(&:eager_load!)
54
57
  end
55
58
  end
56
59
 
@@ -70,7 +73,7 @@ module Rails
70
73
 
71
74
  # Set app reload just after the finisher hook to ensure
72
75
  # paths added in the hook are still loaded.
73
- initializer :set_clear_dependencies_hook, :group => :all do
76
+ initializer :set_clear_dependencies_hook, group: :all do
74
77
  callback = lambda do
75
78
  ActiveSupport::DescendantsTracker.clear
76
79
  ActiveSupport::Dependencies.clear
@@ -81,18 +84,11 @@ module Rails
81
84
  self.reloaders << reloader
82
85
  # We need to set a to_prepare callback regardless of the reloader result, i.e.
83
86
  # models should be reloaded if any of the reloaders (i18n, routes) were updated.
84
- ActionDispatch::Reloader.to_prepare(:prepend => true){ reloader.execute }
87
+ ActionDispatch::Reloader.to_prepare(prepend: true){ reloader.execute }
85
88
  else
86
89
  ActionDispatch::Reloader.to_cleanup(&callback)
87
90
  end
88
91
  end
89
-
90
- # Disable dependency loading during request cycle
91
- initializer :disable_dependency_loading do
92
- if config.cache_classes && !config.dependency_loading
93
- ActiveSupport::Dependencies.unhook!
94
- end
95
- end
96
92
  end
97
93
  end
98
94
  end
@@ -4,7 +4,7 @@ module Rails
4
4
  class Application
5
5
  class RoutesReloader
6
6
  attr_reader :route_sets, :paths
7
- delegate :execute_if_updated, :execute, :updated?, :to => :updater
7
+ delegate :execute_if_updated, :execute, :updated?, to: :updater
8
8
 
9
9
  def initialize
10
10
  @paths = []
@@ -42,7 +42,7 @@ module Rails
42
42
 
43
43
  def finalize!
44
44
  route_sets.each do |routes|
45
- ActiveSupport.on_load(:action_controller) { routes.finalize! }
45
+ routes.finalize!
46
46
  end
47
47
  end
48
48
 
@@ -17,26 +17,11 @@ module Rails
17
17
 
18
18
  private
19
19
  def add_gem_filters
20
- return unless defined?(Gem)
21
-
22
- gems_paths = (Gem.path + [Gem.default_dir]).uniq.map!{ |p| Regexp.escape(p) }
20
+ gems_paths = (Gem.path | [Gem.default_dir]).map { |p| Regexp.escape(p) }
23
21
  return if gems_paths.empty?
24
22
 
25
23
  gems_regexp = %r{(#{gems_paths.join('|')})/gems/([^/]+)-([\w.]+)/(.*)}
26
24
  add_filter { |line| line.sub(gems_regexp, '\2 (\3) \4') }
27
25
  end
28
26
  end
29
-
30
- # For installing the BacktraceCleaner in the test/unit
31
- module BacktraceFilterForTestUnit #:nodoc:
32
- def self.included(klass)
33
- klass.send :alias_method_chain, :filter_backtrace, :cleaning
34
- end
35
-
36
- def filter_backtrace_with_cleaning(backtrace, prefix=nil)
37
- backtrace = filter_backtrace_without_cleaning(backtrace, prefix)
38
- backtrace = backtrace.first.split("\n") if backtrace.size == 1
39
- Rails.backtrace_cleaner.clean(backtrace)
40
- end
41
- end
42
27
  end
@@ -1,9 +1,9 @@
1
1
  require 'rbconfig'
2
- require 'rails/script_rails_loader'
2
+ require 'rails/app_rails_loader'
3
3
 
4
4
  # If we are inside a Rails application this method performs an exec and thus
5
5
  # the rest of this script is not run.
6
- Rails::ScriptRailsLoader.exec_script_rails!
6
+ Rails::AppRailsLoader.exec_app_rails
7
7
 
8
8
  require 'rails/ruby_version_check'
9
9
  Signal.trap("INT") { puts; exit(1) }
@@ -1,6 +1,14 @@
1
+ require 'rails/code_statistics_calculator'
2
+
1
3
  class CodeStatistics #:nodoc:
2
4
 
3
- TEST_TYPES = %w(Units Functionals Unit\ tests Functional\ tests Integration\ tests)
5
+ TEST_TYPES = ['Controller tests',
6
+ 'Helper tests',
7
+ 'Model tests',
8
+ 'Mailer tests',
9
+ 'Integration tests',
10
+ 'Functional tests (old)',
11
+ 'Unit tests (old)']
4
12
 
5
13
  def initialize(*pairs)
6
14
  @pairs = pairs
@@ -26,56 +34,39 @@ class CodeStatistics #:nodoc:
26
34
  Hash[@pairs.map{|pair| [pair.first, calculate_directory_statistics(pair.last)]}]
27
35
  end
28
36
 
29
- def calculate_directory_statistics(directory, pattern = /.*\.rb$/)
30
- stats = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }
37
+ def calculate_directory_statistics(directory, pattern = /.*\.(rb|js|coffee)$/)
38
+ stats = CodeStatisticsCalculator.new
31
39
 
32
40
  Dir.foreach(directory) do |file_name|
33
- if File.directory?(directory + "/" + file_name) and (/^\./ !~ file_name)
34
- newstats = calculate_directory_statistics(directory + "/" + file_name, pattern)
35
- stats.each { |k, v| stats[k] += newstats[k] }
41
+ path = "#{directory}/#{file_name}"
42
+
43
+ if File.directory?(path) && (/^\./ !~ file_name)
44
+ stats.add(calculate_directory_statistics(path, pattern))
36
45
  end
37
46
 
38
47
  next unless file_name =~ pattern
39
48
 
40
- f = File.open(directory + "/" + file_name)
41
- comment_started = false
42
- while line = f.gets
43
- stats["lines"] += 1
44
- if(comment_started)
45
- if line =~ /^=end/
46
- comment_started = false
47
- end
48
- next
49
- else
50
- if line =~ /^=begin/
51
- comment_started = true
52
- next
53
- end
54
- end
55
- stats["classes"] += 1 if line =~ /^\s*class\s+[_A-Z]/
56
- stats["methods"] += 1 if line =~ /^\s*def\s+[_a-z]/
57
- stats["codelines"] += 1 unless line =~ /^\s*$/ || line =~ /^\s*#/
58
- end
49
+ stats.add_by_file_path(path)
59
50
  end
60
51
 
61
52
  stats
62
53
  end
63
54
 
64
55
  def calculate_total
65
- total = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }
66
- @statistics.each_value { |pair| pair.each { |k, v| total[k] += v } }
67
- total
56
+ @statistics.each_with_object(CodeStatisticsCalculator.new) do |pair, total|
57
+ total.add(pair.last)
58
+ end
68
59
  end
69
60
 
70
61
  def calculate_code
71
62
  code_loc = 0
72
- @statistics.each { |k, v| code_loc += v['codelines'] unless TEST_TYPES.include? k }
63
+ @statistics.each { |k, v| code_loc += v.code_lines unless TEST_TYPES.include? k }
73
64
  code_loc
74
65
  end
75
66
 
76
67
  def calculate_tests
77
68
  test_loc = 0
78
- @statistics.each { |k, v| test_loc += v['codelines'] if TEST_TYPES.include? k }
69
+ @statistics.each { |k, v| test_loc += v.code_lines if TEST_TYPES.include? k }
79
70
  test_loc
80
71
  end
81
72
 
@@ -90,21 +81,15 @@ class CodeStatistics #:nodoc:
90
81
  end
91
82
 
92
83
  def print_line(name, statistics)
93
- m_over_c = (statistics["methods"] / statistics["classes"]) rescue m_over_c = 0
94
- loc_over_m = (statistics["codelines"] / statistics["methods"]) - 2 rescue loc_over_m = 0
95
-
96
- start = if TEST_TYPES.include? name
97
- "| #{name.ljust(20)} "
98
- else
99
- "| #{name.ljust(20)} "
100
- end
101
-
102
- puts start +
103
- "| #{statistics["lines"].to_s.rjust(5)} " +
104
- "| #{statistics["codelines"].to_s.rjust(5)} " +
105
- "| #{statistics["classes"].to_s.rjust(7)} " +
106
- "| #{statistics["methods"].to_s.rjust(7)} " +
107
- "| #{m_over_c.to_s.rjust(3)} " +
84
+ m_over_c = (statistics.methods / statistics.classes) rescue m_over_c = 0
85
+ loc_over_m = (statistics.code_lines / statistics.methods) - 2 rescue loc_over_m = 0
86
+
87
+ puts "| #{name.ljust(20)} " \
88
+ "| #{statistics.lines.to_s.rjust(5)} " \
89
+ "| #{statistics.code_lines.to_s.rjust(5)} " \
90
+ "| #{statistics.classes.to_s.rjust(7)} " \
91
+ "| #{statistics.methods.to_s.rjust(7)} " \
92
+ "| #{m_over_c.to_s.rjust(3)} " \
108
93
  "| #{loc_over_m.to_s.rjust(5)} |"
109
94
  end
110
95