openskies 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. data/CHANGELOG.md +87 -0
  2. data/README.rdoc +35 -0
  3. data/bin/openskies +9 -0
  4. data/guides/assets/images/belongs_to.png +0 -0
  5. data/guides/assets/images/book_icon.gif +0 -0
  6. data/guides/assets/images/bullet.gif +0 -0
  7. data/guides/assets/images/challenge.png +0 -0
  8. data/guides/assets/images/chapters_icon.gif +0 -0
  9. data/guides/assets/images/check_bullet.gif +0 -0
  10. data/guides/assets/images/credits_pic_blank.gif +0 -0
  11. data/guides/assets/images/csrf.png +0 -0
  12. data/guides/assets/images/customized_error_messages.png +0 -0
  13. data/guides/assets/images/edge_badge.png +0 -0
  14. data/guides/assets/images/error_messages.png +0 -0
  15. data/guides/assets/images/feature_tile.gif +0 -0
  16. data/guides/assets/images/footer_tile.gif +0 -0
  17. data/guides/assets/images/fxn.png +0 -0
  18. data/guides/assets/images/grey_bullet.gif +0 -0
  19. data/guides/assets/images/habtm.png +0 -0
  20. data/guides/assets/images/has_many.png +0 -0
  21. data/guides/assets/images/has_many_through.png +0 -0
  22. data/guides/assets/images/has_one.png +0 -0
  23. data/guides/assets/images/has_one_through.png +0 -0
  24. data/guides/assets/images/header_backdrop.png +0 -0
  25. data/guides/assets/images/header_tile.gif +0 -0
  26. data/guides/assets/images/i18n/demo_html_safe.png +0 -0
  27. data/guides/assets/images/i18n/demo_localized_pirate.png +0 -0
  28. data/guides/assets/images/i18n/demo_translated_en.png +0 -0
  29. data/guides/assets/images/i18n/demo_translated_pirate.png +0 -0
  30. data/guides/assets/images/i18n/demo_translation_missing.png +0 -0
  31. data/guides/assets/images/i18n/demo_untranslated.png +0 -0
  32. data/guides/assets/images/icons/README +5 -0
  33. data/guides/assets/images/icons/callouts/1.png +0 -0
  34. data/guides/assets/images/icons/callouts/10.png +0 -0
  35. data/guides/assets/images/icons/callouts/11.png +0 -0
  36. data/guides/assets/images/icons/callouts/12.png +0 -0
  37. data/guides/assets/images/icons/callouts/13.png +0 -0
  38. data/guides/assets/images/icons/callouts/14.png +0 -0
  39. data/guides/assets/images/icons/callouts/15.png +0 -0
  40. data/guides/assets/images/icons/callouts/2.png +0 -0
  41. data/guides/assets/images/icons/callouts/3.png +0 -0
  42. data/guides/assets/images/icons/callouts/4.png +0 -0
  43. data/guides/assets/images/icons/callouts/5.png +0 -0
  44. data/guides/assets/images/icons/callouts/6.png +0 -0
  45. data/guides/assets/images/icons/callouts/7.png +0 -0
  46. data/guides/assets/images/icons/callouts/8.png +0 -0
  47. data/guides/assets/images/icons/callouts/9.png +0 -0
  48. data/guides/assets/images/icons/caution.png +0 -0
  49. data/guides/assets/images/icons/example.png +0 -0
  50. data/guides/assets/images/icons/home.png +0 -0
  51. data/guides/assets/images/icons/important.png +0 -0
  52. data/guides/assets/images/icons/next.png +0 -0
  53. data/guides/assets/images/icons/note.png +0 -0
  54. data/guides/assets/images/icons/prev.png +0 -0
  55. data/guides/assets/images/icons/tip.png +0 -0
  56. data/guides/assets/images/icons/up.png +0 -0
  57. data/guides/assets/images/icons/warning.png +0 -0
  58. data/guides/assets/images/jaimeiniesta.jpg +0 -0
  59. data/guides/assets/images/nav_arrow.gif +0 -0
  60. data/guides/assets/images/polymorphic.png +0 -0
  61. data/guides/assets/images/posts_index.png +0 -0
  62. data/guides/assets/images/radar.png +0 -0
  63. data/guides/assets/images/rails_guides_kindle_cover.jpg +0 -0
  64. data/guides/assets/images/rails_guides_logo.gif +0 -0
  65. data/guides/assets/images/rails_logo_remix.gif +0 -0
  66. data/guides/assets/images/rails_welcome.png +0 -0
  67. data/guides/assets/images/session_fixation.png +0 -0
  68. data/guides/assets/images/tab_grey.gif +0 -0
  69. data/guides/assets/images/tab_info.gif +0 -0
  70. data/guides/assets/images/tab_note.gif +0 -0
  71. data/guides/assets/images/tab_red.gif +0 -0
  72. data/guides/assets/images/tab_yellow.gif +0 -0
  73. data/guides/assets/images/tab_yellow.png +0 -0
  74. data/guides/assets/images/validation_error_messages.png +0 -0
  75. data/guides/assets/images/vijaydev.jpg +0 -0
  76. data/guides/assets/javascripts/guides.js +7 -0
  77. data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +59 -0
  78. data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +75 -0
  79. data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +59 -0
  80. data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +65 -0
  81. data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +100 -0
  82. data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +97 -0
  83. data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +91 -0
  84. data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +55 -0
  85. data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +41 -0
  86. data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +52 -0
  87. data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +67 -0
  88. data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +52 -0
  89. data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +57 -0
  90. data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +58 -0
  91. data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +72 -0
  92. data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +88 -0
  93. data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +33 -0
  94. data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +74 -0
  95. data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +64 -0
  96. data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +55 -0
  97. data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +94 -0
  98. data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +51 -0
  99. data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +66 -0
  100. data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +56 -0
  101. data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +69 -0
  102. data/guides/assets/javascripts/syntaxhighlighter/shCore.js +17 -0
  103. data/guides/assets/stylesheets/fixes.css +16 -0
  104. data/guides/assets/stylesheets/kindle.css +11 -0
  105. data/guides/assets/stylesheets/main.css +453 -0
  106. data/guides/assets/stylesheets/print.css +52 -0
  107. data/guides/assets/stylesheets/reset.css +43 -0
  108. data/guides/assets/stylesheets/style.css +13 -0
  109. data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +226 -0
  110. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +328 -0
  111. data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +331 -0
  112. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +339 -0
  113. data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +324 -0
  114. data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +328 -0
  115. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +324 -0
  116. data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +324 -0
  117. data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +324 -0
  118. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +117 -0
  119. data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +120 -0
  120. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +128 -0
  121. data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +113 -0
  122. data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +117 -0
  123. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +113 -0
  124. data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +113 -0
  125. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +113 -0
  126. data/guides/assets/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +116 -0
  127. data/guides/code/getting_started/Gemfile +38 -0
  128. data/guides/code/getting_started/README.rdoc +261 -0
  129. data/guides/code/getting_started/Rakefile +7 -0
  130. data/guides/code/getting_started/app/assets/images/rails.png +0 -0
  131. data/guides/code/getting_started/app/assets/javascripts/application.js +15 -0
  132. data/guides/code/getting_started/app/assets/javascripts/comments.js.coffee +3 -0
  133. data/guides/code/getting_started/app/assets/javascripts/home.js.coffee +3 -0
  134. data/guides/code/getting_started/app/assets/javascripts/posts.js.coffee +3 -0
  135. data/guides/code/getting_started/app/assets/stylesheets/application.css +13 -0
  136. data/guides/code/getting_started/app/assets/stylesheets/comments.css.scss +3 -0
  137. data/guides/code/getting_started/app/assets/stylesheets/home.css.scss +3 -0
  138. data/guides/code/getting_started/app/assets/stylesheets/posts.css.scss +3 -0
  139. data/guides/code/getting_started/app/assets/stylesheets/scaffolds.css.scss +56 -0
  140. data/guides/code/getting_started/app/controllers/application_controller.rb +3 -0
  141. data/guides/code/getting_started/app/controllers/comments_controller.rb +16 -0
  142. data/guides/code/getting_started/app/controllers/home_controller.rb +5 -0
  143. data/guides/code/getting_started/app/controllers/posts_controller.rb +84 -0
  144. data/guides/code/getting_started/app/helpers/application_helper.rb +2 -0
  145. data/guides/code/getting_started/app/helpers/comments_helper.rb +2 -0
  146. data/guides/code/getting_started/app/helpers/home_helper.rb +2 -0
  147. data/guides/code/getting_started/app/helpers/posts_helper.rb +5 -0
  148. data/guides/code/getting_started/app/models/comment.rb +3 -0
  149. data/guides/code/getting_started/app/models/post.rb +11 -0
  150. data/guides/code/getting_started/app/models/tag.rb +3 -0
  151. data/guides/code/getting_started/app/views/comments/_comment.html.erb +15 -0
  152. data/guides/code/getting_started/app/views/comments/_form.html.erb +13 -0
  153. data/guides/code/getting_started/app/views/home/index.html.erb +2 -0
  154. data/guides/code/getting_started/app/views/layouts/application.html.erb +14 -0
  155. data/guides/code/getting_started/app/views/posts/_form.html.erb +32 -0
  156. data/guides/code/getting_started/app/views/posts/edit.html.erb +6 -0
  157. data/guides/code/getting_started/app/views/posts/index.html.erb +27 -0
  158. data/guides/code/getting_started/app/views/posts/new.html.erb +5 -0
  159. data/guides/code/getting_started/app/views/posts/show.html.erb +31 -0
  160. data/guides/code/getting_started/app/views/tags/_form.html.erb +12 -0
  161. data/guides/code/getting_started/config/application.rb +59 -0
  162. data/guides/code/getting_started/config/boot.rb +6 -0
  163. data/guides/code/getting_started/config/database.yml +25 -0
  164. data/guides/code/getting_started/config/environment.rb +5 -0
  165. data/guides/code/getting_started/config/environments/development.rb +37 -0
  166. data/guides/code/getting_started/config/environments/production.rb +67 -0
  167. data/guides/code/getting_started/config/environments/test.rb +37 -0
  168. data/guides/code/getting_started/config/initializers/backtrace_silencers.rb +7 -0
  169. data/guides/code/getting_started/config/initializers/inflections.rb +15 -0
  170. data/guides/code/getting_started/config/initializers/mime_types.rb +5 -0
  171. data/guides/code/getting_started/config/initializers/secret_token.rb +7 -0
  172. data/guides/code/getting_started/config/initializers/session_store.rb +8 -0
  173. data/guides/code/getting_started/config/initializers/wrap_parameters.rb +14 -0
  174. data/guides/code/getting_started/config/locales/en.yml +5 -0
  175. data/guides/code/getting_started/config/routes.rb +64 -0
  176. data/guides/code/getting_started/config.ru +4 -0
  177. data/guides/code/getting_started/db/migrate/20110901012504_create_posts.rb +11 -0
  178. data/guides/code/getting_started/db/migrate/20110901012815_create_comments.rb +12 -0
  179. data/guides/code/getting_started/db/migrate/20110901013701_create_tags.rb +11 -0
  180. data/guides/code/getting_started/db/schema.rb +43 -0
  181. data/guides/code/getting_started/db/seeds.rb +7 -0
  182. data/guides/code/getting_started/doc/README_FOR_APP +2 -0
  183. data/guides/code/getting_started/public/404.html +26 -0
  184. data/guides/code/getting_started/public/422.html +26 -0
  185. data/guides/code/getting_started/public/500.html +25 -0
  186. data/guides/code/getting_started/public/favicon.ico +0 -0
  187. data/guides/code/getting_started/public/robots.txt +5 -0
  188. data/guides/code/getting_started/script/rails +6 -0
  189. data/guides/code/getting_started/test/fixtures/comments.yml +11 -0
  190. data/guides/code/getting_started/test/fixtures/posts.yml +11 -0
  191. data/guides/code/getting_started/test/fixtures/tags.yml +9 -0
  192. data/guides/code/getting_started/test/functional/comments_controller_test.rb +7 -0
  193. data/guides/code/getting_started/test/functional/home_controller_test.rb +9 -0
  194. data/guides/code/getting_started/test/functional/posts_controller_test.rb +49 -0
  195. data/guides/code/getting_started/test/performance/browsing_test.rb +12 -0
  196. data/guides/code/getting_started/test/test_helper.rb +13 -0
  197. data/guides/code/getting_started/test/unit/comment_test.rb +7 -0
  198. data/guides/code/getting_started/test/unit/helpers/comments_helper_test.rb +4 -0
  199. data/guides/code/getting_started/test/unit/helpers/home_helper_test.rb +4 -0
  200. data/guides/code/getting_started/test/unit/helpers/posts_helper_test.rb +4 -0
  201. data/guides/code/getting_started/test/unit/post_test.rb +7 -0
  202. data/guides/code/getting_started/test/unit/tag_test.rb +7 -0
  203. data/guides/rails_guides/generator.rb +310 -0
  204. data/guides/rails_guides/helpers.rb +45 -0
  205. data/guides/rails_guides/indexer.rb +69 -0
  206. data/guides/rails_guides/levenshtein.rb +31 -0
  207. data/guides/rails_guides/textile_extensions.rb +63 -0
  208. data/guides/rails_guides.rb +50 -0
  209. data/guides/source/2_2_release_notes.textile +422 -0
  210. data/guides/source/2_3_release_notes.textile +610 -0
  211. data/guides/source/3_0_release_notes.textile +595 -0
  212. data/guides/source/3_1_release_notes.textile +553 -0
  213. data/guides/source/3_2_release_notes.textile +540 -0
  214. data/guides/source/_license.html.erb +2 -0
  215. data/guides/source/_welcome.html.erb +19 -0
  216. data/guides/source/action_controller_overview.textile +820 -0
  217. data/guides/source/action_mailer_basics.textile +516 -0
  218. data/guides/source/action_view_overview.textile +1497 -0
  219. data/guides/source/active_model_basics.textile +205 -0
  220. data/guides/source/active_record_basics.textile +218 -0
  221. data/guides/source/active_record_querying.textile +1433 -0
  222. data/guides/source/active_record_validations_callbacks.textile +1283 -0
  223. data/guides/source/active_resource_basics.textile +120 -0
  224. data/guides/source/active_support_core_extensions.textile +3713 -0
  225. data/guides/source/ajax_on_rails.textile +267 -0
  226. data/guides/source/api_documentation_guidelines.textile +185 -0
  227. data/guides/source/asset_pipeline.textile +707 -0
  228. data/guides/source/association_basics.textile +1959 -0
  229. data/guides/source/caching_with_rails.textile +437 -0
  230. data/guides/source/command_line.textile +574 -0
  231. data/guides/source/configuring.textile +641 -0
  232. data/guides/source/contributing_to_ruby_on_rails.textile +448 -0
  233. data/guides/source/credits.html.erb +72 -0
  234. data/guides/source/debugging_rails_applications.textile +714 -0
  235. data/guides/source/documents.yaml +157 -0
  236. data/guides/source/engines.textile +618 -0
  237. data/guides/source/form_helpers.textile +798 -0
  238. data/guides/source/generators.textile +621 -0
  239. data/guides/source/getting_started.textile +1929 -0
  240. data/guides/source/i18n.textile +931 -0
  241. data/guides/source/index.html.erb +30 -0
  242. data/guides/source/initialization.textile +1116 -0
  243. data/guides/source/kindle/KINDLE.md +26 -0
  244. data/guides/source/kindle/copyright.html.erb +1 -0
  245. data/guides/source/kindle/layout.html.erb +27 -0
  246. data/guides/source/kindle/rails_guides.opf.erb +52 -0
  247. data/guides/source/kindle/toc.html.erb +24 -0
  248. data/guides/source/kindle/toc.ncx.erb +64 -0
  249. data/guides/source/kindle/welcome.html.erb +5 -0
  250. data/guides/source/layout.html.erb +124 -0
  251. data/guides/source/layouts_and_rendering.textile +1237 -0
  252. data/guides/source/migrations.textile +900 -0
  253. data/guides/source/nested_model_forms.textile +222 -0
  254. data/guides/source/performance_testing.textile +597 -0
  255. data/guides/source/plugins.textile +464 -0
  256. data/guides/source/rails_application_templates.textile +240 -0
  257. data/guides/source/rails_on_rack.textile +236 -0
  258. data/guides/source/routing.textile +885 -0
  259. data/guides/source/ruby_on_rails_guides_guidelines.textile +79 -0
  260. data/guides/source/security.textile +1004 -0
  261. data/guides/source/testing.textile +947 -0
  262. data/guides/w3c_validator.rb +91 -0
  263. data/lib/rails/all.rb +15 -0
  264. data/lib/rails/application/bootstrap.rb +73 -0
  265. data/lib/rails/application/configuration.rb +151 -0
  266. data/lib/rails/application/finisher.rb +98 -0
  267. data/lib/rails/application/railties.rb +13 -0
  268. data/lib/rails/application/route_inspector.rb +84 -0
  269. data/lib/rails/application/routes_reloader.rb +56 -0
  270. data/lib/rails/application.rb +320 -0
  271. data/lib/rails/backtrace_cleaner.rb +42 -0
  272. data/lib/rails/cli.rb +16 -0
  273. data/lib/rails/code_statistics.rb +118 -0
  274. data/lib/rails/commands/application.rb +38 -0
  275. data/lib/rails/commands/benchmarker.rb +34 -0
  276. data/lib/rails/commands/console.rb +55 -0
  277. data/lib/rails/commands/dbconsole.rb +123 -0
  278. data/lib/rails/commands/destroy.rb +10 -0
  279. data/lib/rails/commands/generate.rb +12 -0
  280. data/lib/rails/commands/plugin.rb +544 -0
  281. data/lib/rails/commands/plugin_new.rb +11 -0
  282. data/lib/rails/commands/profiler.rb +32 -0
  283. data/lib/rails/commands/runner.rb +54 -0
  284. data/lib/rails/commands/server.rb +100 -0
  285. data/lib/rails/commands/update.rb +9 -0
  286. data/lib/rails/commands.rb +104 -0
  287. data/lib/rails/configuration.rb +89 -0
  288. data/lib/rails/console/app.rb +36 -0
  289. data/lib/rails/console/helpers.rb +11 -0
  290. data/lib/rails/engine/commands.rb +43 -0
  291. data/lib/rails/engine/configuration.rb +84 -0
  292. data/lib/rails/engine/railties.rb +33 -0
  293. data/lib/rails/engine.rb +657 -0
  294. data/lib/rails/generators/actions.rb +325 -0
  295. data/lib/rails/generators/active_model.rb +78 -0
  296. data/lib/rails/generators/app_base.rb +281 -0
  297. data/lib/rails/generators/base.rb +390 -0
  298. data/lib/rails/generators/css/assets/assets_generator.rb +13 -0
  299. data/lib/rails/generators/css/assets/templates/stylesheet.css +4 -0
  300. data/lib/rails/generators/css/scaffold/scaffold_generator.rb +16 -0
  301. data/lib/rails/generators/erb/controller/controller_generator.rb +20 -0
  302. data/lib/rails/generators/erb/controller/templates/view.html.erb +2 -0
  303. data/lib/rails/generators/erb/mailer/mailer_generator.rb +13 -0
  304. data/lib/rails/generators/erb/mailer/templates/view.text.erb +3 -0
  305. data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +29 -0
  306. data/lib/rails/generators/erb/scaffold/templates/_form.html.erb +23 -0
  307. data/lib/rails/generators/erb/scaffold/templates/edit.html.erb +6 -0
  308. data/lib/rails/generators/erb/scaffold/templates/index.html.erb +27 -0
  309. data/lib/rails/generators/erb/scaffold/templates/new.html.erb +5 -0
  310. data/lib/rails/generators/erb/scaffold/templates/show.html.erb +12 -0
  311. data/lib/rails/generators/erb.rb +21 -0
  312. data/lib/rails/generators/generated_attribute.rb +107 -0
  313. data/lib/rails/generators/js/assets/assets_generator.rb +13 -0
  314. data/lib/rails/generators/js/assets/templates/javascript.js +2 -0
  315. data/lib/rails/generators/migration.rb +68 -0
  316. data/lib/rails/generators/named_base.rb +202 -0
  317. data/lib/rails/generators/rails/app/USAGE +15 -0
  318. data/lib/rails/generators/rails/app/app_generator.rb +303 -0
  319. data/lib/rails/generators/rails/app/templates/Gemfile +26 -0
  320. data/lib/rails/generators/rails/app/templates/README +261 -0
  321. data/lib/rails/generators/rails/app/templates/Rakefile +7 -0
  322. data/lib/rails/generators/rails/app/templates/app/assets/images/rails.png +0 -0
  323. data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +17 -0
  324. data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css +13 -0
  325. data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb +3 -0
  326. data/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb +2 -0
  327. data/lib/rails/generators/rails/app/templates/app/mailers/.empty_directory +0 -0
  328. data/lib/rails/generators/rails/app/templates/app/models/.empty_directory +0 -0
  329. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +14 -0
  330. data/lib/rails/generators/rails/app/templates/config/application.rb +74 -0
  331. data/lib/rails/generators/rails/app/templates/config/boot.rb +6 -0
  332. data/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml +31 -0
  333. data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml +86 -0
  334. data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml +62 -0
  335. data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml +33 -0
  336. data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml +43 -0
  337. data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml +20 -0
  338. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml +54 -0
  339. data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml +39 -0
  340. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml +55 -0
  341. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml +25 -0
  342. data/lib/rails/generators/rails/app/templates/config/environment.rb +5 -0
  343. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +41 -0
  344. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +73 -0
  345. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +39 -0
  346. data/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb +7 -0
  347. data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb +15 -0
  348. data/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb +5 -0
  349. data/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt +7 -0
  350. data/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt +8 -0
  351. data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +16 -0
  352. data/lib/rails/generators/rails/app/templates/config/locales/en.yml +5 -0
  353. data/lib/rails/generators/rails/app/templates/config/routes.rb +58 -0
  354. data/lib/rails/generators/rails/app/templates/config.ru +4 -0
  355. data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +7 -0
  356. data/lib/rails/generators/rails/app/templates/doc/README_FOR_APP +2 -0
  357. data/lib/rails/generators/rails/app/templates/gitignore +15 -0
  358. data/lib/rails/generators/rails/app/templates/public/404.html +26 -0
  359. data/lib/rails/generators/rails/app/templates/public/422.html +26 -0
  360. data/lib/rails/generators/rails/app/templates/public/500.html +25 -0
  361. data/lib/rails/generators/rails/app/templates/public/favicon.ico +0 -0
  362. data/lib/rails/generators/rails/app/templates/public/index.html +241 -0
  363. data/lib/rails/generators/rails/app/templates/public/robots.txt +5 -0
  364. data/lib/rails/generators/rails/app/templates/public/stylesheets/.empty_directory +0 -0
  365. data/lib/rails/generators/rails/app/templates/script/rails +5 -0
  366. data/lib/rails/generators/rails/app/templates/test/fixtures/.empty_directory +0 -0
  367. data/lib/rails/generators/rails/app/templates/test/functional/.empty_directory +0 -0
  368. data/lib/rails/generators/rails/app/templates/test/integration/.empty_directory +0 -0
  369. data/lib/rails/generators/rails/app/templates/test/performance/browsing_test.rb +12 -0
  370. data/lib/rails/generators/rails/app/templates/test/test_helper.rb +15 -0
  371. data/lib/rails/generators/rails/app/templates/test/unit/.empty_directory +0 -0
  372. data/lib/rails/generators/rails/assets/USAGE +20 -0
  373. data/lib/rails/generators/rails/assets/assets_generator.rb +25 -0
  374. data/lib/rails/generators/rails/assets/templates/javascript.js +2 -0
  375. data/lib/rails/generators/rails/assets/templates/stylesheet.css +4 -0
  376. data/lib/rails/generators/rails/controller/USAGE +18 -0
  377. data/lib/rails/generators/rails/controller/controller_generator.rb +20 -0
  378. data/lib/rails/generators/rails/controller/templates/controller.rb +13 -0
  379. data/lib/rails/generators/rails/generator/USAGE +12 -0
  380. data/lib/rails/generators/rails/generator/generator_generator.rb +25 -0
  381. data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +3 -0
  382. data/lib/rails/generators/rails/generator/templates/USAGE.tt +8 -0
  383. data/lib/rails/generators/rails/generator/templates/templates/.empty_directory +0 -0
  384. data/lib/rails/generators/rails/helper/USAGE +17 -0
  385. data/lib/rails/generators/rails/helper/helper_generator.rb +13 -0
  386. data/lib/rails/generators/rails/helper/templates/helper.rb +4 -0
  387. data/lib/rails/generators/rails/integration_test/USAGE +10 -0
  388. data/lib/rails/generators/rails/integration_test/integration_test_generator.rb +7 -0
  389. data/lib/rails/generators/rails/migration/USAGE +29 -0
  390. data/lib/rails/generators/rails/migration/migration_generator.rb +8 -0
  391. data/lib/rails/generators/rails/model/USAGE +45 -0
  392. data/lib/rails/generators/rails/model/model_generator.rb +8 -0
  393. data/lib/rails/generators/rails/observer/USAGE +12 -0
  394. data/lib/rails/generators/rails/observer/observer_generator.rb +7 -0
  395. data/lib/rails/generators/rails/performance_test/USAGE +10 -0
  396. data/lib/rails/generators/rails/performance_test/performance_test_generator.rb +7 -0
  397. data/lib/rails/generators/rails/plugin_new/USAGE +10 -0
  398. data/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb +318 -0
  399. data/lib/rails/generators/rails/plugin_new/templates/%name%.gemspec +29 -0
  400. data/lib/rails/generators/rails/plugin_new/templates/Gemfile +23 -0
  401. data/lib/rails/generators/rails/plugin_new/templates/MIT-LICENSE +20 -0
  402. data/lib/rails/generators/rails/plugin_new/templates/README.rdoc +3 -0
  403. data/lib/rails/generators/rails/plugin_new/templates/Rakefile +31 -0
  404. data/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt +4 -0
  405. data/lib/rails/generators/rails/plugin_new/templates/app/helpers/%name%/application_helper.rb.tt +4 -0
  406. data/lib/rails/generators/rails/plugin_new/templates/app/mailers/.empty_directory +0 -0
  407. data/lib/rails/generators/rails/plugin_new/templates/app/models/.empty_directory +0 -0
  408. data/lib/rails/generators/rails/plugin_new/templates/app/views/layouts/%name%/application.html.erb.tt +14 -0
  409. data/lib/rails/generators/rails/plugin_new/templates/config/routes.rb +6 -0
  410. data/lib/rails/generators/rails/plugin_new/templates/gitignore +7 -0
  411. data/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb +7 -0
  412. data/lib/rails/generators/rails/plugin_new/templates/lib/%name%/version.rb +3 -0
  413. data/lib/rails/generators/rails/plugin_new/templates/lib/%name%.rb +6 -0
  414. data/lib/rails/generators/rails/plugin_new/templates/lib/tasks/%name%_tasks.rake +4 -0
  415. data/lib/rails/generators/rails/plugin_new/templates/rails/application.rb +18 -0
  416. data/lib/rails/generators/rails/plugin_new/templates/rails/boot.rb +10 -0
  417. data/lib/rails/generators/rails/plugin_new/templates/rails/routes.rb +4 -0
  418. data/lib/rails/generators/rails/plugin_new/templates/script/rails.tt +7 -0
  419. data/lib/rails/generators/rails/plugin_new/templates/test/%name%_test.rb +7 -0
  420. data/lib/rails/generators/rails/plugin_new/templates/test/integration/navigation_test.rb +12 -0
  421. data/lib/rails/generators/rails/plugin_new/templates/test/test_helper.rb +15 -0
  422. data/lib/rails/generators/rails/resource/USAGE +23 -0
  423. data/lib/rails/generators/rails/resource/resource_generator.rb +20 -0
  424. data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +50 -0
  425. data/lib/rails/generators/rails/scaffold/USAGE +35 -0
  426. data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +23 -0
  427. data/lib/rails/generators/rails/scaffold/templates/scaffold.css +56 -0
  428. data/lib/rails/generators/rails/scaffold_controller/USAGE +19 -0
  429. data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +25 -0
  430. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +89 -0
  431. data/lib/rails/generators/rails/session_migration/USAGE +8 -0
  432. data/lib/rails/generators/rails/session_migration/session_migration_generator.rb +8 -0
  433. data/lib/rails/generators/rails/task/USAGE +9 -0
  434. data/lib/rails/generators/rails/task/task_generator.rb +12 -0
  435. data/lib/rails/generators/rails/task/templates/task.rb +8 -0
  436. data/lib/rails/generators/resource_helpers.rb +80 -0
  437. data/lib/rails/generators/test_case.rb +247 -0
  438. data/lib/rails/generators/test_unit/controller/controller_generator.rb +15 -0
  439. data/lib/rails/generators/test_unit/controller/templates/functional_test.rb +19 -0
  440. data/lib/rails/generators/test_unit/helper/helper_generator.rb +13 -0
  441. data/lib/rails/generators/test_unit/helper/templates/helper_test.rb +6 -0
  442. data/lib/rails/generators/test_unit/integration/integration_generator.rb +13 -0
  443. data/lib/rails/generators/test_unit/integration/templates/integration_test.rb +7 -0
  444. data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +14 -0
  445. data/lib/rails/generators/test_unit/mailer/templates/functional_test.rb +21 -0
  446. data/lib/rails/generators/test_unit/model/model_generator.rb +24 -0
  447. data/lib/rails/generators/test_unit/model/templates/fixtures.yml +23 -0
  448. data/lib/rails/generators/test_unit/model/templates/unit_test.rb +9 -0
  449. data/lib/rails/generators/test_unit/observer/observer_generator.rb +13 -0
  450. data/lib/rails/generators/test_unit/observer/templates/unit_test.rb +9 -0
  451. data/lib/rails/generators/test_unit/performance/performance_generator.rb +13 -0
  452. data/lib/rails/generators/test_unit/performance/templates/performance_test.rb +12 -0
  453. data/lib/rails/generators/test_unit/plugin/plugin_generator.rb +13 -0
  454. data/lib/rails/generators/test_unit/plugin/templates/%file_name%_test.rb.tt +7 -0
  455. data/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +3 -0
  456. data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +38 -0
  457. data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb +51 -0
  458. data/lib/rails/generators/test_unit.rb +8 -0
  459. data/lib/rails/generators.rb +339 -0
  460. data/lib/rails/info.rb +116 -0
  461. data/lib/rails/info_controller.rb +15 -0
  462. data/lib/rails/initializable.rb +89 -0
  463. data/lib/rails/paths.rb +211 -0
  464. data/lib/rails/performance_test_help.rb +3 -0
  465. data/lib/rails/plugin.rb +92 -0
  466. data/lib/rails/rack/debugger.rb +24 -0
  467. data/lib/rails/rack/log_tailer.rb +34 -0
  468. data/lib/rails/rack/logger.rb +60 -0
  469. data/lib/rails/rack.rb +7 -0
  470. data/lib/rails/railtie/configurable.rb +35 -0
  471. data/lib/rails/railtie/configuration.rb +90 -0
  472. data/lib/rails/railtie.rb +202 -0
  473. data/lib/rails/ruby_version_check.rb +23 -0
  474. data/lib/rails/rubyprof_ext.rb +35 -0
  475. data/lib/rails/script_rails_loader.rb +29 -0
  476. data/lib/rails/source_annotation_extractor.rb +104 -0
  477. data/lib/rails/tasks/annotations.rake +20 -0
  478. data/lib/rails/tasks/documentation.rake +155 -0
  479. data/lib/rails/tasks/engine.rake +72 -0
  480. data/lib/rails/tasks/framework.rake +76 -0
  481. data/lib/rails/tasks/log.rake +9 -0
  482. data/lib/rails/tasks/middleware.rake +7 -0
  483. data/lib/rails/tasks/misc.rake +67 -0
  484. data/lib/rails/tasks/routes.rake +9 -0
  485. data/lib/rails/tasks/statistics.rake +16 -0
  486. data/lib/rails/tasks/tmp.rake +37 -0
  487. data/lib/rails/tasks.rb +16 -0
  488. data/lib/rails/test_help.rb +56 -0
  489. data/lib/rails/test_unit/railtie.rb +15 -0
  490. data/lib/rails/test_unit/sub_test_task.rb +8 -0
  491. data/lib/rails/test_unit/testing.rake +146 -0
  492. data/lib/rails/version.rb +10 -0
  493. data/lib/rails.rb +126 -0
  494. metadata +609 -0
@@ -0,0 +1,91 @@
1
+ # ---------------------------------------------------------------------------
2
+ #
3
+ # This script validates the generated guides against the W3C Validator.
4
+ #
5
+ # Guides are taken from the output directory, from where all .html files are
6
+ # submitted to the validator.
7
+ #
8
+ # This script is prepared to be launched from the railties directory as a rake task:
9
+ #
10
+ # rake validate_guides
11
+ #
12
+ # If nothing is specified, all files will be validated, but you can check just
13
+ # some of them using this environment variable:
14
+ #
15
+ # ONLY
16
+ # Use ONLY if you want to validate only one or a set of guides. Prefixes are
17
+ # enough:
18
+ #
19
+ # # validates only association_basics.html
20
+ # ONLY=assoc rake validate_guides
21
+ #
22
+ # Separate many using commas:
23
+ #
24
+ # # validates only association_basics.html and migrations.html
25
+ # ONLY=assoc,migrations rake validate_guides
26
+ #
27
+ # ---------------------------------------------------------------------------
28
+
29
+ require 'rubygems'
30
+ require 'w3c_validators'
31
+ include W3CValidators
32
+
33
+ module RailsGuides
34
+ class Validator
35
+
36
+ def validate
37
+ validator = MarkupValidator.new
38
+ STDOUT.sync = true
39
+ errors_on_guides = {}
40
+
41
+ guides_to_validate.each do |f|
42
+ results = validator.validate_file(f)
43
+
44
+ if results.validity
45
+ print "."
46
+ else
47
+ print "E"
48
+ errors_on_guides[f] = results.errors
49
+ end
50
+ end
51
+
52
+ show_results(errors_on_guides)
53
+ end
54
+
55
+ private
56
+ def guides_to_validate
57
+ guides = Dir["./guides/output/*.html"]
58
+ guides.delete("./guides/output/layout.html")
59
+ ENV.key?('ONLY') ? select_only(guides) : guides
60
+ end
61
+
62
+ def select_only(guides)
63
+ prefixes = ENV['ONLY'].split(",").map(&:strip)
64
+ guides.select do |guide|
65
+ prefixes.any? {|p| guide.start_with?("./guides/output/#{p}")}
66
+ end
67
+ end
68
+
69
+ def show_results(error_list)
70
+ if error_list.size == 0
71
+ puts "\n\nAll checked guides validate OK!"
72
+ else
73
+ error_summary = error_detail = ""
74
+
75
+ error_list.each_pair do |name, errors|
76
+ error_summary += "\n #{name}"
77
+ error_detail += "\n\n #{name} has #{errors.size} validation error(s):\n"
78
+ errors.each do |error|
79
+ error_detail += "\n "+error.to_s.gsub("\n", "")
80
+ end
81
+ end
82
+
83
+ puts "\n\nThere are #{error_list.size} guides with validation errors:\n" + error_summary
84
+ puts "\nHere are the detailed errors for each guide:" + error_detail
85
+ end
86
+ end
87
+
88
+ end
89
+ end
90
+
91
+ RailsGuides::Validator.new.validate
data/lib/rails/all.rb ADDED
@@ -0,0 +1,15 @@
1
+ require "rails"
2
+
3
+ %w(
4
+ active_record
5
+ action_controller
6
+ action_mailer
7
+ active_resource
8
+ rails/test_unit
9
+ sprockets
10
+ ).each do |framework|
11
+ begin
12
+ require "#{framework}/railtie"
13
+ rescue LoadError
14
+ end
15
+ end
@@ -0,0 +1,73 @@
1
+ require "active_support/notifications"
2
+ require "active_support/dependencies"
3
+ require "active_support/descendants_tracker"
4
+
5
+ module Rails
6
+ class Application
7
+ module Bootstrap
8
+ include Initializable
9
+
10
+ initializer :load_environment_hook, :group => :all do end
11
+
12
+ initializer :load_active_support, :group => :all do
13
+ require "active_support/all" unless config.active_support.bare
14
+ end
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
21
+ end
22
+
23
+ # Initialize the logger early in the stack in case we need to log some deprecation.
24
+ initializer :initialize_logger, :group => :all do
25
+ Rails.logger ||= config.logger || begin
26
+ path = config.paths["log"].first
27
+ unless File.exist? File.dirname path
28
+ FileUtils.mkdir_p File.dirname path
29
+ end
30
+
31
+ f = File.open path, 'a'
32
+ f.binmode
33
+ f.sync = true # make sure every write flushes
34
+
35
+ logger = ActiveSupport::TaggedLogging.new(
36
+ ActiveSupport::BufferedLogger.new(f)
37
+ )
38
+ logger.level = ActiveSupport::BufferedLogger.const_get(config.log_level.to_s.upcase)
39
+ logger
40
+ rescue StandardError
41
+ logger = ActiveSupport::TaggedLogging.new(ActiveSupport::BufferedLogger.new(STDERR))
42
+ logger.level = ActiveSupport::BufferedLogger::WARN
43
+ logger.warn(
44
+ "Rails Error: Unable to access log file. Please ensure that #{path} exists and is chmod 0666. " +
45
+ "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
46
+ )
47
+ logger
48
+ end
49
+ end
50
+
51
+ # 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) }
55
+
56
+ if RAILS_CACHE.respond_to?(:middleware)
57
+ config.middleware.insert_before("Rack::Runtime", RAILS_CACHE.middleware)
58
+ end
59
+ end
60
+ end
61
+
62
+ # Sets the dependency loading mechanism.
63
+ # TODO: Remove files from the $" and always use require.
64
+ initializer :initialize_dependency_mechanism, :group => :all do
65
+ ActiveSupport::Dependencies.mechanism = config.cache_classes ? :require : :load
66
+ end
67
+
68
+ initializer :bootstrap_hook, :group => :all do |app|
69
+ ActiveSupport.run_load_hooks(:before_initialize, app)
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,151 @@
1
+ require 'active_support/core_ext/string/encoding'
2
+ require 'active_support/core_ext/kernel/reporting'
3
+ require 'active_support/file_update_checker'
4
+ require 'rails/engine/configuration'
5
+
6
+ module Rails
7
+ class Application
8
+ 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,
14
+ :serve_static_assets, :ssl_options, :static_cache_control, :session_options,
15
+ :time_zone, :reload_classes_only_on_change, :whiny_nils
16
+
17
+ attr_writer :log_level
18
+ attr_reader :encoding
19
+
20
+ def initialize(*)
21
+ super
22
+ self.encoding = "utf-8"
23
+ @allow_concurrency = false
24
+ @consider_all_requests_local = false
25
+ @filter_parameters = []
26
+ @helpers_paths = []
27
+ @dependency_loading = true
28
+ @serve_static_assets = true
29
+ @static_cache_control = nil
30
+ @force_ssl = false
31
+ @ssl_options = {}
32
+ @session_store = :cookie_store
33
+ @session_options = {}
34
+ @time_zone = "UTC"
35
+ @log_level = nil
36
+ @middleware = app_middleware
37
+ @generators = app_generators
38
+ @cache_store = [ :file_store, "#{root}/tmp/cache/" ]
39
+ @railties_order = [:all]
40
+ @relative_url_root = ENV["RAILS_RELATIVE_URL_ROOT"]
41
+ @reload_classes_only_on_change = true
42
+ @file_watcher = ActiveSupport::FileUpdateChecker
43
+ @exceptions_app = nil
44
+
45
+ @assets = ActiveSupport::OrderedOptions.new
46
+ @assets.enabled = false
47
+ @assets.paths = []
48
+ @assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) },
49
+ /(?:\/|\\|\A)application\.(css|js)$/ ]
50
+ @assets.prefix = "/assets"
51
+ @assets.version = ''
52
+ @assets.debug = false
53
+ @assets.compile = true
54
+ @assets.digest = false
55
+ @assets.manifest = nil
56
+ @assets.cache_store = [ :file_store, "#{root}/tmp/cache/assets/" ]
57
+ @assets.js_compressor = nil
58
+ @assets.css_compressor = nil
59
+ @assets.initialize_on_precompile = true
60
+ @assets.logger = nil
61
+ end
62
+
63
+ def compiled_asset_path
64
+ "/"
65
+ end
66
+
67
+ def encoding=(value)
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
80
+ end
81
+ end
82
+
83
+ def paths
84
+ @paths ||= begin
85
+ paths = super
86
+ paths.add "config/database", :with => "config/database.yml"
87
+ paths.add "config/environment", :with => "config/environment.rb"
88
+ paths.add "lib/templates"
89
+ paths.add "log", :with => "log/#{Rails.env}.log"
90
+ paths.add "public"
91
+ paths.add "public/javascripts"
92
+ paths.add "public/stylesheets"
93
+ paths.add "tmp"
94
+ paths
95
+ end
96
+ end
97
+
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
+ def threadsafe!
103
+ self.preload_frameworks = true
104
+ self.cache_classes = true
105
+ self.dependency_loading = false
106
+ self.allow_concurrency = true
107
+ self
108
+ end
109
+
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.
113
+ def database_configuration
114
+ require 'erb'
115
+ YAML::load(ERB.new(IO.read(paths["config/database"].first)).result)
116
+ end
117
+
118
+ def log_level
119
+ @log_level ||= Rails.env.production? ? :info : :debug
120
+ end
121
+
122
+ def colorize_logging
123
+ @colorize_logging
124
+ end
125
+
126
+ def colorize_logging=(val)
127
+ @colorize_logging = val
128
+ ActiveSupport::LogSubscriber.colorize_logging = val
129
+ self.generators.colorize_logging = val
130
+ end
131
+
132
+ def session_store(*args)
133
+ if args.empty?
134
+ case @session_store
135
+ when :disabled
136
+ nil
137
+ when :active_record_store
138
+ ActiveRecord::SessionStore
139
+ when Symbol
140
+ ActionDispatch::Session.const_get(@session_store.to_s.camelize)
141
+ else
142
+ @session_store
143
+ end
144
+ else
145
+ @session_store = args.shift
146
+ @session_options = args.shift || {}
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
@@ -0,0 +1,98 @@
1
+ module Rails
2
+ class Application
3
+ module Finisher
4
+ include Initializable
5
+
6
+ initializer :add_generator_templates do
7
+ config.generators.templates.unshift(*paths["lib/templates"].existent)
8
+ end
9
+
10
+ initializer :ensure_autoload_once_paths_as_subset do
11
+ extra = ActiveSupport::Dependencies.autoload_once_paths -
12
+ ActiveSupport::Dependencies.autoload_paths
13
+
14
+ unless extra.empty?
15
+ abort <<-end_error
16
+ autoload_once_paths must be a subset of the autoload_paths.
17
+ Extra items in autoload_once_paths: #{extra * ','}
18
+ end_error
19
+ end
20
+ end
21
+
22
+ initializer :add_builtin_route do |app|
23
+ if Rails.env.development?
24
+ app.routes.append do
25
+ match '/rails/info/properties' => "rails/info#properties"
26
+ end
27
+ end
28
+ end
29
+
30
+ initializer :build_middleware_stack do
31
+ build_middleware_stack
32
+ end
33
+
34
+ initializer :define_main_app_helper do |app|
35
+ app.routes.define_mounted_helper(:main_app)
36
+ end
37
+
38
+ initializer :add_to_prepare_blocks do
39
+ config.to_prepare_blocks.each do |block|
40
+ ActionDispatch::Reloader.to_prepare(&block)
41
+ end
42
+ end
43
+
44
+ # This needs to happen before eager load so it happens
45
+ # in exactly the same point regardless of config.cache_classes
46
+ initializer :run_prepare_callbacks do
47
+ ActionDispatch::Reloader.prepare!
48
+ end
49
+
50
+ initializer :eager_load! do
51
+ if config.cache_classes && !(defined?($rails_rake_task) && $rails_rake_task)
52
+ ActiveSupport.run_load_hooks(:before_eager_load, self)
53
+ eager_load!
54
+ end
55
+ end
56
+
57
+ # All initialization is done, including eager loading in production
58
+ initializer :finisher_hook do
59
+ ActiveSupport.run_load_hooks(:after_initialize, self)
60
+ end
61
+
62
+ # Set app reload just after the finisher hook to ensure
63
+ # routes added in the hook are still loaded.
64
+ initializer :set_routes_reloader_hook do
65
+ reloader = routes_reloader
66
+ reloader.execute_if_updated
67
+ self.reloaders << reloader
68
+ ActionDispatch::Reloader.to_prepare { reloader.execute_if_updated }
69
+ end
70
+
71
+ # Set app reload just after the finisher hook to ensure
72
+ # paths added in the hook are still loaded.
73
+ initializer :set_clear_dependencies_hook, :group => :all do
74
+ callback = lambda do
75
+ ActiveSupport::DescendantsTracker.clear
76
+ ActiveSupport::Dependencies.clear
77
+ end
78
+
79
+ if config.reload_classes_only_on_change
80
+ reloader = config.file_watcher.new(*watchable_args, &callback)
81
+ self.reloaders << reloader
82
+ # We need to set a to_prepare callback regardless of the reloader result, i.e.
83
+ # models should be reloaded if any of the reloaders (i18n, routes) were updated.
84
+ ActionDispatch::Reloader.to_prepare(:prepend => true){ reloader.execute }
85
+ else
86
+ ActionDispatch::Reloader.to_cleanup(&callback)
87
+ end
88
+ 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
+ end
97
+ end
98
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/engine/railties'
2
+
3
+ module Rails
4
+ class Application < Engine
5
+ class Railties < Rails::Engine::Railties
6
+ def all(&block)
7
+ @all ||= railties + engines + plugins
8
+ @all.each(&block) if block
9
+ @all
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,84 @@
1
+ module Rails
2
+ class Application
3
+ ##
4
+ # This class is just used for displaying route information when someone
5
+ # executes `rake routes`. People should not use this class.
6
+ class RouteInspector # :nodoc:
7
+ def initialize
8
+ @engines = ActiveSupport::OrderedHash.new
9
+ end
10
+
11
+ def format all_routes, filter = nil
12
+ if filter
13
+ all_routes = all_routes.select{ |route| route.defaults[:controller] == filter }
14
+ end
15
+
16
+ routes = collect_routes(all_routes)
17
+
18
+ formatted_routes(routes) +
19
+ formatted_routes_for_engines
20
+ end
21
+
22
+ def collect_routes(routes)
23
+ routes = routes.collect do |route|
24
+ route_reqs = route.requirements
25
+
26
+ rack_app = discover_rack_app(route.app)
27
+
28
+ controller = route_reqs[:controller] || ':controller'
29
+ action = route_reqs[:action] || ':action'
30
+
31
+ endpoint = rack_app ? rack_app.inspect : "#{controller}##{action}"
32
+ constraints = route_reqs.except(:controller, :action)
33
+
34
+ reqs = endpoint
35
+ reqs += " #{constraints.inspect}" unless constraints.empty?
36
+
37
+ verb = route.verb.source.gsub(/[$^]/, '')
38
+
39
+ collect_engine_routes(reqs, rack_app)
40
+
41
+ {:name => route.name.to_s, :verb => verb, :path => route.path.spec.to_s, :reqs => reqs }
42
+ end
43
+
44
+ # Skip the route if it's internal info route
45
+ routes.reject { |r| r[:path] =~ %r{/rails/info/properties|^#{Rails.application.config.assets.prefix}} }
46
+ end
47
+
48
+ def collect_engine_routes(name, rack_app)
49
+ return unless rack_app && rack_app.respond_to?(:routes)
50
+ return if @engines[name]
51
+
52
+ routes = rack_app.routes
53
+ if routes.is_a?(ActionDispatch::Routing::RouteSet)
54
+ @engines[name] = collect_routes(routes.routes)
55
+ end
56
+ end
57
+
58
+ def formatted_routes_for_engines
59
+ @engines.map do |name, routes|
60
+ ["\nRoutes for #{name}:"] + formatted_routes(routes)
61
+ end.flatten
62
+ end
63
+
64
+ def formatted_routes(routes)
65
+ name_width = routes.map{ |r| r[:name].length }.max
66
+ verb_width = routes.map{ |r| r[:verb].length }.max
67
+ path_width = routes.map{ |r| r[:path].length }.max
68
+
69
+ routes.map do |r|
70
+ "#{r[:name].rjust(name_width)} #{r[:verb].ljust(verb_width)} #{r[:path].ljust(path_width)} #{r[:reqs]}"
71
+ end
72
+ end
73
+
74
+ def discover_rack_app(app)
75
+ class_name = app.class.name.to_s
76
+ if class_name == "ActionDispatch::Routing::Mapper::Constraints"
77
+ discover_rack_app(app.app)
78
+ elsif class_name !~ /^ActionDispatch::Routing/
79
+ app
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,56 @@
1
+ require "active_support/core_ext/module/delegation"
2
+
3
+ module Rails
4
+ class Application
5
+ class RoutesReloader
6
+ attr_reader :route_sets, :paths
7
+ delegate :execute_if_updated, :execute, :updated?, :to => :updater
8
+
9
+ def initialize
10
+ @paths = []
11
+ @route_sets = []
12
+ end
13
+
14
+ def reload!
15
+ clear!
16
+ load_paths
17
+ finalize!
18
+ ensure
19
+ revert
20
+ end
21
+
22
+ private
23
+
24
+ def updater
25
+ @updater ||= begin
26
+ updater = ActiveSupport::FileUpdateChecker.new(paths) { reload! }
27
+ updater.execute
28
+ updater
29
+ end
30
+ end
31
+
32
+ def clear!
33
+ route_sets.each do |routes|
34
+ routes.disable_clear_and_finalize = true
35
+ routes.clear!
36
+ end
37
+ end
38
+
39
+ def load_paths
40
+ paths.each { |path| load(path) }
41
+ end
42
+
43
+ def finalize!
44
+ route_sets.each do |routes|
45
+ ActiveSupport.on_load(:action_controller) { routes.finalize! }
46
+ end
47
+ end
48
+
49
+ def revert
50
+ route_sets.each do |routes|
51
+ routes.disable_clear_and_finalize = false
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end