railties 3.2.22.5 → 4.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +186 -78
- data/README.rdoc +4 -2
- data/lib/rails.rb +11 -44
- data/lib/rails/all.rb +0 -1
- data/lib/rails/app_rails_loader.rb +37 -0
- data/lib/rails/application.rb +176 -124
- data/lib/rails/application/bootstrap.rb +29 -23
- data/lib/rails/application/configuration.rb +54 -48
- data/lib/rails/application/finisher.rb +8 -12
- data/lib/rails/application/routes_reloader.rb +2 -2
- data/lib/rails/backtrace_cleaner.rb +1 -16
- data/lib/rails/cli.rb +2 -2
- data/lib/rails/code_statistics.rb +30 -45
- data/lib/rails/code_statistics_calculator.rb +79 -0
- data/lib/rails/commands.rb +44 -37
- data/lib/rails/commands/application.rb +14 -9
- data/lib/rails/commands/console.rb +77 -33
- data/lib/rails/commands/dbconsole.rb +115 -64
- data/lib/rails/commands/destroy.rb +2 -3
- data/lib/rails/commands/generate.rb +2 -3
- data/lib/rails/commands/plugin_new.rb +0 -2
- data/lib/rails/commands/runner.rb +4 -5
- data/lib/rails/commands/server.rb +28 -9
- data/lib/rails/commands/update.rb +1 -1
- data/lib/rails/configuration.rb +35 -8
- data/lib/rails/console/app.rb +0 -4
- data/lib/rails/deprecation.rb +19 -0
- data/lib/rails/engine.rb +111 -92
- data/lib/rails/engine/commands.rb +1 -3
- data/lib/rails/engine/configuration.rb +26 -19
- data/lib/rails/engine/railties.rb +14 -18
- data/lib/rails/generators.rb +30 -50
- data/lib/rails/generators/actions.rb +38 -103
- data/lib/rails/generators/active_model.rb +14 -6
- data/lib/rails/generators/app_base.rb +70 -83
- data/lib/rails/generators/base.rb +23 -35
- data/lib/rails/generators/css/assets/assets_generator.rb +3 -3
- data/lib/rails/generators/css/scaffold/scaffold_generator.rb +3 -3
- data/lib/rails/generators/erb.rb +2 -2
- data/lib/rails/generators/erb/controller/controller_generator.rb +4 -4
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +3 -3
- data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +4 -4
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb +18 -14
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb +1 -1
- data/lib/rails/generators/generated_attribute.rb +51 -16
- data/lib/rails/generators/js/assets/assets_generator.rb +3 -3
- data/lib/rails/generators/migration.rb +1 -5
- data/lib/rails/generators/named_base.rb +20 -25
- data/lib/rails/generators/rails/app/app_generator.rb +40 -48
- data/lib/rails/generators/rails/app/templates/Gemfile +8 -7
- data/lib/rails/generators/rails/app/templates/README.rdoc +28 -0
- data/lib/rails/generators/rails/app/templates/Rakefile +0 -1
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +2 -1
- data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt +5 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/bin/bundle +2 -0
- data/lib/rails/generators/rails/app/templates/bin/rails +3 -0
- data/lib/rails/generators/rails/app/templates/bin/rake +3 -0
- data/lib/rails/generators/rails/app/templates/config/application.rb +5 -43
- data/lib/rails/generators/rails/app/templates/config/boot.rb +0 -2
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml +1 -4
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml +8 -3
- data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml +57 -0
- data/lib/rails/generators/rails/app/templates/config/environment.rb +2 -2
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +9 -19
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +40 -29
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +12 -15
- data/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb +4 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb +6 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt +6 -1
- data/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt +1 -6
- data/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt +6 -6
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +20 -2
- data/lib/rails/generators/rails/app/templates/config/routes.rb +15 -24
- data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/gitignore +3 -2
- data/lib/rails/generators/rails/app/templates/public/404.html +2 -1
- data/lib/rails/generators/rails/app/templates/public/422.html +1 -1
- data/lib/rails/generators/rails/app/templates/public/500.html +2 -1
- data/lib/rails/generators/rails/app/templates/public/robots.txt +1 -1
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb +3 -1
- data/lib/rails/generators/rails/assets/assets_generator.rb +5 -5
- data/lib/rails/generators/rails/controller/USAGE +7 -7
- data/lib/rails/generators/rails/controller/controller_generator.rb +3 -3
- data/lib/rails/generators/rails/controller/templates/controller.rb +1 -1
- data/lib/rails/generators/rails/generator/generator_generator.rb +4 -4
- data/lib/rails/generators/rails/helper/USAGE +1 -1
- data/lib/rails/generators/rails/helper/helper_generator.rb +2 -2
- data/lib/rails/generators/rails/integration_test/integration_test_generator.rb +2 -2
- data/lib/rails/generators/rails/migration/USAGE +12 -6
- data/lib/rails/generators/rails/migration/migration_generator.rb +3 -3
- data/lib/rails/generators/rails/model/USAGE +53 -4
- data/lib/rails/generators/rails/model/model_generator.rb +3 -3
- data/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb +81 -39
- data/lib/rails/generators/rails/plugin_new/templates/%name%.gemspec +2 -2
- data/lib/rails/generators/rails/plugin_new/templates/Gemfile +16 -1
- data/lib/rails/generators/rails/plugin_new/templates/Rakefile +3 -9
- data/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt +0 -1
- data/lib/rails/generators/rails/plugin_new/templates/app/views/layouts/%name%/application.html.erb.tt +1 -1
- data/lib/rails/generators/rails/plugin_new/templates/{script → bin}/rails.tt +0 -0
- data/lib/rails/generators/rails/plugin_new/templates/gitignore +3 -0
- data/lib/rails/generators/rails/plugin_new/templates/lib/%name%.rb +1 -1
- data/lib/rails/generators/rails/plugin_new/templates/rails/application.rb +0 -1
- data/lib/rails/generators/rails/plugin_new/templates/rails/boot.rb +0 -1
- data/lib/rails/generators/rails/resource/resource_generator.rb +5 -5
- data/lib/rails/generators/rails/resource_route/resource_route_generator.rb +2 -2
- data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +11 -7
- data/lib/rails/generators/rails/scaffold_controller/USAGE +4 -4
- data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +9 -7
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb +27 -48
- data/lib/rails/generators/rails/task/task_generator.rb +2 -2
- data/lib/rails/generators/rails/task/templates/task.rb +1 -1
- data/lib/rails/generators/resource_helpers.rb +3 -5
- data/lib/rails/generators/test_case.rb +22 -28
- data/lib/rails/generators/test_unit.rb +3 -3
- data/lib/rails/generators/test_unit/controller/controller_generator.rb +6 -6
- data/lib/rails/generators/test_unit/helper/helper_generator.rb +5 -5
- data/lib/rails/generators/test_unit/integration/integration_generator.rb +4 -4
- data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +6 -6
- data/lib/rails/generators/test_unit/model/model_generator.rb +7 -7
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml +8 -2
- data/lib/rails/generators/test_unit/plugin/plugin_generator.rb +4 -4
- data/lib/rails/generators/test_unit/plugin/templates/test_helper.rb +1 -2
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +10 -19
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb +5 -5
- data/lib/rails/info.rb +3 -3
- data/lib/rails/info_controller.rb +26 -8
- data/lib/rails/initializable.rb +2 -2
- data/lib/rails/paths.rb +59 -54
- data/lib/rails/rack/debugger.rb +2 -2
- data/lib/rails/rack/logger.rb +33 -8
- data/lib/rails/railtie.rb +24 -24
- data/lib/rails/railtie/configurable.rb +1 -1
- data/lib/rails/railtie/configuration.rb +15 -5
- data/lib/rails/ruby_version_check.rb +3 -13
- data/lib/rails/rubyprof_ext.rb +1 -1
- data/lib/rails/source_annotation_extractor.rb +40 -17
- data/lib/rails/tasks/annotations.rake +1 -1
- data/lib/rails/tasks/documentation.rake +10 -57
- data/lib/rails/tasks/engine.rake +1 -1
- data/lib/rails/tasks/framework.rake +9 -9
- data/lib/rails/tasks/log.rake +18 -4
- data/lib/rails/tasks/middleware.rake +1 -1
- data/lib/rails/tasks/misc.rake +2 -9
- data/lib/rails/tasks/routes.rake +4 -6
- data/lib/rails/tasks/statistics.rake +8 -2
- data/lib/rails/tasks/tmp.rake +12 -4
- data/lib/rails/templates/layouts/application.html.erb +36 -0
- data/lib/rails/templates/rails/info/properties.html.erb +1 -0
- data/lib/rails/templates/rails/info/routes.html.erb +9 -0
- data/lib/rails/{generators/rails/app/templates/public/index.html → templates/rails/welcome/index.html.erb} +18 -14
- data/lib/rails/test_help.rb +6 -29
- data/lib/rails/test_unit/railtie.rb +2 -3
- data/lib/rails/test_unit/testing.rake +45 -33
- data/lib/rails/version.rb +4 -4
- data/lib/rails/welcome_controller.rb +7 -0
- metadata +86 -378
- 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 +0 -5
- 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 +0 -7
- data/guides/assets/javascripts/syntaxhighlighter/shBrushAS3.js +0 -59
- data/guides/assets/javascripts/syntaxhighlighter/shBrushAppleScript.js +0 -75
- data/guides/assets/javascripts/syntaxhighlighter/shBrushBash.js +0 -59
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCSharp.js +0 -65
- data/guides/assets/javascripts/syntaxhighlighter/shBrushColdFusion.js +0 -100
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCpp.js +0 -97
- data/guides/assets/javascripts/syntaxhighlighter/shBrushCss.js +0 -91
- data/guides/assets/javascripts/syntaxhighlighter/shBrushDelphi.js +0 -55
- data/guides/assets/javascripts/syntaxhighlighter/shBrushDiff.js +0 -41
- data/guides/assets/javascripts/syntaxhighlighter/shBrushErlang.js +0 -52
- data/guides/assets/javascripts/syntaxhighlighter/shBrushGroovy.js +0 -67
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJScript.js +0 -52
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJava.js +0 -57
- data/guides/assets/javascripts/syntaxhighlighter/shBrushJavaFX.js +0 -58
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPerl.js +0 -72
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPhp.js +0 -88
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPlain.js +0 -33
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPowerShell.js +0 -74
- data/guides/assets/javascripts/syntaxhighlighter/shBrushPython.js +0 -64
- data/guides/assets/javascripts/syntaxhighlighter/shBrushRuby.js +0 -55
- data/guides/assets/javascripts/syntaxhighlighter/shBrushSass.js +0 -94
- data/guides/assets/javascripts/syntaxhighlighter/shBrushScala.js +0 -51
- data/guides/assets/javascripts/syntaxhighlighter/shBrushSql.js +0 -66
- data/guides/assets/javascripts/syntaxhighlighter/shBrushVb.js +0 -56
- data/guides/assets/javascripts/syntaxhighlighter/shBrushXml.js +0 -69
- data/guides/assets/javascripts/syntaxhighlighter/shCore.js +0 -17
- data/guides/assets/stylesheets/fixes.css +0 -16
- data/guides/assets/stylesheets/kindle.css +0 -11
- data/guides/assets/stylesheets/main.css +0 -453
- data/guides/assets/stylesheets/print.css +0 -52
- data/guides/assets/stylesheets/reset.css +0 -43
- data/guides/assets/stylesheets/style.css +0 -13
- data/guides/assets/stylesheets/syntaxhighlighter/shCore.css +0 -226
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreDefault.css +0 -328
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreDjango.css +0 -331
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreEclipse.css +0 -339
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreEmacs.css +0 -324
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreFadeToGrey.css +0 -328
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreMDUltra.css +0 -324
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreMidnight.css +0 -324
- data/guides/assets/stylesheets/syntaxhighlighter/shCoreRDark.css +0 -324
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeDefault.css +0 -117
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeDjango.css +0 -120
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeEclipse.css +0 -128
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeEmacs.css +0 -113
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeFadeToGrey.css +0 -117
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeMDUltra.css +0 -113
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeMidnight.css +0 -113
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeRDark.css +0 -113
- data/guides/assets/stylesheets/syntaxhighlighter/shThemeRailsGuides.css +0 -116
- data/guides/code/getting_started/Gemfile +0 -38
- data/guides/code/getting_started/README.rdoc +0 -261
- data/guides/code/getting_started/Rakefile +0 -7
- data/guides/code/getting_started/app/assets/images/rails.png +0 -0
- data/guides/code/getting_started/app/assets/javascripts/application.js +0 -15
- data/guides/code/getting_started/app/assets/javascripts/comments.js.coffee +0 -3
- data/guides/code/getting_started/app/assets/javascripts/home.js.coffee +0 -3
- data/guides/code/getting_started/app/assets/javascripts/posts.js.coffee +0 -3
- data/guides/code/getting_started/app/assets/stylesheets/application.css +0 -13
- data/guides/code/getting_started/app/assets/stylesheets/comments.css.scss +0 -3
- data/guides/code/getting_started/app/assets/stylesheets/home.css.scss +0 -3
- data/guides/code/getting_started/app/assets/stylesheets/posts.css.scss +0 -3
- data/guides/code/getting_started/app/assets/stylesheets/scaffolds.css.scss +0 -56
- data/guides/code/getting_started/app/controllers/application_controller.rb +0 -3
- data/guides/code/getting_started/app/controllers/comments_controller.rb +0 -16
- data/guides/code/getting_started/app/controllers/home_controller.rb +0 -5
- data/guides/code/getting_started/app/controllers/posts_controller.rb +0 -84
- data/guides/code/getting_started/app/helpers/application_helper.rb +0 -2
- data/guides/code/getting_started/app/helpers/comments_helper.rb +0 -2
- data/guides/code/getting_started/app/helpers/home_helper.rb +0 -2
- data/guides/code/getting_started/app/helpers/posts_helper.rb +0 -5
- data/guides/code/getting_started/app/models/comment.rb +0 -3
- data/guides/code/getting_started/app/models/post.rb +0 -11
- data/guides/code/getting_started/app/models/tag.rb +0 -3
- data/guides/code/getting_started/app/views/comments/_comment.html.erb +0 -15
- data/guides/code/getting_started/app/views/comments/_form.html.erb +0 -13
- data/guides/code/getting_started/app/views/home/index.html.erb +0 -2
- data/guides/code/getting_started/app/views/layouts/application.html.erb +0 -14
- data/guides/code/getting_started/app/views/posts/_form.html.erb +0 -32
- data/guides/code/getting_started/app/views/posts/edit.html.erb +0 -6
- data/guides/code/getting_started/app/views/posts/index.html.erb +0 -27
- data/guides/code/getting_started/app/views/posts/new.html.erb +0 -5
- data/guides/code/getting_started/app/views/posts/show.html.erb +0 -31
- data/guides/code/getting_started/app/views/tags/_form.html.erb +0 -12
- data/guides/code/getting_started/config.ru +0 -4
- data/guides/code/getting_started/config/application.rb +0 -59
- data/guides/code/getting_started/config/boot.rb +0 -6
- data/guides/code/getting_started/config/database.yml +0 -25
- data/guides/code/getting_started/config/environment.rb +0 -5
- data/guides/code/getting_started/config/environments/development.rb +0 -37
- data/guides/code/getting_started/config/environments/production.rb +0 -67
- data/guides/code/getting_started/config/environments/test.rb +0 -37
- data/guides/code/getting_started/config/initializers/backtrace_silencers.rb +0 -7
- data/guides/code/getting_started/config/initializers/inflections.rb +0 -15
- data/guides/code/getting_started/config/initializers/mime_types.rb +0 -5
- data/guides/code/getting_started/config/initializers/secret_token.rb +0 -7
- data/guides/code/getting_started/config/initializers/session_store.rb +0 -8
- data/guides/code/getting_started/config/initializers/wrap_parameters.rb +0 -14
- data/guides/code/getting_started/config/locales/en.yml +0 -5
- data/guides/code/getting_started/config/routes.rb +0 -64
- data/guides/code/getting_started/db/migrate/20110901012504_create_posts.rb +0 -11
- data/guides/code/getting_started/db/migrate/20110901012815_create_comments.rb +0 -12
- data/guides/code/getting_started/db/migrate/20110901013701_create_tags.rb +0 -11
- data/guides/code/getting_started/db/schema.rb +0 -43
- data/guides/code/getting_started/db/seeds.rb +0 -7
- data/guides/code/getting_started/doc/README_FOR_APP +0 -2
- data/guides/code/getting_started/public/404.html +0 -26
- data/guides/code/getting_started/public/422.html +0 -26
- data/guides/code/getting_started/public/500.html +0 -25
- data/guides/code/getting_started/public/favicon.ico +0 -0
- data/guides/code/getting_started/public/robots.txt +0 -5
- data/guides/code/getting_started/script/rails +0 -6
- data/guides/code/getting_started/test/fixtures/comments.yml +0 -11
- data/guides/code/getting_started/test/fixtures/posts.yml +0 -11
- data/guides/code/getting_started/test/fixtures/tags.yml +0 -9
- data/guides/code/getting_started/test/functional/comments_controller_test.rb +0 -7
- data/guides/code/getting_started/test/functional/home_controller_test.rb +0 -9
- data/guides/code/getting_started/test/functional/posts_controller_test.rb +0 -49
- data/guides/code/getting_started/test/performance/browsing_test.rb +0 -12
- data/guides/code/getting_started/test/test_helper.rb +0 -13
- data/guides/code/getting_started/test/unit/comment_test.rb +0 -7
- data/guides/code/getting_started/test/unit/helpers/comments_helper_test.rb +0 -4
- data/guides/code/getting_started/test/unit/helpers/home_helper_test.rb +0 -4
- data/guides/code/getting_started/test/unit/helpers/posts_helper_test.rb +0 -4
- data/guides/code/getting_started/test/unit/post_test.rb +0 -7
- data/guides/code/getting_started/test/unit/tag_test.rb +0 -7
- data/guides/rails_guides.rb +0 -50
- data/guides/rails_guides/generator.rb +0 -310
- data/guides/rails_guides/helpers.rb +0 -45
- data/guides/rails_guides/indexer.rb +0 -69
- data/guides/rails_guides/levenshtein.rb +0 -31
- data/guides/rails_guides/textile_extensions.rb +0 -63
- data/guides/source/2_2_release_notes.textile +0 -422
- data/guides/source/2_3_release_notes.textile +0 -610
- data/guides/source/3_0_release_notes.textile +0 -595
- data/guides/source/3_1_release_notes.textile +0 -553
- data/guides/source/3_2_release_notes.textile +0 -540
- data/guides/source/_license.html.erb +0 -2
- data/guides/source/_welcome.html.erb +0 -19
- data/guides/source/action_controller_overview.textile +0 -820
- data/guides/source/action_mailer_basics.textile +0 -516
- data/guides/source/action_view_overview.textile +0 -1497
- data/guides/source/active_model_basics.textile +0 -205
- data/guides/source/active_record_basics.textile +0 -218
- data/guides/source/active_record_querying.textile +0 -1433
- data/guides/source/active_record_validations_callbacks.textile +0 -1287
- data/guides/source/active_resource_basics.textile +0 -120
- data/guides/source/active_support_core_extensions.textile +0 -3715
- data/guides/source/api_documentation_guidelines.textile +0 -185
- data/guides/source/asset_pipeline.textile +0 -707
- data/guides/source/association_basics.textile +0 -1959
- data/guides/source/caching_with_rails.textile +0 -437
- data/guides/source/command_line.textile +0 -574
- data/guides/source/configuring.textile +0 -643
- data/guides/source/contributing_to_ruby_on_rails.textile +0 -448
- data/guides/source/credits.html.erb +0 -72
- data/guides/source/debugging_rails_applications.textile +0 -714
- data/guides/source/documents.yaml +0 -157
- data/guides/source/engines.textile +0 -618
- data/guides/source/form_helpers.textile +0 -798
- data/guides/source/generators.textile +0 -621
- data/guides/source/getting_started.textile +0 -1931
- data/guides/source/i18n.textile +0 -931
- data/guides/source/index.html.erb +0 -30
- data/guides/source/initialization.textile +0 -1116
- data/guides/source/kindle/KINDLE.md +0 -26
- data/guides/source/kindle/copyright.html.erb +0 -1
- data/guides/source/kindle/layout.html.erb +0 -27
- data/guides/source/kindle/rails_guides.opf.erb +0 -52
- data/guides/source/kindle/toc.html.erb +0 -24
- data/guides/source/kindle/toc.ncx.erb +0 -64
- data/guides/source/kindle/welcome.html.erb +0 -5
- data/guides/source/layout.html.erb +0 -124
- data/guides/source/layouts_and_rendering.textile +0 -1237
- data/guides/source/migrations.textile +0 -900
- data/guides/source/nested_model_forms.textile +0 -222
- data/guides/source/performance_testing.textile +0 -597
- data/guides/source/plugins.textile +0 -464
- data/guides/source/rails_application_templates.textile +0 -240
- data/guides/source/rails_on_rack.textile +0 -236
- data/guides/source/routing.textile +0 -885
- data/guides/source/ruby_on_rails_guides_guidelines.textile +0 -79
- data/guides/source/security.textile +0 -1004
- data/guides/source/testing.textile +0 -947
- data/guides/w3c_validator.rb +0 -91
- data/lib/rails/application/railties.rb +0 -13
- data/lib/rails/application/route_inspector.rb +0 -84
- data/lib/rails/commands/benchmarker.rb +0 -34
- data/lib/rails/commands/plugin.rb +0 -544
- data/lib/rails/commands/profiler.rb +0 -33
- data/lib/rails/generators/rails/app/templates/README +0 -261
- data/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb +0 -3
- 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/doc/README_FOR_APP +0 -2
- data/lib/rails/generators/rails/app/templates/public/stylesheets/.empty_directory +0 -0
- data/lib/rails/generators/rails/app/templates/script/rails +0 -5
- 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 +0 -12
- data/lib/rails/generators/rails/app/templates/test/unit/.empty_directory +0 -0
- data/lib/rails/generators/rails/generator/templates/templates/.empty_directory +0 -0
- data/lib/rails/generators/rails/observer/USAGE +0 -12
- data/lib/rails/generators/rails/observer/observer_generator.rb +0 -7
- data/lib/rails/generators/rails/performance_test/USAGE +0 -10
- data/lib/rails/generators/rails/performance_test/performance_test_generator.rb +0 -7
- 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/session_migration/USAGE +0 -8
- data/lib/rails/generators/rails/session_migration/session_migration_generator.rb +0 -8
- data/lib/rails/generators/test_unit/observer/observer_generator.rb +0 -13
- data/lib/rails/generators/test_unit/observer/templates/unit_test.rb +0 -9
- data/lib/rails/generators/test_unit/performance/performance_generator.rb +0 -13
- data/lib/rails/generators/test_unit/performance/templates/performance_test.rb +0 -12
- data/lib/rails/performance_test_help.rb +0 -3
- data/lib/rails/plugin.rb +0 -92
- data/lib/rails/script_rails_loader.rb +0 -29
@@ -1,8 +1,8 @@
|
|
1
1
|
require "rails/generators/named_base"
|
2
2
|
|
3
|
-
module Css
|
4
|
-
module Generators
|
5
|
-
class AssetsGenerator < Rails::Generators::NamedBase
|
3
|
+
module Css # :nodoc:
|
4
|
+
module Generators # :nodoc:
|
5
|
+
class AssetsGenerator < Rails::Generators::NamedBase # :nodoc:
|
6
6
|
source_root File.expand_path("../templates", __FILE__)
|
7
7
|
|
8
8
|
def copy_stylesheet
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require "rails/generators/named_base"
|
2
2
|
|
3
|
-
module Css
|
4
|
-
module Generators
|
5
|
-
class ScaffoldGenerator < Rails::Generators::NamedBase
|
3
|
+
module Css # :nodoc:
|
4
|
+
module Generators # :nodoc:
|
5
|
+
class ScaffoldGenerator < Rails::Generators::NamedBase # :nodoc:
|
6
6
|
# In order to allow the Sass generators to pick up the default Rails CSS and
|
7
7
|
# transform it, we leave it in a standard location for the CSS stylesheet
|
8
8
|
# generators to handle. For the simple, default case, just copy it over.
|
data/lib/rails/generators/erb.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'rails/generators/erb'
|
2
2
|
|
3
|
-
module Erb
|
4
|
-
module Generators
|
5
|
-
class ControllerGenerator < Base
|
6
|
-
argument :actions, :
|
3
|
+
module Erb # :nodoc:
|
4
|
+
module Generators # :nodoc:
|
5
|
+
class ControllerGenerator < Base # :nodoc:
|
6
|
+
argument :actions, type: :array, default: [], banner: "action action"
|
7
7
|
|
8
8
|
def copy_view_files
|
9
9
|
base_path = File.join("app/views", class_path, file_name)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'rails/generators/erb/controller/controller_generator'
|
2
2
|
|
3
|
-
module Erb
|
4
|
-
module Generators
|
5
|
-
class MailerGenerator < ControllerGenerator
|
3
|
+
module Erb # :nodoc:
|
4
|
+
module Generators # :nodoc:
|
5
|
+
class MailerGenerator < ControllerGenerator # :nodoc:
|
6
6
|
protected
|
7
7
|
|
8
8
|
def format
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'rails/generators/erb'
|
2
2
|
require 'rails/generators/resource_helpers'
|
3
3
|
|
4
|
-
module Erb
|
5
|
-
module Generators
|
6
|
-
class ScaffoldGenerator < Base
|
4
|
+
module Erb # :nodoc:
|
5
|
+
module Generators # :nodoc:
|
6
|
+
class ScaffoldGenerator < Base # :nodoc:
|
7
7
|
include Rails::Generators::ResourceHelpers
|
8
8
|
|
9
|
-
argument :attributes, :
|
9
|
+
argument :attributes, type: :array, default: [], banner: "field:type field:type"
|
10
10
|
|
11
11
|
def create_root_folder
|
12
12
|
empty_directory File.join("app/views", controller_file_path)
|
@@ -1,25 +1,29 @@
|
|
1
1
|
<h1>Listing <%= plural_table_name %></h1>
|
2
2
|
|
3
3
|
<table>
|
4
|
-
<
|
4
|
+
<thead>
|
5
|
+
<tr>
|
5
6
|
<% attributes.each do |attribute| -%>
|
6
|
-
|
7
|
+
<th><%= attribute.human_name %></th>
|
7
8
|
<% end -%>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
<th></th>
|
10
|
+
<th></th>
|
11
|
+
<th></th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
+
<tbody>
|
16
|
+
<%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
|
17
|
+
<tr>
|
15
18
|
<% attributes.each do |attribute| -%>
|
16
|
-
|
19
|
+
<td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
|
17
20
|
<% end -%>
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
<%% end %>
|
21
|
+
<td><%%= link_to 'Show', <%= singular_table_name %> %></td>
|
22
|
+
<td><%%= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>) %></td>
|
23
|
+
<td><%%= link_to 'Destroy', <%= singular_table_name %>, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
24
|
+
</tr>
|
25
|
+
<%% end %>
|
26
|
+
</tbody>
|
23
27
|
</table>
|
24
28
|
|
25
29
|
<br />
|
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'active_support/time'
|
2
|
-
require 'active_support/core_ext/object/inclusion'
|
3
|
-
require 'active_support/core_ext/object/blank'
|
4
2
|
|
5
3
|
module Rails
|
6
4
|
module Generators
|
7
|
-
class GeneratedAttribute
|
5
|
+
class GeneratedAttribute # :nodoc:
|
6
|
+
INDEX_OPTIONS = %w(index uniq)
|
7
|
+
UNIQ_INDEX_OPTIONS = %w(uniq)
|
8
|
+
|
8
9
|
attr_accessor :name, :type
|
9
10
|
attr_reader :attr_options
|
11
|
+
attr_writer :index_name
|
10
12
|
|
11
13
|
class << self
|
12
14
|
def parse(column_definition)
|
@@ -15,22 +17,35 @@ module Rails
|
|
15
17
|
# if user provided "name:index" instead of "name:string:index"
|
16
18
|
# type should be set blank so GeneratedAttribute's constructor
|
17
19
|
# could set it to :string
|
18
|
-
has_index, type = type, nil if
|
20
|
+
has_index, type = type, nil if INDEX_OPTIONS.include?(type)
|
19
21
|
|
20
22
|
type, attr_options = *parse_type_and_options(type)
|
23
|
+
type = type.to_sym if type
|
24
|
+
|
25
|
+
if type && reference?(type)
|
26
|
+
references_index = UNIQ_INDEX_OPTIONS.include?(has_index) ? { unique: true } : true
|
27
|
+
attr_options[:index] = references_index
|
28
|
+
end
|
29
|
+
|
21
30
|
new(name, type, has_index, attr_options)
|
22
31
|
end
|
23
32
|
|
33
|
+
def reference?(type)
|
34
|
+
[:references, :belongs_to].include? type
|
35
|
+
end
|
36
|
+
|
24
37
|
private
|
25
38
|
|
26
|
-
# parse possible attribute options like :limit for string/text/binary/integer
|
39
|
+
# parse possible attribute options like :limit for string/text/binary/integer, :precision/:scale for decimals or :polymorphic for references/belongs_to
|
27
40
|
# when declaring options curly brackets should be used
|
28
41
|
def parse_type_and_options(type)
|
29
42
|
case type
|
30
43
|
when /(string|text|binary|integer)\{(\d+)\}/
|
31
|
-
return $1, :
|
32
|
-
when /decimal\{(\d+)(
|
33
|
-
return :decimal, :
|
44
|
+
return $1, limit: $2.to_i
|
45
|
+
when /decimal\{(\d+)[,.-](\d+)\}/
|
46
|
+
return :decimal, precision: $1.to_i, scale: $2.to_i
|
47
|
+
when /(references|belongs_to)\{polymorphic\}/
|
48
|
+
return $1, polymorphic: true
|
34
49
|
else
|
35
50
|
return type, {}
|
36
51
|
end
|
@@ -39,9 +54,9 @@ module Rails
|
|
39
54
|
|
40
55
|
def initialize(name, type=nil, index_type=false, attr_options={})
|
41
56
|
@name = name
|
42
|
-
@type =
|
43
|
-
@has_index =
|
44
|
-
@has_uniq_index =
|
57
|
+
@type = type || :string
|
58
|
+
@has_index = INDEX_OPTIONS.include?(index_type)
|
59
|
+
@has_uniq_index = UNIQ_INDEX_OPTIONS.include?(index_type)
|
45
60
|
@attr_options = attr_options
|
46
61
|
end
|
47
62
|
|
@@ -75,16 +90,36 @@ module Rails
|
|
75
90
|
end
|
76
91
|
end
|
77
92
|
|
93
|
+
def plural_name
|
94
|
+
name.sub(/_id$/, '').pluralize
|
95
|
+
end
|
96
|
+
|
78
97
|
def human_name
|
79
|
-
name.
|
98
|
+
name.humanize
|
80
99
|
end
|
81
100
|
|
82
101
|
def index_name
|
83
|
-
|
102
|
+
@index_name ||= if polymorphic?
|
103
|
+
%w(id type).map { |t| "#{name}_#{t}" }
|
104
|
+
else
|
105
|
+
column_name
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def column_name
|
110
|
+
@column_name ||= reference? ? "#{name}_id" : name
|
111
|
+
end
|
112
|
+
|
113
|
+
def foreign_key?
|
114
|
+
!!(name =~ /_id$/)
|
84
115
|
end
|
85
116
|
|
86
117
|
def reference?
|
87
|
-
self.
|
118
|
+
self.class.reference?(type)
|
119
|
+
end
|
120
|
+
|
121
|
+
def polymorphic?
|
122
|
+
self.attr_options.has_key?(:polymorphic)
|
88
123
|
end
|
89
124
|
|
90
125
|
def has_index?
|
@@ -96,11 +131,11 @@ module Rails
|
|
96
131
|
end
|
97
132
|
|
98
133
|
def inject_options
|
99
|
-
"".tap { |s| @attr_options.each { |k,v| s << ",
|
134
|
+
"".tap { |s| @attr_options.each { |k,v| s << ", #{k}: #{v.inspect}" } }
|
100
135
|
end
|
101
136
|
|
102
137
|
def inject_index_options
|
103
|
-
has_uniq_index? ? ", :
|
138
|
+
has_uniq_index? ? ", unique: true" : ""
|
104
139
|
end
|
105
140
|
end
|
106
141
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require "rails/generators/named_base"
|
2
2
|
|
3
|
-
module Js
|
4
|
-
module Generators
|
5
|
-
class AssetsGenerator < Rails::Generators::NamedBase
|
3
|
+
module Js # :nodoc:
|
4
|
+
module Generators # :nodoc:
|
5
|
+
class AssetsGenerator < Rails::Generators::NamedBase # :nodoc:
|
6
6
|
source_root File.expand_path("../templates", __FILE__)
|
7
7
|
|
8
8
|
def copy_javascript
|
@@ -3,7 +3,6 @@ module Rails
|
|
3
3
|
# Holds common methods for migrations. It assumes that migrations has the
|
4
4
|
# [0-9]*_name format and can be used by another frameworks (like Sequel)
|
5
5
|
# just by implementing the next migration version method.
|
6
|
-
#
|
7
6
|
module Migration
|
8
7
|
attr_reader :migration_number, :migration_file_name, :migration_class_name
|
9
8
|
|
@@ -38,10 +37,7 @@ module Rails
|
|
38
37
|
# The migration version, migration file name, migration class name are
|
39
38
|
# available as instance variables in the template to be rendered.
|
40
39
|
#
|
41
|
-
# ==== Examples
|
42
|
-
#
|
43
40
|
# migration_template "migration.rb", "db/migrate/add_foo_to_bar.rb"
|
44
|
-
#
|
45
41
|
def migration_template(source, destination=nil, config={})
|
46
42
|
destination = File.expand_path(destination || source, self.destination_root)
|
47
43
|
|
@@ -56,7 +52,7 @@ module Rails
|
|
56
52
|
if destination && options.force?
|
57
53
|
remove_file(destination)
|
58
54
|
elsif destination
|
59
|
-
raise Error, "Another migration is already named #{@migration_file_name}: #{destination}"
|
55
|
+
raise Error, "Another migration is already named #{@migration_file_name}: #{destination}. Use --force to remove the old migration file and replace it."
|
60
56
|
end
|
61
57
|
destination = File.join(migration_dir, "#{@migration_number}_#{@migration_file_name}.rb")
|
62
58
|
end
|
@@ -5,12 +5,9 @@ require 'rails/generators/generated_attribute'
|
|
5
5
|
module Rails
|
6
6
|
module Generators
|
7
7
|
class NamedBase < Base
|
8
|
-
argument :name, :
|
9
|
-
class_option :skip_namespace, :
|
10
|
-
:
|
11
|
-
|
12
|
-
class_option :old_style_hash, :type => :boolean, :default => false,
|
13
|
-
:desc => "Force using old style hash (:foo => 'bar') on Ruby >= 1.9"
|
8
|
+
argument :name, type: :string
|
9
|
+
class_option :skip_namespace, type: :boolean, default: false,
|
10
|
+
desc: "Skip namespace (affects only isolated applications)"
|
14
11
|
|
15
12
|
def initialize(args, *options) #:nodoc:
|
16
13
|
@inside_template = nil
|
@@ -43,7 +40,7 @@ module Rails
|
|
43
40
|
|
44
41
|
def indent(content, multiplier = 2)
|
45
42
|
spaces = " " * multiplier
|
46
|
-
content = content.each_line.map {|line| "#{spaces}#{line}" }.join
|
43
|
+
content = content.each_line.map {|line| line.blank? ? line : "#{spaces}#{line}" }.join
|
47
44
|
end
|
48
45
|
|
49
46
|
def wrap_with_namespace(content)
|
@@ -87,10 +84,11 @@ module Rails
|
|
87
84
|
end
|
88
85
|
|
89
86
|
def namespaced_class_path
|
90
|
-
@namespaced_class_path ||=
|
91
|
-
|
92
|
-
|
93
|
-
|
87
|
+
@namespaced_class_path ||= [namespaced_path] + @class_path
|
88
|
+
end
|
89
|
+
|
90
|
+
def namespaced_path
|
91
|
+
@namespaced_path ||= namespace.name.split("::").map {|m| m.underscore }[0]
|
94
92
|
end
|
95
93
|
|
96
94
|
def class_name
|
@@ -106,7 +104,7 @@ module Rails
|
|
106
104
|
end
|
107
105
|
|
108
106
|
def i18n_scope
|
109
|
-
@i18n_scope ||= file_path.
|
107
|
+
@i18n_scope ||= file_path.tr('/', '.')
|
110
108
|
end
|
111
109
|
|
112
110
|
def table_name
|
@@ -137,7 +135,7 @@ module Rails
|
|
137
135
|
end
|
138
136
|
|
139
137
|
def route_url
|
140
|
-
@route_url ||= class_path.collect{|dname| "/" + dname
|
138
|
+
@route_url ||= class_path.collect {|dname| "/" + dname }.join + "/" + plural_file_name
|
141
139
|
end
|
142
140
|
|
143
141
|
# Tries to retrieve the application name or simple return application.
|
@@ -162,6 +160,13 @@ module Rails
|
|
162
160
|
end
|
163
161
|
end
|
164
162
|
|
163
|
+
def attributes_names
|
164
|
+
@attributes_names ||= attributes.each_with_object([]) do |a, names|
|
165
|
+
names << a.column_name
|
166
|
+
names << "#{a.name}_type" if a.polymorphic?
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
165
170
|
def pluralize_table_names?
|
166
171
|
!defined?(ActiveRecord::Base) || ActiveRecord::Base.pluralize_table_names
|
167
172
|
end
|
@@ -171,10 +176,10 @@ module Rails
|
|
171
176
|
#
|
172
177
|
# ==== Examples
|
173
178
|
#
|
174
|
-
# check_class_collision :
|
179
|
+
# check_class_collision suffix: "Decorator"
|
175
180
|
#
|
176
181
|
# If the generator is invoked with class name Admin, it will check for
|
177
|
-
# the presence of "
|
182
|
+
# the presence of "AdminDecorator".
|
178
183
|
#
|
179
184
|
def self.check_class_collision(options={})
|
180
185
|
define_method :check_class_collision do
|
@@ -187,16 +192,6 @@ module Rails
|
|
187
192
|
class_collisions "#{options[:prefix]}#{name}#{options[:suffix]}"
|
188
193
|
end
|
189
194
|
end
|
190
|
-
|
191
|
-
# Returns Ruby 1.9 style key-value pair if current code is running on
|
192
|
-
# Ruby 1.9.x. Returns the old-style (with hash rocket) otherwise.
|
193
|
-
def key_value(key, value)
|
194
|
-
if options[:old_style_hash] || RUBY_VERSION < '1.9'
|
195
|
-
":#{key} => #{value}"
|
196
|
-
else
|
197
|
-
"#{key}: #{value}"
|
198
|
-
end
|
199
|
-
end
|
200
195
|
end
|
201
196
|
end
|
202
197
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rails/generators/app_base'
|
2
2
|
|
3
3
|
module Rails
|
4
|
-
module ActionMethods
|
4
|
+
module ActionMethods # :nodoc:
|
5
5
|
attr_reader :options
|
6
6
|
|
7
7
|
def initialize(generator)
|
@@ -11,7 +11,7 @@ module Rails
|
|
11
11
|
|
12
12
|
private
|
13
13
|
%w(template copy_file directory empty_directory inside
|
14
|
-
|
14
|
+
empty_directory_with_keep_file create_file chmod shebang).each do |method|
|
15
15
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
16
16
|
def #{method}(*args, &block)
|
17
17
|
@generator.send(:#{method}, *args, &block)
|
@@ -38,7 +38,7 @@ module Rails
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def readme
|
41
|
-
copy_file "README", "README.rdoc"
|
41
|
+
copy_file "README.rdoc", "README.rdoc"
|
42
42
|
end
|
43
43
|
|
44
44
|
def gemfile
|
@@ -55,8 +55,19 @@ module Rails
|
|
55
55
|
|
56
56
|
def app
|
57
57
|
directory 'app'
|
58
|
-
|
59
|
-
|
58
|
+
|
59
|
+
keep_file 'app/mailers'
|
60
|
+
keep_file 'app/models'
|
61
|
+
|
62
|
+
keep_file 'app/controllers/concerns'
|
63
|
+
keep_file 'app/models/concerns'
|
64
|
+
end
|
65
|
+
|
66
|
+
def bin
|
67
|
+
directory "bin" do |content|
|
68
|
+
"#{shebang}\n" + content
|
69
|
+
end
|
70
|
+
chmod "bin", 0755, verbose: false
|
60
71
|
end
|
61
72
|
|
62
73
|
def config
|
@@ -81,39 +92,29 @@ module Rails
|
|
81
92
|
directory "db"
|
82
93
|
end
|
83
94
|
|
84
|
-
def doc
|
85
|
-
directory "doc"
|
86
|
-
end
|
87
|
-
|
88
95
|
def lib
|
89
|
-
empty_directory
|
90
|
-
|
91
|
-
|
96
|
+
empty_directory 'lib'
|
97
|
+
empty_directory_with_keep_file 'lib/tasks'
|
98
|
+
empty_directory_with_keep_file 'lib/assets'
|
92
99
|
end
|
93
100
|
|
94
101
|
def log
|
95
|
-
|
102
|
+
empty_directory_with_keep_file 'log'
|
96
103
|
end
|
97
104
|
|
98
105
|
def public_directory
|
99
|
-
directory "public", "public", :
|
100
|
-
end
|
101
|
-
|
102
|
-
def script
|
103
|
-
directory "script" do |content|
|
104
|
-
"#{shebang}\n" + content
|
105
|
-
end
|
106
|
-
chmod "script", 0755 & ~File.umask, :verbose => false
|
106
|
+
directory "public", "public", recursive: false
|
107
107
|
end
|
108
108
|
|
109
109
|
def test
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
110
|
+
empty_directory_with_keep_file 'test/fixtures'
|
111
|
+
empty_directory_with_keep_file 'test/controllers'
|
112
|
+
empty_directory_with_keep_file 'test/mailers'
|
113
|
+
empty_directory_with_keep_file 'test/models'
|
114
|
+
empty_directory_with_keep_file 'test/helpers'
|
115
|
+
empty_directory_with_keep_file 'test/integration'
|
116
|
+
|
117
|
+
template 'test/test_helper.rb'
|
117
118
|
end
|
118
119
|
|
119
120
|
def tmp
|
@@ -124,19 +125,14 @@ module Rails
|
|
124
125
|
def vendor
|
125
126
|
vendor_javascripts
|
126
127
|
vendor_stylesheets
|
127
|
-
vendor_plugins
|
128
128
|
end
|
129
129
|
|
130
130
|
def vendor_javascripts
|
131
|
-
|
131
|
+
empty_directory_with_keep_file 'vendor/assets/javascripts'
|
132
132
|
end
|
133
133
|
|
134
134
|
def vendor_stylesheets
|
135
|
-
|
136
|
-
end
|
137
|
-
|
138
|
-
def vendor_plugins
|
139
|
-
empty_directory_with_gitkeep "vendor/plugins"
|
135
|
+
empty_directory_with_keep_file 'vendor/assets/stylesheets'
|
140
136
|
end
|
141
137
|
end
|
142
138
|
|
@@ -144,14 +140,14 @@ module Rails
|
|
144
140
|
# We need to store the RAILS_DEV_PATH in a constant, otherwise the path
|
145
141
|
# can change in Ruby 1.8.7 when we FileUtils.cd.
|
146
142
|
RAILS_DEV_PATH = File.expand_path("../../../../../..", File.dirname(__FILE__))
|
147
|
-
RESERVED_NAMES = %w[application destroy
|
143
|
+
RESERVED_NAMES = %w[application destroy plugin runner test]
|
148
144
|
|
149
|
-
class AppGenerator < AppBase
|
145
|
+
class AppGenerator < AppBase # :nodoc:
|
150
146
|
add_shared_options_for "application"
|
151
147
|
|
152
148
|
# Add bin/rails options
|
153
|
-
class_option :version, :
|
154
|
-
:
|
149
|
+
class_option :version, type: :boolean, aliases: "-v", group: :rails,
|
150
|
+
desc: "Show Rails version number and quit"
|
155
151
|
|
156
152
|
def initialize(*args)
|
157
153
|
raise Error, "Options should be given after the application name. For details run: rails --help" if args[0].blank?
|
@@ -177,6 +173,10 @@ module Rails
|
|
177
173
|
build(:app)
|
178
174
|
end
|
179
175
|
|
176
|
+
def create_bin_files
|
177
|
+
build(:bin)
|
178
|
+
end
|
179
|
+
|
180
180
|
def create_config_files
|
181
181
|
build(:config)
|
182
182
|
end
|
@@ -194,10 +194,6 @@ module Rails
|
|
194
194
|
build(:db)
|
195
195
|
end
|
196
196
|
|
197
|
-
def create_doc_files
|
198
|
-
build(:doc)
|
199
|
-
end
|
200
|
-
|
201
197
|
def create_lib_files
|
202
198
|
build(:lib)
|
203
199
|
end
|
@@ -210,10 +206,6 @@ module Rails
|
|
210
206
|
build(:public_directory)
|
211
207
|
end
|
212
208
|
|
213
|
-
def create_script_files
|
214
|
-
build(:script)
|
215
|
-
end
|
216
|
-
|
217
209
|
def create_test_files
|
218
210
|
build(:test) unless options[:skip_test_unit]
|
219
211
|
end
|
@@ -244,7 +236,7 @@ module Rails
|
|
244
236
|
end
|
245
237
|
|
246
238
|
def app_name
|
247
|
-
@app_name ||= defined_app_const_base? ? defined_app_name : File.basename(destination_root)
|
239
|
+
@app_name ||= (defined_app_const_base? ? defined_app_name : File.basename(destination_root)).tr(".", "_")
|
248
240
|
end
|
249
241
|
|
250
242
|
def defined_app_name
|