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
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Rails
|
|
2
|
+
module Generators
|
|
3
|
+
class ControllerGenerator < NamedBase
|
|
4
|
+
argument :actions, :type => :array, :default => [], :banner => "action action"
|
|
5
|
+
check_class_collision :suffix => "Controller"
|
|
6
|
+
|
|
7
|
+
def create_controller_files
|
|
8
|
+
template 'controller.rb', File.join('app/controllers', class_path, "#{file_name}_controller.rb")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def add_routes
|
|
12
|
+
actions.reverse.each do |action|
|
|
13
|
+
route %{get "#{file_name}/#{action}"}
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
hook_for :template_engine, :test_framework, :helper, :assets
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<% if namespaced? -%>
|
|
2
|
+
require_dependency "<%= namespaced_file_path %>/application_controller"
|
|
3
|
+
|
|
4
|
+
<% end -%>
|
|
5
|
+
<% module_namespacing do -%>
|
|
6
|
+
class <%= class_name %>Controller < ApplicationController
|
|
7
|
+
<% actions.each do |action| -%>
|
|
8
|
+
def <%= action %>
|
|
9
|
+
end
|
|
10
|
+
<%= "\n" unless action == actions.last -%>
|
|
11
|
+
<% end -%>
|
|
12
|
+
end
|
|
13
|
+
<% end -%>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new generator at lib/generators. Pass the generator name as an argument,
|
|
3
|
+
either CamelCased or snake_cased.
|
|
4
|
+
|
|
5
|
+
Example:
|
|
6
|
+
`rails generate generator Awesome`
|
|
7
|
+
|
|
8
|
+
creates a standard awesome generator:
|
|
9
|
+
lib/generators/awesome/
|
|
10
|
+
lib/generators/awesome/awesome_generator.rb
|
|
11
|
+
lib/generators/awesome/USAGE
|
|
12
|
+
lib/generators/awesome/templates/
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Rails
|
|
2
|
+
module Generators
|
|
3
|
+
class GeneratorGenerator < NamedBase
|
|
4
|
+
check_class_collision :suffix => "Generator"
|
|
5
|
+
|
|
6
|
+
class_option :namespace, :type => :boolean, :default => true,
|
|
7
|
+
:desc => "Namespace generator under lib/generators/name"
|
|
8
|
+
|
|
9
|
+
def create_generator_files
|
|
10
|
+
directory '.', generator_dir
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
protected
|
|
14
|
+
|
|
15
|
+
def generator_dir
|
|
16
|
+
if options[:namespace]
|
|
17
|
+
File.join("lib", "generators", regular_class_path, file_name)
|
|
18
|
+
else
|
|
19
|
+
File.join("lib", "generators", regular_class_path)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new helper. Pass the helper name, either CamelCased
|
|
3
|
+
or under_scored.
|
|
4
|
+
|
|
5
|
+
To create a helper within a module, specify the helper name as a
|
|
6
|
+
path like 'parent_module/helper_name'.
|
|
7
|
+
|
|
8
|
+
This generates a helper class in app/helpers and invokes the configured
|
|
9
|
+
test framework.
|
|
10
|
+
|
|
11
|
+
Example:
|
|
12
|
+
`rails generate helper CreditCard`
|
|
13
|
+
|
|
14
|
+
Credit card helper.
|
|
15
|
+
Helper: app/helpers/credit_card_helper.rb
|
|
16
|
+
Test: test/unit/helpers/credit_card_helper_test.rb
|
|
17
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Rails
|
|
2
|
+
module Generators
|
|
3
|
+
class HelperGenerator < NamedBase
|
|
4
|
+
check_class_collision :suffix => "Helper"
|
|
5
|
+
|
|
6
|
+
def create_helper_files
|
|
7
|
+
template 'helper.rb', File.join('app/helpers', class_path, "#{file_name}_helper.rb")
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
hook_for :test_framework
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new integration test. Pass the name of the test, either
|
|
3
|
+
CamelCased or under_scored, as an argument.
|
|
4
|
+
|
|
5
|
+
This generator invokes the current integration tool, which defaults to
|
|
6
|
+
TestUnit.
|
|
7
|
+
|
|
8
|
+
Example:
|
|
9
|
+
`rails generate integration_test GeneralStories` creates a GeneralStories
|
|
10
|
+
integration test in test/integration/general_stories_test.rb
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new database migration. Pass the migration name, either
|
|
3
|
+
CamelCased or under_scored, and an optional list of attribute pairs as arguments.
|
|
4
|
+
|
|
5
|
+
A migration class is generated in db/migrate prefixed by a timestamp of the current date and time.
|
|
6
|
+
|
|
7
|
+
You can name your migration in either of these formats to generate add/remove
|
|
8
|
+
column lines from supplied attributes: AddColumnsToTable or RemoveColumnsFromTable
|
|
9
|
+
|
|
10
|
+
Example:
|
|
11
|
+
`rails generate migration AddSslFlag`
|
|
12
|
+
|
|
13
|
+
If the current date is May 14, 2008 and the current time 09:09:12, this creates the AddSslFlag migration
|
|
14
|
+
db/migrate/20080514090912_add_ssl_flag.rb
|
|
15
|
+
|
|
16
|
+
`rails generate migration AddTitleBodyToPost title:string body:text published:boolean`
|
|
17
|
+
|
|
18
|
+
This will create the AddTitleBodyToPost in db/migrate/20080514090912_add_title_body_to_post.rb with
|
|
19
|
+
this in the Up migration:
|
|
20
|
+
|
|
21
|
+
add_column :posts, :title, :string
|
|
22
|
+
add_column :posts, :body, :text
|
|
23
|
+
add_column :posts, :published, :boolean
|
|
24
|
+
|
|
25
|
+
And this in the Down migration:
|
|
26
|
+
|
|
27
|
+
remove_column :posts, :published
|
|
28
|
+
remove_column :posts, :body
|
|
29
|
+
remove_column :posts, :title
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new model. Pass the model name, either CamelCased or
|
|
3
|
+
under_scored, and an optional list of attribute pairs as arguments.
|
|
4
|
+
|
|
5
|
+
Attribute pairs are field:type arguments specifying the
|
|
6
|
+
model's attributes. Timestamps are added by default, so you don't have to
|
|
7
|
+
specify them by hand as 'created_at:datetime updated_at:datetime'.
|
|
8
|
+
|
|
9
|
+
You don't have to think up every attribute up front, but it helps to
|
|
10
|
+
sketch out a few so you can start working with the model immediately.
|
|
11
|
+
|
|
12
|
+
This generator invokes your configured ORM and test framework, which
|
|
13
|
+
defaults to ActiveRecord and TestUnit.
|
|
14
|
+
|
|
15
|
+
Finally, if --parent option is given, it's used as superclass of the
|
|
16
|
+
created model. This allows you create Single Table Inheritance models.
|
|
17
|
+
|
|
18
|
+
If you pass a namespaced model name (e.g. admin/account or Admin::Account)
|
|
19
|
+
then the generator will create a module with a table_name_prefix method
|
|
20
|
+
to prefix the model's table name with the module name (e.g. admin_account)
|
|
21
|
+
|
|
22
|
+
Examples:
|
|
23
|
+
`rails generate model account`
|
|
24
|
+
|
|
25
|
+
For ActiveRecord and TestUnit it creates:
|
|
26
|
+
|
|
27
|
+
Model: app/models/account.rb
|
|
28
|
+
Test: test/unit/account_test.rb
|
|
29
|
+
Fixtures: test/fixtures/accounts.yml
|
|
30
|
+
Migration: db/migrate/XXX_add_accounts.rb
|
|
31
|
+
|
|
32
|
+
`rails generate model post title:string body:text published:boolean`
|
|
33
|
+
|
|
34
|
+
Creates a Post model with a string title, text body, and published flag.
|
|
35
|
+
|
|
36
|
+
`rails generate model admin/account`
|
|
37
|
+
|
|
38
|
+
For ActiveRecord and TestUnit it creates:
|
|
39
|
+
|
|
40
|
+
Module: app/models/admin.rb
|
|
41
|
+
Model: app/models/admin/account.rb
|
|
42
|
+
Test: test/unit/admin/account_test.rb
|
|
43
|
+
Fixtures: test/fixtures/admin/accounts.yml
|
|
44
|
+
Migration: db/migrate/XXX_add_admin_accounts.rb
|
|
45
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new observer. Pass the observer name, either CamelCased or
|
|
3
|
+
under_scored, as an argument.
|
|
4
|
+
|
|
5
|
+
This generator only invokes your ORM and test framework generators.
|
|
6
|
+
|
|
7
|
+
Example:
|
|
8
|
+
`rails generate observer Account`
|
|
9
|
+
|
|
10
|
+
For ActiveRecord and TestUnit it creates:
|
|
11
|
+
Observer: app/models/account_observer.rb
|
|
12
|
+
TestUnit: test/unit/account_observer_test.rb
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Stubs out a new performance test. Pass the name of the test, either
|
|
3
|
+
CamelCased or under_scored, as an argument.
|
|
4
|
+
|
|
5
|
+
This generator invokes the current performance tool, which defaults to
|
|
6
|
+
TestUnit.
|
|
7
|
+
|
|
8
|
+
Example:
|
|
9
|
+
`rails generate performance_test GeneralStories` creates a GeneralStories
|
|
10
|
+
performance test in test/performance/general_stories_test.rb
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
The 'rails plugin new' command creates a skeleton for developing any
|
|
3
|
+
kind of Rails extension with ability to run tests using dummy Rails
|
|
4
|
+
application.
|
|
5
|
+
|
|
6
|
+
Example:
|
|
7
|
+
rails plugin new ~/Code/Ruby/blog
|
|
8
|
+
|
|
9
|
+
This generates a skeletal Rails plugin in ~/Code/Ruby/blog.
|
|
10
|
+
See the README in the newly created plugin to get going.
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
require 'active_support/core_ext/hash/slice'
|
|
2
|
+
require "rails/generators/rails/app/app_generator"
|
|
3
|
+
require 'date'
|
|
4
|
+
|
|
5
|
+
module Rails
|
|
6
|
+
class PluginBuilder
|
|
7
|
+
def rakefile
|
|
8
|
+
template "Rakefile"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def app
|
|
12
|
+
if mountable?
|
|
13
|
+
directory "app"
|
|
14
|
+
empty_directory_with_gitkeep "app/assets/images/#{name}"
|
|
15
|
+
elsif full?
|
|
16
|
+
empty_directory_with_gitkeep "app/models"
|
|
17
|
+
empty_directory_with_gitkeep "app/controllers"
|
|
18
|
+
empty_directory_with_gitkeep "app/views"
|
|
19
|
+
empty_directory_with_gitkeep "app/helpers"
|
|
20
|
+
empty_directory_with_gitkeep "app/mailers"
|
|
21
|
+
empty_directory_with_gitkeep "app/assets/images/#{name}"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def readme
|
|
26
|
+
template "README.rdoc"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def gemfile
|
|
30
|
+
template "Gemfile"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def license
|
|
34
|
+
template "MIT-LICENSE"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def gemspec
|
|
38
|
+
template "%name%.gemspec"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def gitignore
|
|
42
|
+
template "gitignore", ".gitignore"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def lib
|
|
46
|
+
template "lib/%name%.rb"
|
|
47
|
+
template "lib/tasks/%name%_tasks.rake"
|
|
48
|
+
template "lib/%name%/version.rb"
|
|
49
|
+
if full?
|
|
50
|
+
template "lib/%name%/engine.rb"
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def config
|
|
55
|
+
template "config/routes.rb" if full?
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test
|
|
59
|
+
template "test/test_helper.rb"
|
|
60
|
+
template "test/%name%_test.rb"
|
|
61
|
+
append_file "Rakefile", <<-EOF
|
|
62
|
+
#{rakefile_test_tasks}
|
|
63
|
+
|
|
64
|
+
task :default => :test
|
|
65
|
+
EOF
|
|
66
|
+
if full?
|
|
67
|
+
template "test/integration/navigation_test.rb"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
PASSTHROUGH_OPTIONS = [
|
|
72
|
+
:skip_active_record, :skip_javascript, :database, :javascript, :quiet, :pretend, :force, :skip
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
def generate_test_dummy(force = false)
|
|
76
|
+
opts = (options || {}).slice(*PASSTHROUGH_OPTIONS)
|
|
77
|
+
opts[:force] = force
|
|
78
|
+
opts[:skip_bundle] = true
|
|
79
|
+
|
|
80
|
+
invoke Rails::Generators::AppGenerator,
|
|
81
|
+
[ File.expand_path(dummy_path, destination_root) ], opts
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_dummy_config
|
|
85
|
+
template "rails/boot.rb", "#{dummy_path}/config/boot.rb", :force => true
|
|
86
|
+
template "rails/application.rb", "#{dummy_path}/config/application.rb", :force => true
|
|
87
|
+
if mountable?
|
|
88
|
+
template "rails/routes.rb", "#{dummy_path}/config/routes.rb", :force => true
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def test_dummy_clean
|
|
93
|
+
inside dummy_path do
|
|
94
|
+
remove_file ".gitignore"
|
|
95
|
+
remove_file "db/seeds.rb"
|
|
96
|
+
remove_file "doc"
|
|
97
|
+
remove_file "Gemfile"
|
|
98
|
+
remove_file "lib/tasks"
|
|
99
|
+
remove_file "app/assets/images/rails.png"
|
|
100
|
+
remove_file "public/index.html"
|
|
101
|
+
remove_file "public/robots.txt"
|
|
102
|
+
remove_file "README"
|
|
103
|
+
remove_file "test"
|
|
104
|
+
remove_file "vendor"
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def stylesheets
|
|
109
|
+
if mountable?
|
|
110
|
+
copy_file "#{app_templates_dir}/app/assets/stylesheets/application.css",
|
|
111
|
+
"app/assets/stylesheets/#{name}/application.css"
|
|
112
|
+
elsif full?
|
|
113
|
+
empty_directory_with_gitkeep "app/assets/stylesheets/#{name}"
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def javascripts
|
|
118
|
+
return if options.skip_javascript?
|
|
119
|
+
|
|
120
|
+
if mountable?
|
|
121
|
+
template "#{app_templates_dir}/app/assets/javascripts/application.js.tt",
|
|
122
|
+
"app/assets/javascripts/#{name}/application.js"
|
|
123
|
+
elsif full?
|
|
124
|
+
empty_directory_with_gitkeep "app/assets/javascripts/#{name}"
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def script(force = false)
|
|
129
|
+
return unless full?
|
|
130
|
+
|
|
131
|
+
directory "script", :force => force do |content|
|
|
132
|
+
"#{shebang}\n" + content
|
|
133
|
+
end
|
|
134
|
+
chmod "script", 0755, :verbose => false
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
module Generators
|
|
139
|
+
class PluginNewGenerator < AppBase
|
|
140
|
+
add_shared_options_for "plugin"
|
|
141
|
+
|
|
142
|
+
alias_method :plugin_path, :app_path
|
|
143
|
+
|
|
144
|
+
class_option :dummy_path, :type => :string, :default => "test/dummy",
|
|
145
|
+
:desc => "Create dummy application at given path"
|
|
146
|
+
|
|
147
|
+
class_option :full, :type => :boolean, :default => false,
|
|
148
|
+
:desc => "Generate rails engine with integration tests"
|
|
149
|
+
|
|
150
|
+
class_option :mountable, :type => :boolean, :default => false,
|
|
151
|
+
:desc => "Generate mountable isolated application"
|
|
152
|
+
|
|
153
|
+
class_option :skip_gemspec, :type => :boolean, :default => false,
|
|
154
|
+
:desc => "Skip gemspec file"
|
|
155
|
+
|
|
156
|
+
def initialize(*args)
|
|
157
|
+
raise Error, "Options should be given after the plugin name. For details run: rails plugin --help" if args[0].blank?
|
|
158
|
+
|
|
159
|
+
@dummy_path = nil
|
|
160
|
+
super
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
public_task :create_root
|
|
164
|
+
|
|
165
|
+
def create_root_files
|
|
166
|
+
build(:readme)
|
|
167
|
+
build(:rakefile)
|
|
168
|
+
build(:gemspec) unless options[:skip_gemspec]
|
|
169
|
+
build(:license)
|
|
170
|
+
build(:gitignore) unless options[:skip_git]
|
|
171
|
+
build(:gemfile) unless options[:skip_gemfile]
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def create_app_files
|
|
175
|
+
build(:app)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def create_config_files
|
|
179
|
+
build(:config)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def create_lib_files
|
|
183
|
+
build(:lib)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def create_public_stylesheets_files
|
|
187
|
+
build(:stylesheets)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def create_javascript_files
|
|
191
|
+
build(:javascripts)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def create_images_directory
|
|
195
|
+
build(:images)
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
def create_script_files
|
|
199
|
+
build(:script)
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def create_test_files
|
|
203
|
+
build(:test) unless options[:skip_test_unit]
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def create_test_dummy_files
|
|
207
|
+
return if options[:skip_test_unit] && options[:dummy_path] == 'test/dummy'
|
|
208
|
+
create_dummy_app
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def finish_template
|
|
212
|
+
build(:leftovers)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
public_task :apply_rails_template, :run_bundle
|
|
216
|
+
|
|
217
|
+
protected
|
|
218
|
+
|
|
219
|
+
def app_templates_dir
|
|
220
|
+
"../../app/templates"
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def create_dummy_app(path = nil)
|
|
224
|
+
dummy_path(path) if path
|
|
225
|
+
|
|
226
|
+
say_status :vendor_app, dummy_path
|
|
227
|
+
mute do
|
|
228
|
+
build(:generate_test_dummy)
|
|
229
|
+
store_application_definition!
|
|
230
|
+
build(:test_dummy_config)
|
|
231
|
+
build(:test_dummy_clean)
|
|
232
|
+
# ensure that script/rails has proper dummy_path
|
|
233
|
+
build(:script, true)
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def full?
|
|
238
|
+
options[:full] || options[:mountable]
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
def mountable?
|
|
242
|
+
options[:mountable]
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
def self.banner
|
|
246
|
+
"rails plugin new #{self.arguments.map(&:usage).join(' ')} [options]"
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
def original_name
|
|
250
|
+
@original_name ||= File.basename(destination_root)
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
def name
|
|
254
|
+
@name ||= begin
|
|
255
|
+
# same as ActiveSupport::Inflector#underscore except not replacing '-'
|
|
256
|
+
underscored = original_name.dup
|
|
257
|
+
underscored.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
|
258
|
+
underscored.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
|
259
|
+
underscored.downcase!
|
|
260
|
+
|
|
261
|
+
underscored
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def camelized
|
|
266
|
+
@camelized ||= name.gsub(/\W/, '_').squeeze('_').camelize
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
def valid_const?
|
|
270
|
+
if camelized =~ /^\d/
|
|
271
|
+
raise Error, "Invalid plugin name #{original_name}. Please give a name which does not start with numbers."
|
|
272
|
+
elsif RESERVED_NAMES.include?(name)
|
|
273
|
+
raise Error, "Invalid plugin name #{original_name}. Please give a name which does not match one of the reserved rails words."
|
|
274
|
+
elsif Object.const_defined?(camelized)
|
|
275
|
+
raise Error, "Invalid plugin name #{original_name}, constant #{camelized} is already in use. Please choose another plugin name."
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
def application_definition
|
|
280
|
+
@application_definition ||= begin
|
|
281
|
+
|
|
282
|
+
dummy_application_path = File.expand_path("#{dummy_path}/config/application.rb", destination_root)
|
|
283
|
+
unless options[:pretend] || !File.exists?(dummy_application_path)
|
|
284
|
+
contents = File.read(dummy_application_path)
|
|
285
|
+
contents[(contents.index("module Dummy"))..-1]
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
alias :store_application_definition! :application_definition
|
|
290
|
+
|
|
291
|
+
def get_builder_class
|
|
292
|
+
defined?(::PluginBuilder) ? ::PluginBuilder : Rails::PluginBuilder
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
def rakefile_test_tasks
|
|
296
|
+
<<-RUBY
|
|
297
|
+
require 'rake/testtask'
|
|
298
|
+
|
|
299
|
+
Rake::TestTask.new(:test) do |t|
|
|
300
|
+
t.libs << 'lib'
|
|
301
|
+
t.libs << 'test'
|
|
302
|
+
t.pattern = 'test/**/*_test.rb'
|
|
303
|
+
t.verbose = false
|
|
304
|
+
end
|
|
305
|
+
RUBY
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
def dummy_path(path = nil)
|
|
309
|
+
@dummy_path = path if path
|
|
310
|
+
@dummy_path || options[:dummy_path]
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
def mute(&block)
|
|
314
|
+
shell.mute(&block)
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
end
|
|
318
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
2
|
+
|
|
3
|
+
# Maintain your gem's version:
|
|
4
|
+
require "<%= name %>/version"
|
|
5
|
+
|
|
6
|
+
# Describe your gem and declare its dependencies:
|
|
7
|
+
Gem::Specification.new do |s|
|
|
8
|
+
s.name = "<%= name %>"
|
|
9
|
+
s.version = <%= camelized %>::VERSION
|
|
10
|
+
s.authors = ["TODO: Your name"]
|
|
11
|
+
s.email = ["TODO: Your email"]
|
|
12
|
+
s.homepage = "TODO"
|
|
13
|
+
s.summary = "TODO: Summary of <%= camelized %>."
|
|
14
|
+
s.description = "TODO: Description of <%= camelized %>."
|
|
15
|
+
|
|
16
|
+
s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
|
|
17
|
+
<% unless options.skip_test_unit? -%>
|
|
18
|
+
s.test_files = Dir["test/**/*"]
|
|
19
|
+
<% end -%>
|
|
20
|
+
|
|
21
|
+
<%= '# ' if options.dev? || options.edge? -%>s.add_dependency "rails", "~> <%= Rails::VERSION::STRING %>"
|
|
22
|
+
<% if full? && !options[:skip_javascript] -%>
|
|
23
|
+
# s.add_dependency "<%= "#{options[:javascript]}-rails" %>"
|
|
24
|
+
<% end -%>
|
|
25
|
+
<% unless options[:skip_active_record] -%>
|
|
26
|
+
|
|
27
|
+
s.add_development_dependency "<%= gem_for_database %>"
|
|
28
|
+
<% end -%>
|
|
29
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
source "http://rubygems.org"
|
|
2
|
+
|
|
3
|
+
# Declare your gem's dependencies in <%= name %>.gemspec.
|
|
4
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
+
# development dependencies will be added by default to the :development group.
|
|
6
|
+
gemspec
|
|
7
|
+
|
|
8
|
+
# jquery-rails is used by the dummy application
|
|
9
|
+
gem "jquery-rails"
|
|
10
|
+
|
|
11
|
+
# Declare any dependencies that are still in development here instead of in
|
|
12
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
|
13
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
|
14
|
+
# your gem to rubygems.org.
|
|
15
|
+
|
|
16
|
+
<% if options.dev? || options.edge? -%>
|
|
17
|
+
# Your gem is dependent on dev or edge Rails. Once you can lock this
|
|
18
|
+
# dependency down to a specific version, move it to your gemspec.
|
|
19
|
+
<%= rails_gemfile_entry -%>
|
|
20
|
+
|
|
21
|
+
<% end -%>
|
|
22
|
+
# To use debugger
|
|
23
|
+
# <%= ruby_debugger_gemfile_entry %>
|