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,32 @@
1
+ require 'optparse'
2
+ require 'rails/test_help'
3
+ require 'rails/performance_test_help'
4
+ require 'active_support/testing/performance'
5
+
6
+ def options
7
+ options = {}
8
+ defaults = ActiveSupport::Testing::Performance::DEFAULTS
9
+
10
+ OptionParser.new do |opt|
11
+ opt.banner = "Usage: rails benchmarker 'Ruby.code' 'Ruby.more_code' ... [OPTS]"
12
+ opt.on('-r', '--runs N', Numeric, 'Number of runs.', "Default: #{defaults[:runs]}") { |r| options[:runs] = r }
13
+ opt.on('-o', '--output PATH', String, 'Directory to use when writing the results.', "Default: #{defaults[:output]}") { |o| options[:output] = o }
14
+ opt.on('-m', '--metrics a,b,c', Array, 'Metrics to use.', "Default: #{defaults[:metrics].join(",")}") { |m| options[:metrics] = m.map(&:to_sym) }
15
+ opt.on('-f', '--formats x,y,z', Array, 'Formats to output to.', "Default: #{defaults[:formats].join(",")}") { |m| options[:formats] = m.map(&:to_sym) }
16
+ opt.parse!(ARGV)
17
+ end
18
+
19
+ options
20
+ end
21
+
22
+ class ProfilerTest < ActionDispatch::PerformanceTest #:nodoc:
23
+ self.profile_options = options
24
+
25
+ ARGV.each do |expression|
26
+ eval <<-RUBY
27
+ def test_#{expression.parameterize('_')}
28
+ #{expression}
29
+ end
30
+ RUBY
31
+ end
32
+ end
@@ -0,0 +1,54 @@
1
+ require 'optparse'
2
+ require 'rbconfig'
3
+
4
+ options = { :environment => (ENV['RAILS_ENV'] || "development").dup }
5
+ code_or_file = nil
6
+
7
+ if ARGV.first.nil?
8
+ ARGV.push "-h"
9
+ end
10
+
11
+ ARGV.clone.options do |opts|
12
+ script_name = File.basename($0)
13
+ opts.banner = "Usage: runner [options] ('Some.ruby(code)' or a filename)"
14
+
15
+ opts.separator ""
16
+
17
+ opts.on("-e", "--environment=name", String,
18
+ "Specifies the environment for the runner to operate under (test/development/production).",
19
+ "Default: development") { |v| options[:environment] = v }
20
+
21
+ opts.separator ""
22
+
23
+ opts.on("-h", "--help",
24
+ "Show this help message.") { $stdout.puts opts; exit }
25
+
26
+ if RbConfig::CONFIG['host_os'] !~ /mswin|mingw/
27
+ opts.separator ""
28
+ opts.separator "You can also use runner as a shebang line for your scripts like this:"
29
+ opts.separator "-------------------------------------------------------------"
30
+ opts.separator "#!/usr/bin/env #{File.expand_path($0)} runner"
31
+ opts.separator ""
32
+ opts.separator "Product.all.each { |p| p.price *= 2 ; p.save! }"
33
+ opts.separator "-------------------------------------------------------------"
34
+ end
35
+
36
+ opts.order! { |o| code_or_file ||= o } rescue retry
37
+ end
38
+
39
+ ARGV.delete(code_or_file)
40
+
41
+ ENV["RAILS_ENV"] = options[:environment]
42
+
43
+ require APP_PATH
44
+ Rails.application.require_environment!
45
+
46
+ if code_or_file.nil?
47
+ $stderr.puts "Run '#{$0} -h' for help."
48
+ exit 1
49
+ elsif File.exist?(code_or_file)
50
+ $0 = code_or_file
51
+ eval(File.read(code_or_file), nil, code_or_file)
52
+ else
53
+ eval(code_or_file)
54
+ end
@@ -0,0 +1,100 @@
1
+ require 'fileutils'
2
+ require 'optparse'
3
+ require 'action_dispatch'
4
+
5
+ module Rails
6
+ class Server < ::Rack::Server
7
+ class Options
8
+ def parse!(args)
9
+ args, options = args.dup, {}
10
+
11
+ opt_parser = OptionParser.new do |opts|
12
+ opts.banner = "Usage: rails server [mongrel, thin, etc] [options]"
13
+ opts.on("-p", "--port=port", Integer,
14
+ "Runs Rails on the specified port.", "Default: 3000") { |v| options[:Port] = v }
15
+ opts.on("-b", "--binding=ip", String,
16
+ "Binds Rails to the specified ip.", "Default: 0.0.0.0") { |v| options[:Host] = v }
17
+ opts.on("-c", "--config=file", String,
18
+ "Use custom rackup configuration file") { |v| options[:config] = v }
19
+ opts.on("-d", "--daemon", "Make server run as a Daemon.") { options[:daemonize] = true }
20
+ opts.on("-u", "--debugger", "Enable ruby-debugging for the server.") { options[:debugger] = true }
21
+ opts.on("-e", "--environment=name", String,
22
+ "Specifies the environment to run this server under (test/development/production).",
23
+ "Default: development") { |v| options[:environment] = v }
24
+ opts.on("-P","--pid=pid",String,
25
+ "Specifies the PID file.",
26
+ "Default: tmp/pids/server.pid") { |v| options[:pid] = v }
27
+
28
+ opts.separator ""
29
+
30
+ opts.on("-h", "--help", "Show this help message.") { puts opts; exit }
31
+ end
32
+
33
+ opt_parser.parse! args
34
+
35
+ options[:server] = args.shift
36
+ options
37
+ end
38
+ end
39
+
40
+ def initialize(*)
41
+ super
42
+ set_environment
43
+ end
44
+
45
+ def app
46
+ @app ||= super.respond_to?(:to_app) ? super.to_app : super
47
+ end
48
+
49
+ def opt_parser
50
+ Options.new
51
+ end
52
+
53
+ def set_environment
54
+ ENV["RAILS_ENV"] ||= options[:environment]
55
+ end
56
+
57
+ def start
58
+ url = "#{options[:SSLEnable] ? 'https' : 'http'}://#{options[:Host]}:#{options[:Port]}"
59
+ puts "=> Booting #{ActiveSupport::Inflector.demodulize(server)}"
60
+ puts "=> Rails #{Rails.version} application starting in #{Rails.env} on #{url}"
61
+ puts "=> Call with -d to detach" unless options[:daemonize]
62
+ trap(:INT) { exit }
63
+ puts "=> Ctrl-C to shutdown server" unless options[:daemonize]
64
+
65
+ #Create required tmp directories if not found
66
+ %w(cache pids sessions sockets).each do |dir_to_make|
67
+ FileUtils.mkdir_p(Rails.root.join('tmp', dir_to_make))
68
+ end
69
+
70
+ super
71
+ ensure
72
+ # The '-h' option calls exit before @options is set.
73
+ # If we call 'options' with it unset, we get double help banners.
74
+ puts 'Exiting' unless @options && options[:daemonize]
75
+ end
76
+
77
+ def middleware
78
+ middlewares = []
79
+ middlewares << [Rails::Rack::LogTailer, log_path] unless options[:daemonize]
80
+ middlewares << [Rails::Rack::Debugger] if options[:debugger]
81
+ middlewares << [::Rack::ContentLength]
82
+ Hash.new(middlewares)
83
+ end
84
+
85
+ def log_path
86
+ "log/#{options[:environment]}.log"
87
+ end
88
+
89
+ def default_options
90
+ super.merge({
91
+ :Port => 3000,
92
+ :environment => (ENV['RAILS_ENV'] || "development").dup,
93
+ :daemonize => false,
94
+ :debugger => false,
95
+ :pid => File.expand_path("tmp/pids/server.pid"),
96
+ :config => File.expand_path("config.ru")
97
+ })
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'generators'))
2
+
3
+ if ARGV.size == 0
4
+ Rails::Generators.help
5
+ exit
6
+ end
7
+
8
+ name = ARGV.shift
9
+ Rails::Generators.invoke name, ARGV, :behavior => :skip
@@ -0,0 +1,104 @@
1
+ require 'active_support/core_ext/object/inclusion'
2
+
3
+ ARGV << '--help' if ARGV.empty?
4
+
5
+ aliases = {
6
+ "g" => "generate",
7
+ "d" => "destroy",
8
+ "c" => "console",
9
+ "s" => "server",
10
+ "db" => "dbconsole",
11
+ "r" => "runner"
12
+ }
13
+
14
+ command = ARGV.shift
15
+ command = aliases[command] || command
16
+
17
+ case command
18
+ when 'generate', 'destroy', 'plugin'
19
+ require 'rails/generators'
20
+
21
+ if command == 'plugin' && ARGV.first == 'new'
22
+ require "rails/commands/plugin_new"
23
+ else
24
+ require APP_PATH
25
+ Rails.application.require_environment!
26
+
27
+ Rails.application.load_generators
28
+
29
+ require "rails/commands/#{command}"
30
+ end
31
+
32
+ when 'benchmarker', 'profiler'
33
+ require APP_PATH
34
+ Rails.application.require_environment!
35
+ require "rails/commands/#{command}"
36
+
37
+ when 'console'
38
+ require 'rails/commands/console'
39
+ require APP_PATH
40
+ Rails.application.require_environment!
41
+ Rails::Console.start(Rails.application)
42
+
43
+ when 'server'
44
+ # Change to the application's path if there is no config.ru file in current dir.
45
+ # This allows us to run script/rails server from other directories, but still get
46
+ # the main config.ru and properly set the tmp directory.
47
+ Dir.chdir(File.expand_path('../../', APP_PATH)) unless File.exists?(File.expand_path("config.ru"))
48
+
49
+ require 'rails/commands/server'
50
+ Rails::Server.new.tap { |server|
51
+ # We need to require application after the server sets environment,
52
+ # otherwise the --environment option given to the server won't propagate.
53
+ require APP_PATH
54
+ Dir.chdir(Rails.application.root)
55
+ server.start
56
+ }
57
+
58
+ when 'dbconsole'
59
+ require 'rails/commands/dbconsole'
60
+ require APP_PATH
61
+ Rails::DBConsole.start(Rails.application)
62
+
63
+ when 'application', 'runner'
64
+ require "rails/commands/#{command}"
65
+
66
+ when 'new'
67
+ if ARGV.first.in?(['-h', '--help'])
68
+ require 'rails/commands/application'
69
+ else
70
+ puts "Can't initialize a new Rails application within the directory of another, please change to a non-Rails directory first.\n"
71
+ puts "Type 'rails' for help."
72
+ exit(1)
73
+ end
74
+
75
+ when '--version', '-v'
76
+ ARGV.unshift '--version'
77
+ require 'rails/commands/application'
78
+
79
+ else
80
+ puts "Error: Command not recognized" unless command.in?(['-h', '--help'])
81
+ puts <<-EOT
82
+ Usage: rails COMMAND [ARGS]
83
+
84
+ The most common rails commands are:
85
+ generate Generate new code (short-cut alias: "g")
86
+ console Start the Rails console (short-cut alias: "c")
87
+ server Start the Rails server (short-cut alias: "s")
88
+ dbconsole Start a console for the database specified in config/database.yml
89
+ (short-cut alias: "db")
90
+ new Create a new Rails application. "rails new my_app" creates a
91
+ new application called MyApp in "./my_app"
92
+
93
+ In addition to those, there are:
94
+ application Generate the Rails application code
95
+ destroy Undo code generated with "generate" (short-cut alias: "d")
96
+ benchmarker See how fast a piece of code runs
97
+ profiler Get profile information from a piece of code
98
+ plugin Install a plugin
99
+ runner Run a piece of code in the application environment (short-cut alias: "r")
100
+
101
+ All commands can be run with -h (or --help) for more information.
102
+ EOT
103
+ exit(1)
104
+ end
@@ -0,0 +1,89 @@
1
+ require 'active_support/deprecation'
2
+ require 'active_support/ordered_options'
3
+ require 'active_support/core_ext/hash/deep_dup'
4
+ require 'rails/paths'
5
+ require 'rails/rack'
6
+
7
+ module Rails
8
+ module Configuration
9
+ class MiddlewareStackProxy #:nodoc:
10
+ def initialize
11
+ @operations = []
12
+ end
13
+
14
+ def insert_before(*args, &block)
15
+ @operations << [:insert_before, args, block]
16
+ end
17
+
18
+ alias :insert :insert_before
19
+
20
+ def insert_after(*args, &block)
21
+ @operations << [:insert_after, args, block]
22
+ end
23
+
24
+ def swap(*args, &block)
25
+ @operations << [:swap, args, block]
26
+ end
27
+
28
+ def use(*args, &block)
29
+ @operations << [:use, args, block]
30
+ end
31
+
32
+ def delete(*args, &block)
33
+ @operations << [:delete, args, block]
34
+ end
35
+
36
+ def merge_into(other)
37
+ @operations.each do |operation, args, block|
38
+ other.send(operation, *args, &block)
39
+ end
40
+ other
41
+ end
42
+ end
43
+
44
+ class Generators #:nodoc:
45
+ attr_accessor :aliases, :options, :templates, :fallbacks, :colorize_logging
46
+ attr_reader :hidden_namespaces
47
+
48
+ def initialize
49
+ @aliases = Hash.new { |h,k| h[k] = {} }
50
+ @options = Hash.new { |h,k| h[k] = {} }
51
+ @fallbacks = {}
52
+ @templates = []
53
+ @colorize_logging = true
54
+ @hidden_namespaces = []
55
+ end
56
+
57
+ def initialize_copy(source)
58
+ @aliases = @aliases.deep_dup
59
+ @options = @options.deep_dup
60
+ @fallbacks = @fallbacks.deep_dup
61
+ @templates = @templates.dup
62
+ end
63
+
64
+ def hide_namespace(namespace)
65
+ @hidden_namespaces << namespace
66
+ end
67
+
68
+ def method_missing(method, *args)
69
+ method = method.to_s.sub(/=$/, '').to_sym
70
+
71
+ return @options[method] if args.empty?
72
+
73
+ if method == :rails || args.first.is_a?(Hash)
74
+ namespace, configuration = method, args.shift
75
+ else
76
+ namespace, configuration = args.shift, args.shift
77
+ namespace = namespace.to_sym if namespace.respond_to?(:to_sym)
78
+ @options[:rails][method] = namespace
79
+ end
80
+
81
+ if configuration
82
+ aliases = configuration.delete(:aliases)
83
+ @aliases[namespace].merge!(aliases) if aliases
84
+ @options[namespace].merge!(configuration)
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,36 @@
1
+ require 'active_support/all'
2
+ require 'active_support/test_case'
3
+ require 'action_controller'
4
+
5
+ # work around the at_exit hook in test/unit, which kills IRB
6
+ Test::Unit.run = true if Test::Unit.respond_to?(:run=)
7
+
8
+ module Rails
9
+ module ConsoleMethods
10
+ # reference the global "app" instance, created on demand. To recreate the
11
+ # instance, pass a non-false value as the parameter.
12
+ def app(create=false)
13
+ @app_integration_instance = nil if create
14
+ @app_integration_instance ||= new_session do |sess|
15
+ sess.host! "www.example.com"
16
+ end
17
+ end
18
+
19
+ # create a new session. If a block is given, the new session will be yielded
20
+ # to the block before being returned.
21
+ def new_session
22
+ app = Rails.application
23
+ session = ActionDispatch::Integration::Session.new(app)
24
+ yield session if block_given?
25
+ session
26
+ end
27
+
28
+ # reloads the environment
29
+ def reload!(print=true)
30
+ puts "Reloading..." if print
31
+ ActionDispatch::Reloader.cleanup!
32
+ ActionDispatch::Reloader.prepare!
33
+ true
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,11 @@
1
+ module Rails
2
+ module ConsoleMethods
3
+ def helper
4
+ @helper ||= ApplicationController.helpers
5
+ end
6
+
7
+ def controller
8
+ @controller ||= ApplicationController.new
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,43 @@
1
+ require 'active_support/core_ext/object/inclusion'
2
+
3
+ ARGV << '--help' if ARGV.empty?
4
+
5
+ aliases = {
6
+ "g" => "generate",
7
+ "d" => "destroy"
8
+ }
9
+
10
+ command = ARGV.shift
11
+ command = aliases[command] || command
12
+
13
+ require ENGINE_PATH
14
+ engine = ::Rails::Engine.find(ENGINE_ROOT)
15
+
16
+ case command
17
+ when 'generate', 'destroy'
18
+ require 'rails/generators'
19
+ Rails::Generators.namespace = engine.railtie_namespace
20
+ engine.load_generators
21
+ require "rails/commands/#{command}"
22
+
23
+ when '--version', '-v'
24
+ ARGV.unshift '--version'
25
+ require 'rails/commands/application'
26
+
27
+ else
28
+ puts "Error: Command not recognized" unless command.in?(['-h', '--help'])
29
+ puts <<-EOT
30
+ Usage: rails COMMAND [ARGS]
31
+
32
+ The common rails commands available for engines are:
33
+ generate Generate new code (short-cut alias: "g")
34
+ destroy Undo code generated with "generate" (short-cut alias: "d")
35
+
36
+ All commands can be run with -h for more information.
37
+
38
+ If you want to run any commands that need to be run in context
39
+ of the application, like `rails server` or `rails console`,
40
+ you should do it from application's directory (typically test/dummy).
41
+ EOT
42
+ exit(1)
43
+ end
@@ -0,0 +1,84 @@
1
+ require 'rails/railtie/configuration'
2
+
3
+ module Rails
4
+ class Engine
5
+ class Configuration < ::Rails::Railtie::Configuration
6
+ attr_reader :root
7
+ attr_writer :middleware, :eager_load_paths, :autoload_once_paths, :autoload_paths
8
+ attr_accessor :plugins
9
+
10
+ def initialize(root=nil)
11
+ super()
12
+ @root = root
13
+ @generators = app_generators.dup
14
+ end
15
+
16
+ # Returns the middleware stack for the engine.
17
+ def middleware
18
+ @middleware ||= Rails::Configuration::MiddlewareStackProxy.new
19
+ end
20
+
21
+ # Holds generators configuration:
22
+ #
23
+ # config.generators do |g|
24
+ # g.orm :datamapper, :migration => true
25
+ # g.template_engine :haml
26
+ # g.test_framework :rspec
27
+ # end
28
+ #
29
+ # If you want to disable color in console, do:
30
+ #
31
+ # config.generators.colorize_logging = false
32
+ #
33
+ def generators #:nodoc:
34
+ @generators ||= Rails::Configuration::Generators.new
35
+ yield(@generators) if block_given?
36
+ @generators
37
+ end
38
+
39
+ def paths
40
+ @paths ||= begin
41
+ paths = Rails::Paths::Root.new(@root)
42
+ paths.add "app", :eager_load => true, :glob => "*"
43
+ paths.add "app/assets", :glob => "*"
44
+ paths.add "app/controllers", :eager_load => true
45
+ paths.add "app/helpers", :eager_load => true
46
+ paths.add "app/models", :eager_load => true
47
+ paths.add "app/mailers", :eager_load => true
48
+ paths.add "app/views"
49
+ paths.add "lib", :load_path => true
50
+ paths.add "lib/assets", :glob => "*"
51
+ paths.add "lib/tasks", :glob => "**/*.rake"
52
+ paths.add "config"
53
+ paths.add "config/environments", :glob => "#{Rails.env}.rb"
54
+ paths.add "config/initializers", :glob => "**/*.rb"
55
+ paths.add "config/locales", :glob => "*.{rb,yml}"
56
+ paths.add "config/routes", :with => "config/routes.rb"
57
+ paths.add "db"
58
+ paths.add "db/migrate"
59
+ paths.add "db/seeds", :with => "db/seeds.rb"
60
+ paths.add "vendor", :load_path => true
61
+ paths.add "vendor/assets", :glob => "*"
62
+ paths.add "vendor/plugins"
63
+ paths
64
+ end
65
+ end
66
+
67
+ def root=(value)
68
+ @root = paths.path = Pathname.new(value).expand_path
69
+ end
70
+
71
+ def eager_load_paths
72
+ @eager_load_paths ||= paths.eager_load
73
+ end
74
+
75
+ def autoload_once_paths
76
+ @autoload_once_paths ||= paths.autoload_once
77
+ end
78
+
79
+ def autoload_paths
80
+ @autoload_paths ||= paths.autoload_paths
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,33 @@
1
+ module Rails
2
+ class Engine < Railtie
3
+ class Railties
4
+ # TODO Write tests for this behavior extracted from Application
5
+ def initialize(config)
6
+ @config = config
7
+ end
8
+
9
+ def all(&block)
10
+ @all ||= plugins
11
+ @all.each(&block) if block
12
+ @all
13
+ end
14
+
15
+ def plugins
16
+ @plugins ||= begin
17
+ plugin_names = (@config.plugins || [:all]).map { |p| p.to_sym }
18
+ Plugin.all(plugin_names, @config.paths["vendor/plugins"].existent)
19
+ end
20
+ end
21
+
22
+ def self.railties
23
+ @railties ||= ::Rails::Railtie.subclasses.map(&:instance)
24
+ end
25
+
26
+ def self.engines
27
+ @engines ||= ::Rails::Engine.subclasses.map(&:instance)
28
+ end
29
+
30
+ delegate :railties, :engines, :to => "self.class"
31
+ end
32
+ end
33
+ end