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.
- data/CHANGELOG.md +87 -0
- data/README.rdoc +35 -0
- data/bin/openskies +9 -0
- data/guides/assets/images/belongs_to.png +0 -0
- data/guides/assets/images/book_icon.gif +0 -0
- data/guides/assets/images/bullet.gif +0 -0
- data/guides/assets/images/challenge.png +0 -0
- data/guides/assets/images/chapters_icon.gif +0 -0
- data/guides/assets/images/check_bullet.gif +0 -0
- data/guides/assets/images/credits_pic_blank.gif +0 -0
- data/guides/assets/images/csrf.png +0 -0
- data/guides/assets/images/customized_error_messages.png +0 -0
- data/guides/assets/images/edge_badge.png +0 -0
- data/guides/assets/images/error_messages.png +0 -0
- data/guides/assets/images/feature_tile.gif +0 -0
- data/guides/assets/images/footer_tile.gif +0 -0
- data/guides/assets/images/fxn.png +0 -0
- data/guides/assets/images/grey_bullet.gif +0 -0
- data/guides/assets/images/habtm.png +0 -0
- data/guides/assets/images/has_many.png +0 -0
- data/guides/assets/images/has_many_through.png +0 -0
- data/guides/assets/images/has_one.png +0 -0
- data/guides/assets/images/has_one_through.png +0 -0
- data/guides/assets/images/header_backdrop.png +0 -0
- data/guides/assets/images/header_tile.gif +0 -0
- data/guides/assets/images/i18n/demo_html_safe.png +0 -0
- data/guides/assets/images/i18n/demo_localized_pirate.png +0 -0
- data/guides/assets/images/i18n/demo_translated_en.png +0 -0
- data/guides/assets/images/i18n/demo_translated_pirate.png +0 -0
- data/guides/assets/images/i18n/demo_translation_missing.png +0 -0
- data/guides/assets/images/i18n/demo_untranslated.png +0 -0
- data/guides/assets/images/icons/README +5 -0
- data/guides/assets/images/icons/callouts/1.png +0 -0
- data/guides/assets/images/icons/callouts/10.png +0 -0
- data/guides/assets/images/icons/callouts/11.png +0 -0
- data/guides/assets/images/icons/callouts/12.png +0 -0
- data/guides/assets/images/icons/callouts/13.png +0 -0
- data/guides/assets/images/icons/callouts/14.png +0 -0
- data/guides/assets/images/icons/callouts/15.png +0 -0
- data/guides/assets/images/icons/callouts/2.png +0 -0
- data/guides/assets/images/icons/callouts/3.png +0 -0
- data/guides/assets/images/icons/callouts/4.png +0 -0
- data/guides/assets/images/icons/callouts/5.png +0 -0
- data/guides/assets/images/icons/callouts/6.png +0 -0
- data/guides/assets/images/icons/callouts/7.png +0 -0
- data/guides/assets/images/icons/callouts/8.png +0 -0
- data/guides/assets/images/icons/callouts/9.png +0 -0
- data/guides/assets/images/icons/caution.png +0 -0
- data/guides/assets/images/icons/example.png +0 -0
- data/guides/assets/images/icons/home.png +0 -0
- data/guides/assets/images/icons/important.png +0 -0
- data/guides/assets/images/icons/next.png +0 -0
- data/guides/assets/images/icons/note.png +0 -0
- data/guides/assets/images/icons/prev.png +0 -0
- data/guides/assets/images/icons/tip.png +0 -0
- data/guides/assets/images/icons/up.png +0 -0
- data/guides/assets/images/icons/warning.png +0 -0
- data/guides/assets/images/jaimeiniesta.jpg +0 -0
- data/guides/assets/images/nav_arrow.gif +0 -0
- data/guides/assets/images/polymorphic.png +0 -0
- data/guides/assets/images/posts_index.png +0 -0
- data/guides/assets/images/radar.png +0 -0
- data/guides/assets/images/rails_guides_kindle_cover.jpg +0 -0
- data/guides/assets/images/rails_guides_logo.gif +0 -0
- data/guides/assets/images/rails_logo_remix.gif +0 -0
- data/guides/assets/images/rails_welcome.png +0 -0
- data/guides/assets/images/session_fixation.png +0 -0
- data/guides/assets/images/tab_grey.gif +0 -0
- data/guides/assets/images/tab_info.gif +0 -0
- data/guides/assets/images/tab_note.gif +0 -0
- data/guides/assets/images/tab_red.gif +0 -0
- data/guides/assets/images/tab_yellow.gif +0 -0
- data/guides/assets/images/tab_yellow.png +0 -0
- data/guides/assets/images/validation_error_messages.png +0 -0
- data/guides/assets/images/vijaydev.jpg +0 -0
- data/guides/assets/javascripts/guides.js +7 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +59 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +75 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +59 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +65 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +100 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +97 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +91 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +55 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +41 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +52 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +67 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +52 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +57 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +58 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +72 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +88 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +33 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +74 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +64 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +55 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +94 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +51 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +66 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +56 -0
- data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +69 -0
- data/guides/assets/javascripts/syntaxhighlighter/shCore.js +17 -0
- data/guides/assets/stylesheets/fixes.css +16 -0
- data/guides/assets/stylesheets/kindle.css +11 -0
- data/guides/assets/stylesheets/main.css +453 -0
- data/guides/assets/stylesheets/print.css +52 -0
- data/guides/assets/stylesheets/reset.css +43 -0
- data/guides/assets/stylesheets/style.css +13 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +226 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +328 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +331 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +339 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +328 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +324 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +117 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +120 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +128 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +117 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +113 -0
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +116 -0
- data/guides/code/getting_started/Gemfile +38 -0
- data/guides/code/getting_started/README.rdoc +261 -0
- data/guides/code/getting_started/Rakefile +7 -0
- data/guides/code/getting_started/app/assets/images/rails.png +0 -0
- data/guides/code/getting_started/app/assets/javascripts/application.js +15 -0
- data/guides/code/getting_started/app/assets/javascripts/comments.js.coffee +3 -0
- data/guides/code/getting_started/app/assets/javascripts/home.js.coffee +3 -0
- data/guides/code/getting_started/app/assets/javascripts/posts.js.coffee +3 -0
- data/guides/code/getting_started/app/assets/stylesheets/application.css +13 -0
- data/guides/code/getting_started/app/assets/stylesheets/comments.css.scss +3 -0
- data/guides/code/getting_started/app/assets/stylesheets/home.css.scss +3 -0
- data/guides/code/getting_started/app/assets/stylesheets/posts.css.scss +3 -0
- data/guides/code/getting_started/app/assets/stylesheets/scaffolds.css.scss +56 -0
- data/guides/code/getting_started/app/controllers/application_controller.rb +3 -0
- data/guides/code/getting_started/app/controllers/comments_controller.rb +16 -0
- data/guides/code/getting_started/app/controllers/home_controller.rb +5 -0
- data/guides/code/getting_started/app/controllers/posts_controller.rb +84 -0
- data/guides/code/getting_started/app/helpers/application_helper.rb +2 -0
- data/guides/code/getting_started/app/helpers/comments_helper.rb +2 -0
- data/guides/code/getting_started/app/helpers/home_helper.rb +2 -0
- data/guides/code/getting_started/app/helpers/posts_helper.rb +5 -0
- data/guides/code/getting_started/app/models/comment.rb +3 -0
- data/guides/code/getting_started/app/models/post.rb +11 -0
- data/guides/code/getting_started/app/models/tag.rb +3 -0
- data/guides/code/getting_started/app/views/comments/_comment.html.erb +15 -0
- data/guides/code/getting_started/app/views/comments/_form.html.erb +13 -0
- data/guides/code/getting_started/app/views/home/index.html.erb +2 -0
- data/guides/code/getting_started/app/views/layouts/application.html.erb +14 -0
- data/guides/code/getting_started/app/views/posts/_form.html.erb +32 -0
- data/guides/code/getting_started/app/views/posts/edit.html.erb +6 -0
- data/guides/code/getting_started/app/views/posts/index.html.erb +27 -0
- data/guides/code/getting_started/app/views/posts/new.html.erb +5 -0
- data/guides/code/getting_started/app/views/posts/show.html.erb +31 -0
- data/guides/code/getting_started/app/views/tags/_form.html.erb +12 -0
- data/guides/code/getting_started/config/application.rb +59 -0
- data/guides/code/getting_started/config/boot.rb +6 -0
- data/guides/code/getting_started/config/database.yml +25 -0
- data/guides/code/getting_started/config/environment.rb +5 -0
- data/guides/code/getting_started/config/environments/development.rb +37 -0
- data/guides/code/getting_started/config/environments/production.rb +67 -0
- data/guides/code/getting_started/config/environments/test.rb +37 -0
- data/guides/code/getting_started/config/initializers/backtrace_silencers.rb +7 -0
- data/guides/code/getting_started/config/initializers/inflections.rb +15 -0
- data/guides/code/getting_started/config/initializers/mime_types.rb +5 -0
- data/guides/code/getting_started/config/initializers/secret_token.rb +7 -0
- data/guides/code/getting_started/config/initializers/session_store.rb +8 -0
- data/guides/code/getting_started/config/initializers/wrap_parameters.rb +14 -0
- data/guides/code/getting_started/config/locales/en.yml +5 -0
- data/guides/code/getting_started/config/routes.rb +64 -0
- data/guides/code/getting_started/config.ru +4 -0
- data/guides/code/getting_started/db/migrate/20110901012504_create_posts.rb +11 -0
- data/guides/code/getting_started/db/migrate/20110901012815_create_comments.rb +12 -0
- data/guides/code/getting_started/db/migrate/20110901013701_create_tags.rb +11 -0
- data/guides/code/getting_started/db/schema.rb +43 -0
- data/guides/code/getting_started/db/seeds.rb +7 -0
- data/guides/code/getting_started/doc/README_FOR_APP +2 -0
- data/guides/code/getting_started/public/404.html +26 -0
- data/guides/code/getting_started/public/422.html +26 -0
- data/guides/code/getting_started/public/500.html +25 -0
- data/guides/code/getting_started/public/favicon.ico +0 -0
- data/guides/code/getting_started/public/robots.txt +5 -0
- data/guides/code/getting_started/script/rails +6 -0
- data/guides/code/getting_started/test/fixtures/comments.yml +11 -0
- data/guides/code/getting_started/test/fixtures/posts.yml +11 -0
- data/guides/code/getting_started/test/fixtures/tags.yml +9 -0
- data/guides/code/getting_started/test/functional/comments_controller_test.rb +7 -0
- data/guides/code/getting_started/test/functional/home_controller_test.rb +9 -0
- data/guides/code/getting_started/test/functional/posts_controller_test.rb +49 -0
- data/guides/code/getting_started/test/performance/browsing_test.rb +12 -0
- data/guides/code/getting_started/test/test_helper.rb +13 -0
- data/guides/code/getting_started/test/unit/comment_test.rb +7 -0
- data/guides/code/getting_started/test/unit/helpers/comments_helper_test.rb +4 -0
- data/guides/code/getting_started/test/unit/helpers/home_helper_test.rb +4 -0
- data/guides/code/getting_started/test/unit/helpers/posts_helper_test.rb +4 -0
- data/guides/code/getting_started/test/unit/post_test.rb +7 -0
- data/guides/code/getting_started/test/unit/tag_test.rb +7 -0
- data/guides/rails_guides/generator.rb +310 -0
- data/guides/rails_guides/helpers.rb +45 -0
- data/guides/rails_guides/indexer.rb +69 -0
- data/guides/rails_guides/levenshtein.rb +31 -0
- data/guides/rails_guides/textile_extensions.rb +63 -0
- data/guides/rails_guides.rb +50 -0
- data/guides/source/2_2_release_notes.textile +422 -0
- data/guides/source/2_3_release_notes.textile +610 -0
- data/guides/source/3_0_release_notes.textile +595 -0
- data/guides/source/3_1_release_notes.textile +553 -0
- data/guides/source/3_2_release_notes.textile +540 -0
- data/guides/source/_license.html.erb +2 -0
- data/guides/source/_welcome.html.erb +19 -0
- data/guides/source/action_controller_overview.textile +820 -0
- data/guides/source/action_mailer_basics.textile +516 -0
- data/guides/source/action_view_overview.textile +1497 -0
- data/guides/source/active_model_basics.textile +205 -0
- data/guides/source/active_record_basics.textile +218 -0
- data/guides/source/active_record_querying.textile +1433 -0
- data/guides/source/active_record_validations_callbacks.textile +1283 -0
- data/guides/source/active_resource_basics.textile +120 -0
- data/guides/source/active_support_core_extensions.textile +3713 -0
- data/guides/source/ajax_on_rails.textile +267 -0
- data/guides/source/api_documentation_guidelines.textile +185 -0
- data/guides/source/asset_pipeline.textile +707 -0
- data/guides/source/association_basics.textile +1959 -0
- data/guides/source/caching_with_rails.textile +437 -0
- data/guides/source/command_line.textile +574 -0
- data/guides/source/configuring.textile +641 -0
- data/guides/source/contributing_to_ruby_on_rails.textile +448 -0
- data/guides/source/credits.html.erb +72 -0
- data/guides/source/debugging_rails_applications.textile +714 -0
- data/guides/source/documents.yaml +157 -0
- data/guides/source/engines.textile +618 -0
- data/guides/source/form_helpers.textile +798 -0
- data/guides/source/generators.textile +621 -0
- data/guides/source/getting_started.textile +1929 -0
- data/guides/source/i18n.textile +931 -0
- data/guides/source/index.html.erb +30 -0
- data/guides/source/initialization.textile +1116 -0
- data/guides/source/kindle/KINDLE.md +26 -0
- data/guides/source/kindle/copyright.html.erb +1 -0
- data/guides/source/kindle/layout.html.erb +27 -0
- data/guides/source/kindle/rails_guides.opf.erb +52 -0
- data/guides/source/kindle/toc.html.erb +24 -0
- data/guides/source/kindle/toc.ncx.erb +64 -0
- data/guides/source/kindle/welcome.html.erb +5 -0
- data/guides/source/layout.html.erb +124 -0
- data/guides/source/layouts_and_rendering.textile +1237 -0
- data/guides/source/migrations.textile +900 -0
- data/guides/source/nested_model_forms.textile +222 -0
- data/guides/source/performance_testing.textile +597 -0
- data/guides/source/plugins.textile +464 -0
- data/guides/source/rails_application_templates.textile +240 -0
- data/guides/source/rails_on_rack.textile +236 -0
- data/guides/source/routing.textile +885 -0
- data/guides/source/ruby_on_rails_guides_guidelines.textile +79 -0
- data/guides/source/security.textile +1004 -0
- data/guides/source/testing.textile +947 -0
- data/guides/w3c_validator.rb +91 -0
- data/lib/rails/all.rb +15 -0
- data/lib/rails/application/bootstrap.rb +73 -0
- data/lib/rails/application/configuration.rb +151 -0
- data/lib/rails/application/finisher.rb +98 -0
- data/lib/rails/application/railties.rb +13 -0
- data/lib/rails/application/route_inspector.rb +84 -0
- data/lib/rails/application/routes_reloader.rb +56 -0
- data/lib/rails/application.rb +320 -0
- data/lib/rails/backtrace_cleaner.rb +42 -0
- data/lib/rails/cli.rb +16 -0
- data/lib/rails/code_statistics.rb +118 -0
- data/lib/rails/commands/application.rb +38 -0
- data/lib/rails/commands/benchmarker.rb +34 -0
- data/lib/rails/commands/console.rb +55 -0
- data/lib/rails/commands/dbconsole.rb +123 -0
- data/lib/rails/commands/destroy.rb +10 -0
- data/lib/rails/commands/generate.rb +12 -0
- data/lib/rails/commands/plugin.rb +544 -0
- data/lib/rails/commands/plugin_new.rb +11 -0
- data/lib/rails/commands/profiler.rb +32 -0
- data/lib/rails/commands/runner.rb +54 -0
- data/lib/rails/commands/server.rb +100 -0
- data/lib/rails/commands/update.rb +9 -0
- data/lib/rails/commands.rb +104 -0
- data/lib/rails/configuration.rb +89 -0
- data/lib/rails/console/app.rb +36 -0
- data/lib/rails/console/helpers.rb +11 -0
- data/lib/rails/engine/commands.rb +43 -0
- data/lib/rails/engine/configuration.rb +84 -0
- data/lib/rails/engine/railties.rb +33 -0
- data/lib/rails/engine.rb +657 -0
- data/lib/rails/generators/actions.rb +325 -0
- data/lib/rails/generators/active_model.rb +78 -0
- data/lib/rails/generators/app_base.rb +281 -0
- data/lib/rails/generators/base.rb +390 -0
- data/lib/rails/generators/css/assets/assets_generator.rb +13 -0
- data/lib/rails/generators/css/assets/templates/stylesheet.css +4 -0
- data/lib/rails/generators/css/scaffold/scaffold_generator.rb +16 -0
- data/lib/rails/generators/erb/controller/controller_generator.rb +20 -0
- data/lib/rails/generators/erb/controller/templates/view.html.erb +2 -0
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +13 -0
- data/lib/rails/generators/erb/mailer/templates/view.text.erb +3 -0
- data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +29 -0
- data/lib/rails/generators/erb/scaffold/templates/_form.html.erb +23 -0
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb +6 -0
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb +27 -0
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb +5 -0
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb +12 -0
- data/lib/rails/generators/erb.rb +21 -0
- data/lib/rails/generators/generated_attribute.rb +107 -0
- data/lib/rails/generators/js/assets/assets_generator.rb +13 -0
- data/lib/rails/generators/js/assets/templates/javascript.js +2 -0
- data/lib/rails/generators/migration.rb +68 -0
- data/lib/rails/generators/named_base.rb +202 -0
- data/lib/rails/generators/rails/app/USAGE +15 -0
- data/lib/rails/generators/rails/app/app_generator.rb +303 -0
- data/lib/rails/generators/rails/app/templates/Gemfile +26 -0
- data/lib/rails/generators/rails/app/templates/README +261 -0
- data/lib/rails/generators/rails/app/templates/Rakefile +7 -0
- data/lib/rails/generators/rails/app/templates/app/assets/images/rails.png +0 -0
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +17 -0
- data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css +13 -0
- data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb +3 -0
- data/lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb +2 -0
- data/lib/rails/generators/rails/app/templates/app/mailers/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/app/models/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +14 -0
- data/lib/rails/generators/rails/app/templates/config/application.rb +74 -0
- data/lib/rails/generators/rails/app/templates/config/boot.rb +6 -0
- data/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml +31 -0
- data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml +86 -0
- data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml +62 -0
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml +33 -0
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml +43 -0
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml +20 -0
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml +54 -0
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml +39 -0
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml +55 -0
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml +25 -0
- data/lib/rails/generators/rails/app/templates/config/environment.rb +5 -0
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +41 -0
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +73 -0
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +39 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/backtrace_silencers.rb +7 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb +15 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb +5 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt +7 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt +8 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +16 -0
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +5 -0
- data/lib/rails/generators/rails/app/templates/config/routes.rb +58 -0
- data/lib/rails/generators/rails/app/templates/config.ru +4 -0
- data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +7 -0
- data/lib/rails/generators/rails/app/templates/doc/README_FOR_APP +2 -0
- data/lib/rails/generators/rails/app/templates/gitignore +15 -0
- data/lib/rails/generators/rails/app/templates/public/404.html +26 -0
- data/lib/rails/generators/rails/app/templates/public/422.html +26 -0
- data/lib/rails/generators/rails/app/templates/public/500.html +25 -0
- data/lib/rails/generators/rails/app/templates/public/favicon.ico +0 -0
- data/lib/rails/generators/rails/app/templates/public/index.html +241 -0
- data/lib/rails/generators/rails/app/templates/public/robots.txt +5 -0
- data/lib/rails/generators/rails/app/templates/public/stylesheets/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/script/rails +5 -0
- data/lib/rails/generators/rails/app/templates/test/fixtures/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/test/functional/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/test/integration/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/test/performance/browsing_test.rb +12 -0
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb +15 -0
- data/lib/rails/generators/rails/app/templates/test/unit/.empty_directory +0 -0
- data/lib/rails/generators/rails/assets/USAGE +20 -0
- data/lib/rails/generators/rails/assets/assets_generator.rb +25 -0
- data/lib/rails/generators/rails/assets/templates/javascript.js +2 -0
- data/lib/rails/generators/rails/assets/templates/stylesheet.css +4 -0
- data/lib/rails/generators/rails/controller/USAGE +18 -0
- data/lib/rails/generators/rails/controller/controller_generator.rb +20 -0
- data/lib/rails/generators/rails/controller/templates/controller.rb +13 -0
- data/lib/rails/generators/rails/generator/USAGE +12 -0
- data/lib/rails/generators/rails/generator/generator_generator.rb +25 -0
- data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +3 -0
- data/lib/rails/generators/rails/generator/templates/USAGE.tt +8 -0
- data/lib/rails/generators/rails/generator/templates/templates/.empty_directory +0 -0
- data/lib/rails/generators/rails/helper/USAGE +17 -0
- data/lib/rails/generators/rails/helper/helper_generator.rb +13 -0
- data/lib/rails/generators/rails/helper/templates/helper.rb +4 -0
- data/lib/rails/generators/rails/integration_test/USAGE +10 -0
- data/lib/rails/generators/rails/integration_test/integration_test_generator.rb +7 -0
- data/lib/rails/generators/rails/migration/USAGE +29 -0
- data/lib/rails/generators/rails/migration/migration_generator.rb +8 -0
- data/lib/rails/generators/rails/model/USAGE +45 -0
- data/lib/rails/generators/rails/model/model_generator.rb +8 -0
- data/lib/rails/generators/rails/observer/USAGE +12 -0
- data/lib/rails/generators/rails/observer/observer_generator.rb +7 -0
- data/lib/rails/generators/rails/performance_test/USAGE +10 -0
- data/lib/rails/generators/rails/performance_test/performance_test_generator.rb +7 -0
- data/lib/rails/generators/rails/plugin_new/USAGE +10 -0
- data/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb +318 -0
- data/lib/rails/generators/rails/plugin_new/templates/%name%.gemspec +29 -0
- data/lib/rails/generators/rails/plugin_new/templates/Gemfile +23 -0
- data/lib/rails/generators/rails/plugin_new/templates/MIT-LICENSE +20 -0
- data/lib/rails/generators/rails/plugin_new/templates/README.rdoc +3 -0
- data/lib/rails/generators/rails/plugin_new/templates/Rakefile +31 -0
- data/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt +4 -0
- data/lib/rails/generators/rails/plugin_new/templates/app/helpers/%name%/application_helper.rb.tt +4 -0
- data/lib/rails/generators/rails/plugin_new/templates/app/mailers/.empty_directory +0 -0
- data/lib/rails/generators/rails/plugin_new/templates/app/models/.empty_directory +0 -0
- data/lib/rails/generators/rails/plugin_new/templates/app/views/layouts/%name%/application.html.erb.tt +14 -0
- data/lib/rails/generators/rails/plugin_new/templates/config/routes.rb +6 -0
- data/lib/rails/generators/rails/plugin_new/templates/gitignore +7 -0
- data/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb +7 -0
- data/lib/rails/generators/rails/plugin_new/templates/lib/%name%/version.rb +3 -0
- data/lib/rails/generators/rails/plugin_new/templates/lib/%name%.rb +6 -0
- data/lib/rails/generators/rails/plugin_new/templates/lib/tasks/%name%_tasks.rake +4 -0
- data/lib/rails/generators/rails/plugin_new/templates/rails/application.rb +18 -0
- data/lib/rails/generators/rails/plugin_new/templates/rails/boot.rb +10 -0
- data/lib/rails/generators/rails/plugin_new/templates/rails/routes.rb +4 -0
- data/lib/rails/generators/rails/plugin_new/templates/script/rails.tt +7 -0
- data/lib/rails/generators/rails/plugin_new/templates/test/%name%_test.rb +7 -0
- data/lib/rails/generators/rails/plugin_new/templates/test/integration/navigation_test.rb +12 -0
- data/lib/rails/generators/rails/plugin_new/templates/test/test_helper.rb +15 -0
- data/lib/rails/generators/rails/resource/USAGE +23 -0
- data/lib/rails/generators/rails/resource/resource_generator.rb +20 -0
- data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +50 -0
- data/lib/rails/generators/rails/scaffold/USAGE +35 -0
- data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +23 -0
- data/lib/rails/generators/rails/scaffold/templates/scaffold.css +56 -0
- data/lib/rails/generators/rails/scaffold_controller/USAGE +19 -0
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +25 -0
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +89 -0
- data/lib/rails/generators/rails/session_migration/USAGE +8 -0
- data/lib/rails/generators/rails/session_migration/session_migration_generator.rb +8 -0
- data/lib/rails/generators/rails/task/USAGE +9 -0
- data/lib/rails/generators/rails/task/task_generator.rb +12 -0
- data/lib/rails/generators/rails/task/templates/task.rb +8 -0
- data/lib/rails/generators/resource_helpers.rb +80 -0
- data/lib/rails/generators/test_case.rb +247 -0
- data/lib/rails/generators/test_unit/controller/controller_generator.rb +15 -0
- data/lib/rails/generators/test_unit/controller/templates/functional_test.rb +19 -0
- data/lib/rails/generators/test_unit/helper/helper_generator.rb +13 -0
- data/lib/rails/generators/test_unit/helper/templates/helper_test.rb +6 -0
- data/lib/rails/generators/test_unit/integration/integration_generator.rb +13 -0
- data/lib/rails/generators/test_unit/integration/templates/integration_test.rb +7 -0
- data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +14 -0
- data/lib/rails/generators/test_unit/mailer/templates/functional_test.rb +21 -0
- data/lib/rails/generators/test_unit/model/model_generator.rb +24 -0
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml +23 -0
- data/lib/rails/generators/test_unit/model/templates/unit_test.rb +9 -0
- data/lib/rails/generators/test_unit/observer/observer_generator.rb +13 -0
- data/lib/rails/generators/test_unit/observer/templates/unit_test.rb +9 -0
- data/lib/rails/generators/test_unit/performance/performance_generator.rb +13 -0
- data/lib/rails/generators/test_unit/performance/templates/performance_test.rb +12 -0
- data/lib/rails/generators/test_unit/plugin/plugin_generator.rb +13 -0
- data/lib/rails/generators/test_unit/plugin/templates/%file_name%_test.rb.tt +7 -0
- data/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +3 -0
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +38 -0
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb +51 -0
- data/lib/rails/generators/test_unit.rb +8 -0
- data/lib/rails/generators.rb +339 -0
- data/lib/rails/info.rb +116 -0
- data/lib/rails/info_controller.rb +15 -0
- data/lib/rails/initializable.rb +89 -0
- data/lib/rails/paths.rb +211 -0
- data/lib/rails/performance_test_help.rb +3 -0
- data/lib/rails/plugin.rb +92 -0
- data/lib/rails/rack/debugger.rb +24 -0
- data/lib/rails/rack/log_tailer.rb +34 -0
- data/lib/rails/rack/logger.rb +60 -0
- data/lib/rails/rack.rb +7 -0
- data/lib/rails/railtie/configurable.rb +35 -0
- data/lib/rails/railtie/configuration.rb +90 -0
- data/lib/rails/railtie.rb +202 -0
- data/lib/rails/ruby_version_check.rb +23 -0
- data/lib/rails/rubyprof_ext.rb +35 -0
- data/lib/rails/script_rails_loader.rb +29 -0
- data/lib/rails/source_annotation_extractor.rb +104 -0
- data/lib/rails/tasks/annotations.rake +20 -0
- data/lib/rails/tasks/documentation.rake +155 -0
- data/lib/rails/tasks/engine.rake +72 -0
- data/lib/rails/tasks/framework.rake +76 -0
- data/lib/rails/tasks/log.rake +9 -0
- data/lib/rails/tasks/middleware.rake +7 -0
- data/lib/rails/tasks/misc.rake +67 -0
- data/lib/rails/tasks/routes.rake +9 -0
- data/lib/rails/tasks/statistics.rake +16 -0
- data/lib/rails/tasks/tmp.rake +37 -0
- data/lib/rails/tasks.rb +16 -0
- data/lib/rails/test_help.rb +56 -0
- data/lib/rails/test_unit/railtie.rb +15 -0
- data/lib/rails/test_unit/sub_test_task.rb +8 -0
- data/lib/rails/test_unit/testing.rake +146 -0
- data/lib/rails/version.rb +10 -0
- data/lib/rails.rb +126 -0
- metadata +609 -0
data/lib/rails/paths.rb
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
require 'set'
|
|
2
|
+
|
|
3
|
+
module Rails
|
|
4
|
+
module Paths
|
|
5
|
+
# This object is an extended hash that behaves as root of the <tt>Rails::Paths</tt> system.
|
|
6
|
+
# It allows you to collect information about how you want to structure your application
|
|
7
|
+
# paths by a Hash like API. It requires you to give a physical path on initialization.
|
|
8
|
+
#
|
|
9
|
+
# root = Root.new "/rails"
|
|
10
|
+
# root.add "app/controllers", :eager_load => true
|
|
11
|
+
#
|
|
12
|
+
# The command above creates a new root object and add "app/controllers" as a path.
|
|
13
|
+
# This means we can get a +Rails::Paths::Path+ object back like below:
|
|
14
|
+
#
|
|
15
|
+
# path = root["app/controllers"]
|
|
16
|
+
# path.eager_load? # => true
|
|
17
|
+
# path.is_a?(Rails::Paths::Path) # => true
|
|
18
|
+
#
|
|
19
|
+
# The +Path+ object is simply an array and allows you to easily add extra paths:
|
|
20
|
+
#
|
|
21
|
+
# path.is_a?(Array) # => true
|
|
22
|
+
# path.inspect # => ["app/controllers"]
|
|
23
|
+
#
|
|
24
|
+
# path << "lib/controllers"
|
|
25
|
+
# path.inspect # => ["app/controllers", "lib/controllers"]
|
|
26
|
+
#
|
|
27
|
+
# Notice that when you add a path using +add+, the path object created already
|
|
28
|
+
# contains the path with the same path value given to +add+. In some situations,
|
|
29
|
+
# you may not want this behavior, so you can give :with as option.
|
|
30
|
+
#
|
|
31
|
+
# root.add "config/routes", :with => "config/routes.rb"
|
|
32
|
+
# root["config/routes"].inspect # => ["config/routes.rb"]
|
|
33
|
+
#
|
|
34
|
+
# The +add+ method accepts the following options as arguments:
|
|
35
|
+
# eager_load, autoload, autoload_once and glob.
|
|
36
|
+
#
|
|
37
|
+
# Finally, the +Path+ object also provides a few helpers:
|
|
38
|
+
#
|
|
39
|
+
# root = Root.new "/rails"
|
|
40
|
+
# root.add "app/controllers"
|
|
41
|
+
#
|
|
42
|
+
# root["app/controllers"].expanded # => ["/rails/app/controllers"]
|
|
43
|
+
# root["app/controllers"].existent # => ["/rails/app/controllers"]
|
|
44
|
+
#
|
|
45
|
+
# Check the <tt>Rails::Paths::Path</tt> documentation for more information.
|
|
46
|
+
class Root < ::Hash
|
|
47
|
+
attr_accessor :path
|
|
48
|
+
|
|
49
|
+
def initialize(path)
|
|
50
|
+
raise "Argument should be a String of the physical root path" if path.is_a?(Array)
|
|
51
|
+
@current = nil
|
|
52
|
+
@path = path
|
|
53
|
+
@root = self
|
|
54
|
+
super()
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def []=(path, value)
|
|
58
|
+
value = Path.new(self, path, value) unless value.is_a?(Path)
|
|
59
|
+
super(path, value)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def add(path, options={})
|
|
63
|
+
with = options[:with] || path
|
|
64
|
+
self[path] = Path.new(self, path, with, options)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def all_paths
|
|
68
|
+
values.tap { |v| v.uniq! }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def autoload_once
|
|
72
|
+
filter_by(:autoload_once?)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def eager_load
|
|
76
|
+
filter_by(:eager_load?)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def autoload_paths
|
|
80
|
+
filter_by(:autoload?)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def load_paths
|
|
84
|
+
filter_by(:load_path?)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
protected
|
|
88
|
+
|
|
89
|
+
def filter_by(constraint)
|
|
90
|
+
all = []
|
|
91
|
+
all_paths.each do |path|
|
|
92
|
+
if path.send(constraint)
|
|
93
|
+
paths = path.existent
|
|
94
|
+
paths -= path.children.map { |p| p.send(constraint) ? [] : p.existent }.flatten
|
|
95
|
+
all.concat(paths)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
all.uniq!
|
|
99
|
+
all
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
class Path < Array
|
|
104
|
+
attr_reader :path
|
|
105
|
+
attr_accessor :glob
|
|
106
|
+
|
|
107
|
+
def initialize(root, current, *paths)
|
|
108
|
+
options = paths.last.is_a?(::Hash) ? paths.pop : {}
|
|
109
|
+
super(paths.flatten)
|
|
110
|
+
|
|
111
|
+
@current = current
|
|
112
|
+
@root = root
|
|
113
|
+
@glob = options[:glob]
|
|
114
|
+
|
|
115
|
+
options[:autoload_once] ? autoload_once! : skip_autoload_once!
|
|
116
|
+
options[:eager_load] ? eager_load! : skip_eager_load!
|
|
117
|
+
options[:autoload] ? autoload! : skip_autoload!
|
|
118
|
+
options[:load_path] ? load_path! : skip_load_path!
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def children
|
|
122
|
+
keys = @root.keys.select { |k| k.include?(@current) }
|
|
123
|
+
keys.delete(@current)
|
|
124
|
+
@root.values_at(*keys.sort)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def first
|
|
128
|
+
expanded.first
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def last
|
|
132
|
+
expanded.last
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
%w(autoload_once eager_load autoload load_path).each do |m|
|
|
136
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
|
137
|
+
def #{m}! # def eager_load!
|
|
138
|
+
@#{m} = true # @eager_load = true
|
|
139
|
+
end # end
|
|
140
|
+
#
|
|
141
|
+
def skip_#{m}! # def skip_eager_load!
|
|
142
|
+
@#{m} = false # @eager_load = false
|
|
143
|
+
end # end
|
|
144
|
+
#
|
|
145
|
+
def #{m}? # def eager_load?
|
|
146
|
+
@#{m} # @eager_load
|
|
147
|
+
end # end
|
|
148
|
+
RUBY
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Expands all paths against the root and return all unique values.
|
|
152
|
+
def expanded
|
|
153
|
+
raise "You need to set a path root" unless @root.path
|
|
154
|
+
result = []
|
|
155
|
+
|
|
156
|
+
each do |p|
|
|
157
|
+
path = File.expand_path(p, @root.path)
|
|
158
|
+
|
|
159
|
+
if @glob
|
|
160
|
+
if File.directory? path
|
|
161
|
+
result.concat expand_dir(path, @glob)
|
|
162
|
+
else
|
|
163
|
+
# FIXME: I think we can remove this branch, but I'm not sure.
|
|
164
|
+
# Say the filesystem has this file:
|
|
165
|
+
#
|
|
166
|
+
# /tmp/foobar
|
|
167
|
+
#
|
|
168
|
+
# and someone adds this path:
|
|
169
|
+
#
|
|
170
|
+
# /tmp/foo
|
|
171
|
+
#
|
|
172
|
+
# with a glob of "*", then this function will return
|
|
173
|
+
#
|
|
174
|
+
# /tmp/foobar
|
|
175
|
+
#
|
|
176
|
+
# We need to figure out if that is desired behavior.
|
|
177
|
+
result.concat expand_file(path, @glob)
|
|
178
|
+
end
|
|
179
|
+
else
|
|
180
|
+
result << path
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
result.uniq!
|
|
185
|
+
result
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# Returns all expanded paths but only if they exist in the filesystem.
|
|
189
|
+
def existent
|
|
190
|
+
expanded.select { |f| File.exists?(f) }
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
def existent_directories
|
|
194
|
+
expanded.select { |d| File.directory?(d) }
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
alias to_a expanded
|
|
198
|
+
|
|
199
|
+
private
|
|
200
|
+
def expand_file(path, glob)
|
|
201
|
+
Dir[File.join(path, glob)].sort
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def expand_dir(path, glob)
|
|
205
|
+
Dir.chdir(path) do
|
|
206
|
+
Dir.glob(@glob).map { |file| File.join path, file }.sort
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
data/lib/rails/plugin.rb
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
require 'rails/engine'
|
|
2
|
+
require 'active_support/core_ext/array/conversions'
|
|
3
|
+
|
|
4
|
+
module Rails
|
|
5
|
+
# Rails::Plugin is nothing more than a Rails::Engine, but since it's loaded too late
|
|
6
|
+
# in the boot process, it does not have the same configuration powers as a bare
|
|
7
|
+
# Rails::Engine.
|
|
8
|
+
#
|
|
9
|
+
# Opposite to Rails::Railtie and Rails::Engine, you are not supposed to inherit from
|
|
10
|
+
# Rails::Plugin. Rails::Plugin is automatically configured to be an engine by simply
|
|
11
|
+
# placing inside vendor/plugins. Since this is done automatically, you actually cannot
|
|
12
|
+
# declare a Rails::Engine inside your Plugin, otherwise it would cause the same files
|
|
13
|
+
# to be loaded twice. This means that if you want to ship an Engine as gem it cannot
|
|
14
|
+
# be used as plugin and vice-versa.
|
|
15
|
+
#
|
|
16
|
+
# Besides this conceptual difference, the only difference between Rails::Engine and
|
|
17
|
+
# Rails::Plugin is that plugins automatically load the file "init.rb" at the plugin
|
|
18
|
+
# root during the boot process.
|
|
19
|
+
#
|
|
20
|
+
class Plugin < Engine
|
|
21
|
+
def self.global_plugins
|
|
22
|
+
@global_plugins ||= []
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.inherited(base)
|
|
26
|
+
raise "You cannot inherit from Rails::Plugin"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.all(list, paths)
|
|
30
|
+
plugins = []
|
|
31
|
+
paths.each do |path|
|
|
32
|
+
Dir["#{path}/*"].each do |plugin_path|
|
|
33
|
+
plugin = new(plugin_path)
|
|
34
|
+
next unless list.include?(plugin.name) || list.include?(:all)
|
|
35
|
+
if global_plugins.include?(plugin.name)
|
|
36
|
+
warn "WARNING: plugin #{plugin.name} from #{path} was not loaded. Plugin with the same name has been already loaded."
|
|
37
|
+
next
|
|
38
|
+
end
|
|
39
|
+
global_plugins << plugin.name
|
|
40
|
+
plugins << plugin
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
plugins.sort_by do |p|
|
|
45
|
+
[list.index(p.name) || list.index(:all), p.name.to_s]
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
attr_reader :name, :path
|
|
50
|
+
|
|
51
|
+
def railtie_name
|
|
52
|
+
name.to_s
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def initialize(root)
|
|
56
|
+
ActiveSupport::Deprecation.warn "You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released"
|
|
57
|
+
@name = File.basename(root).to_sym
|
|
58
|
+
config.root = root
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def config
|
|
62
|
+
@config ||= Engine::Configuration.new
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
initializer :handle_lib_autoload, :before => :set_load_path do |app|
|
|
66
|
+
autoload = if app.config.reload_plugins
|
|
67
|
+
config.autoload_paths
|
|
68
|
+
else
|
|
69
|
+
config.autoload_once_paths
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
autoload.concat paths["lib"].existent
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
initializer :load_init_rb, :before => :load_config_initializers do |app|
|
|
76
|
+
init_rb = File.expand_path("init.rb", root)
|
|
77
|
+
if File.file?(init_rb)
|
|
78
|
+
# This double assignment is to prevent an "unused variable" warning on Ruby 1.9.3.
|
|
79
|
+
config = config = app.config
|
|
80
|
+
# TODO: think about evaling initrb in context of Engine (currently it's
|
|
81
|
+
# always evaled in context of Rails::Application)
|
|
82
|
+
eval(File.read(init_rb), binding, init_rb)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
initializer :sanity_check_railties_collision do
|
|
87
|
+
if Engine.subclasses.map { |k| k.root.to_s }.include?(root.to_s)
|
|
88
|
+
raise "\"#{name}\" is a Railtie/Engine and cannot be installed as a plugin"
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Rails
|
|
2
|
+
module Rack
|
|
3
|
+
class Debugger
|
|
4
|
+
def initialize(app)
|
|
5
|
+
@app = app
|
|
6
|
+
|
|
7
|
+
ARGV.clear # clear ARGV so that rails server options aren't passed to IRB
|
|
8
|
+
|
|
9
|
+
require 'ruby-debug'
|
|
10
|
+
|
|
11
|
+
::Debugger.start
|
|
12
|
+
::Debugger.settings[:autoeval] = true if ::Debugger.respond_to?(:settings)
|
|
13
|
+
puts "=> Debugger enabled"
|
|
14
|
+
rescue LoadError
|
|
15
|
+
puts "You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'"
|
|
16
|
+
exit
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def call(env)
|
|
20
|
+
@app.call(env)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Rails
|
|
2
|
+
module Rack
|
|
3
|
+
class LogTailer
|
|
4
|
+
def initialize(app, log = nil)
|
|
5
|
+
@app = app
|
|
6
|
+
|
|
7
|
+
path = Pathname.new(log || "#{::File.expand_path(Rails.root)}/log/#{Rails.env}.log").cleanpath
|
|
8
|
+
|
|
9
|
+
@cursor = @file = nil
|
|
10
|
+
if ::File.exists?(path)
|
|
11
|
+
@cursor = ::File.size(path)
|
|
12
|
+
@file = ::File.open(path, 'r')
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call(env)
|
|
17
|
+
response = @app.call(env)
|
|
18
|
+
tail!
|
|
19
|
+
response
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def tail!
|
|
23
|
+
return unless @cursor
|
|
24
|
+
@file.seek @cursor
|
|
25
|
+
|
|
26
|
+
unless @file.eof?
|
|
27
|
+
contents = @file.read
|
|
28
|
+
@cursor = @file.tell
|
|
29
|
+
$stdout.print contents
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'active_support/core_ext/time/conversions'
|
|
2
|
+
require 'active_support/core_ext/object/blank'
|
|
3
|
+
|
|
4
|
+
module Rails
|
|
5
|
+
module Rack
|
|
6
|
+
# Sets log tags, logs the request, calls the app, and flushes the logs.
|
|
7
|
+
class Logger < ActiveSupport::LogSubscriber
|
|
8
|
+
def initialize(app, taggers = nil)
|
|
9
|
+
@app, @taggers = app, taggers || []
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def call(env)
|
|
13
|
+
request = ActionDispatch::Request.new(env)
|
|
14
|
+
|
|
15
|
+
if Rails.logger.respond_to?(:tagged)
|
|
16
|
+
Rails.logger.tagged(compute_tags(request)) { call_app(request, env) }
|
|
17
|
+
else
|
|
18
|
+
call_app(request, env)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
protected
|
|
23
|
+
|
|
24
|
+
def call_app(request, env)
|
|
25
|
+
# Put some space between requests in development logs.
|
|
26
|
+
if Rails.env.development?
|
|
27
|
+
Rails.logger.info ''
|
|
28
|
+
Rails.logger.info ''
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Rails.logger.info started_request_message(request)
|
|
32
|
+
@app.call(env)
|
|
33
|
+
ensure
|
|
34
|
+
ActiveSupport::LogSubscriber.flush_all!
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Started GET "/session/new" for 127.0.0.1 at 2012-09-26 14:51:42 -0700
|
|
38
|
+
def started_request_message(request)
|
|
39
|
+
'Started %s "%s" for %s at %s' % [
|
|
40
|
+
request.request_method,
|
|
41
|
+
request.filtered_path,
|
|
42
|
+
request.ip,
|
|
43
|
+
Time.now.to_default_s ]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def compute_tags(request)
|
|
47
|
+
@taggers.collect do |tag|
|
|
48
|
+
case tag
|
|
49
|
+
when Proc
|
|
50
|
+
tag.call(request)
|
|
51
|
+
when Symbol
|
|
52
|
+
request.send(tag)
|
|
53
|
+
else
|
|
54
|
+
tag
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
data/lib/rails/rack.rb
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'active_support/concern'
|
|
2
|
+
|
|
3
|
+
module Rails
|
|
4
|
+
class Railtie
|
|
5
|
+
module Configurable
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
module ClassMethods
|
|
9
|
+
delegate :config, :to => :instance
|
|
10
|
+
|
|
11
|
+
def inherited(base)
|
|
12
|
+
raise "You cannot inherit from a #{self.superclass.name} child"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def instance
|
|
16
|
+
@instance ||= new
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def respond_to?(*args)
|
|
20
|
+
super || instance.respond_to?(*args)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def configure(&block)
|
|
24
|
+
class_eval(&block)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
protected
|
|
28
|
+
|
|
29
|
+
def method_missing(*args, &block)
|
|
30
|
+
instance.send(*args, &block)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
require 'rails/configuration'
|
|
2
|
+
|
|
3
|
+
module Rails
|
|
4
|
+
class Railtie
|
|
5
|
+
class Configuration
|
|
6
|
+
def initialize
|
|
7
|
+
@@options ||= {}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Add files that should be watched for change.
|
|
11
|
+
def watchable_files
|
|
12
|
+
@@watchable_files ||= []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Add directories that should be watched for change.
|
|
16
|
+
# The key of the hashes should be directories and the values should
|
|
17
|
+
# be an array of extensions to match in each directory.
|
|
18
|
+
def watchable_dirs
|
|
19
|
+
@@watchable_dirs ||= {}
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# This allows you to modify the application's middlewares from Engines.
|
|
23
|
+
#
|
|
24
|
+
# All operations you run on the app_middleware will be replayed on the
|
|
25
|
+
# application once it is defined and the default_middlewares are
|
|
26
|
+
# created
|
|
27
|
+
def app_middleware
|
|
28
|
+
@@app_middleware ||= Rails::Configuration::MiddlewareStackProxy.new
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# This allows you to modify application's generators from Railties.
|
|
32
|
+
#
|
|
33
|
+
# Values set on app_generators will become defaults for application, unless
|
|
34
|
+
# application overwrites them.
|
|
35
|
+
def app_generators
|
|
36
|
+
@@app_generators ||= Rails::Configuration::Generators.new
|
|
37
|
+
yield(@@app_generators) if block_given?
|
|
38
|
+
@@app_generators
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# First configurable block to run. Called before any initializers are run.
|
|
42
|
+
def before_configuration(&block)
|
|
43
|
+
ActiveSupport.on_load(:before_configuration, :yield => true, &block)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Third configurable block to run. Does not run if config.cache_classes
|
|
47
|
+
# set to false.
|
|
48
|
+
def before_eager_load(&block)
|
|
49
|
+
ActiveSupport.on_load(:before_eager_load, :yield => true, &block)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Second configurable block to run. Called before frameworks initialize.
|
|
53
|
+
def before_initialize(&block)
|
|
54
|
+
ActiveSupport.on_load(:before_initialize, :yield => true, &block)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Last configurable block to run. Called after frameworks initialize.
|
|
58
|
+
def after_initialize(&block)
|
|
59
|
+
ActiveSupport.on_load(:after_initialize, :yield => true, &block)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Array of callbacks defined by #to_prepare.
|
|
63
|
+
def to_prepare_blocks
|
|
64
|
+
@@to_prepare_blocks ||= []
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Defines generic callbacks to run before #after_initialize. Useful for
|
|
68
|
+
# Rails::Railtie subclasses.
|
|
69
|
+
def to_prepare(&blk)
|
|
70
|
+
to_prepare_blocks << blk if blk
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def respond_to?(name)
|
|
74
|
+
super || @@options.key?(name.to_sym)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
private
|
|
78
|
+
|
|
79
|
+
def method_missing(name, *args, &blk)
|
|
80
|
+
if name.to_s =~ /=$/
|
|
81
|
+
@@options[$`.to_sym] = args.first
|
|
82
|
+
elsif @@options.key?(name)
|
|
83
|
+
@@options[name]
|
|
84
|
+
else
|
|
85
|
+
super
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|