aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators
Commit message (Collapse)AuthorAgeFilesLines
* Change output log about skipping instalation of Active Storagebogdanvlviv2017-11-081-1/+1
| | | | Using of "`" is preferable over "'" to express console command in output log
* Do not run `active_storage:install` when bundle install is skippedyuuji.yaginuma2017-11-081-1/+5
| | | | | | | In order to execute the `rails` command, need to run bundle install in advance. Therefore, if skipped bundle install, `rails` command may fail and should not do it.
* Fix comment in `check_class_collision` [ci skip]yuuji.yaginuma2017-11-071-1/+1
| | | | `ScaffoldBase` was changed to `ResourceHelpers` by 0efedf2.
* Merge pull request #30101 from bogdanvlviv/initialization-active_storageRafael França2017-11-0614-56/+116
|\ | | | | Provide initialization of Active Storage
| * Execution of `active_storage:install` should respect `--quiet` during `rails ↵bogdanvlviv2017-11-061-1/+1
| | | | | | | | new`
| * Rails::Generators::Actions#execute_command allows option `capture`bogdanvlviv2017-11-061-1/+7
| |
| * `rails new` runs `rails active_storage:install`bogdanvlviv2017-11-062-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Omit `rails activestorage:install` for jdbcmysql, jdbc and shebang tests AppGeneratorTest#test_config_jdbcmysql_database rails aborted! LoadError: Could not load 'active_record/connection_adapters/mysql_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile. (compressed) bin/rails:4:in `<main>' Tasks: TOP => activestorage:install => environment (See full trace by running task with --trace) AppGeneratorTest#test_config_jdbc_database rails aborted! LoadError: Could not load 'active_record/connection_adapters/jdbc_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile. (compressed) bin/rails:4:in `<main>' Tasks: TOP => activestorage:install => environment (See full trace by running task with --trace) AppGeneratorTest#test_shebang_is_added_to_rails_file /home/ubuntu/.rbenv/versions/2.4.1/bin/ruby: no Ruby script found in input (LoadError) Prevent PendingMigrationError in tests * Run `bin/rails db:migrate RAILS_ENV=test` in test_cases before start tests to prevent PendingMigrationError * FileUtils.rm_r("db/migrate") * --skip-active-storage Fix failed tests in `railties/test/railties/engine_test.rb` Related to #30111 Imporve `SharedGeneratorTests#test_default_frameworks_are_required_when_others_are_removed` - Explicitly skip active_storage - Ensure that skipped frameworks are commented - Ensure that default frameworks are not commented Fix error `Errno::ENOSPC: No space left on device - sendfile` Since `rails new` runs `rails active_storage:install` that boots an app. Since adding Bootsnap 0312a5c67e35b960e33677b5358c539f1047e4e1 during booting an app, it creates the cache: 264K tmp/cache/bootsnap-load-path-cache 27M tmp/cache/bootsnap-compile-cache * teardown_app must remove app
| * Add --skip-active-storage and do so automatically when --skip-active-record ↵bogdanvlviv2017-11-0613-55/+102
| | | | | | | | | | | | | | | | | | | | | | | | is used Closes #30102 Revert part 787fe90dc0a7c5b91bb5af51f2858ea8c4676268 --skip-active-storage pass throughs `rails plugin new` Add changelog entry about default initialization of Active Storage
* | Remove unused requireyuuji.yaginuma2017-11-061-1/+0
| | | | | | | | Since f182831, this file does not use methods added by `module/introspection`.
* | Generate the correct path in nested scaffold generatoryuuji.yaginuma2017-11-051-9/+9
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, namespaced scaffold generator will generate an incorrect path and the generated file will not work properly. ``` $ ./bin/rails g scaffold admin/user $ ./bin/rails db:migrate $ ./bin/rails t test/controllers # Running: E Error: Admin::UsersControllerTest#test_should_create_admin_user: NameError: undefined local variable or method `admin_admin_users_url' for #<Admin::UsersControllerTest:0x000055a59f25ff68> Did you mean? admin_users test/controllers/admin/users_controller_test.rb:20:in `block (2 levels) in <class:UsersControllerTest>' test/controllers/admin/users_controller_test.rb:19:in `block in <class:UsersControllerTest>' bin/rails test test/controllers/admin/users_controller_test.rb:18 ``` This is because combine `controller_class_path` and `singular_table_name` to generate route. https://github.com/rails/rails/blob/360698aa245b45349d1d1b12e1afb34759515e69/railties/lib/rails/generators/named_base.rb#L172 Normally, if using namspaced generator, table name already contains namespace. Therefore, adding `controller_class_path` adds extra namespace. Since it is special only when explicitly specifying `model-name`, it is modified to change the value only when `model-name`is specified. Follow up of #30729
* Merge pull request #30813 from y-yagi/remove_unused_secrets_ymlRyuta Kamizono2017-10-262-36/+0
|\ | | | | Remove unused `secrets.yml` template
| * Remove unused `secrets.yml` templateyuuji.yaginuma2017-10-062-36/+0
| | | | | | | | | | `secrets.yml` no longer used since #30067. Together, removed `app_secret` method that only used in `secrets.yml`
* | Merge pull request #30978 from y-yagi/change_vendor_path_to_app_rootGeorge Claghorn2017-10-241-2/+2
|\ \ | | | | | | Change `VENDOR_PATH` to `APP_ROOT` in `bin/yarn`
| * | Change `VENDOR_PATH` to `APP_ROOT` in `bin/yarn`yuuji.yaginuma2017-10-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variable was initially used to hold the vendor directory. https://github.com/rails/rails/commit/3dac36b Therefore, the variable name `VENDOR_PATH` was appropriate. However, `package.json` is now placed in the root of the project. https://github.com/rails/rails/commit/8e9e943 Therefore, like other bin scripts, I think the variable name `APP_ROOT` is appropriate. https://github.com/rails/rails/blob/2c845f6b03ddf2aa233b00385d24d769a4a34fa6/railties/lib/rails/generators/rails/app/templates/bin/setup.tt#L5 https://github.com/rails/rails/blob/2c845f6b03ddf2aa233b00385d24d769a4a34fa6/railties/lib/rails/generators/rails/app/templates/bin/update.tt#L5
* | | add _ for unused last argRenan Gurgel2017-10-241-1/+1
| | |
* | | Space between { and | missing.Renan Gurgel2017-10-231-1/+1
|/ / | | | | Improve a code style recommendation following Rubocop instructions https://codeclimate.com/github/rails/rails/issues
* | Avoid slicing from Thor's original HWIAAkira Matsuda2017-10-221-2/+1
| | | | | | | | | | | | | | | | Because `options` here is not AS::HWIA but an instance of Thor::CoreExt::HWIA that looks very similar to ours but behaves slightly different, we need to keep this object be an instance of Thor::CoreExt::HWIA. Since Ruby 2.5 has Hash#slice that returns a new Hash instance now, we need to avoid calling `slice` on this tricky object.
* | [Railties] require_relative => requireAkira Matsuda2017-10-2134-48/+48
| | | | | | | | This basically reverts 618268b4b9382f4bcf004a945fe2d85c0bd03e32
* | Improve out-of-box experience with System tests including ↵Guillermo Iguaran2017-10-181-0/+2
| | | | | | | | chromedriver-helper by default
* | redis-rb 4.0 supportJeremy Daer2017-10-081-1/+1
|/ | | | | | | | * Use `gem 'redis', '~> 4.0'` for new app Gemfiles * Loosen Action Cable redis-rb dep to `>= 3.3, < 5` * Bump redis-namespace for looser Redis version dep * Avoid using the underlying `redis.client` directly * Use `Redis.new` instead of `Redis.connect`
* Merge pull request #30729 from yalab/nested_scaffoldAaron Patterson2017-09-274-10/+39
|\ | | | | Nested scaffold should be fine
| * scaffold nested name controller should be fine.yalab2017-09-274-10/+39
| |
* | Merge pull request #30614 from kami-zh/yarn-on-bin-updateJavan Makhmali2017-09-271-0/+5
|\ \ | |/ |/| Align `bin/update`'s Yarn usage with `bin/setup`
| * Install JavaScript dependencies on updatekami-zh2017-09-161-0/+5
| |
* | Respect quiet option in all process of `rails new` commandyuuji.yaginuma2017-09-252-16/+16
| | | | | | | | | | If specify the `quiet` option, expect that no status will be shown. However, some process show status. This suppresses all status output.
* | Refactor Css::Generators::ScaffoldGeneratorYoshiyuki Hirano2017-09-251-3/+3
| | | | | | | | | | * define source_root by source_root method * it don't create file, but copy it.
* | Merge pull request #30657 from yhirano55/fix_restful_wordingRyuta Kamizono2017-09-201-1/+1
|\ \ | | | | | | Use RESTful instead of restful
| * | Use RESTful instead of restfulYoshiyuki Hirano2017-09-201-1/+1
| | |
* | | Use credentials in `storage.yml` templateyuuji.yaginuma2017-09-201-1/+1
| | | | | | | | | | | | Follow up of #30650
* | | Use credentials, not secrets, for Active Storage (#30650)Claudio B2017-09-192-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to #30067: > This PR will deprecate secrets.yml* and instead adopt > config/credentials.yml.enc to signify what these secrets are specifically > for: Keeping API keys, database passwords, and any other integration > credentials in one place. [ci skip] since only comments are being edited.
* | | Use the default Capybara registered puma server configurationThomas Walpole2017-09-181-1/+1
|/ /
* | Add `mini_magick` to default `Gemfile` as commentYoshiyuki Hirano2017-09-171-0/+3
| | | | | | | | | | | | * If we want to transform image on ActiveStorage, we should bundle `mini_magick`. * I've added comment block to default `Gemfile` to be easier to install this.
* | Remove frozen_string_literal magic comment from templatesyuuji.yaginuma2017-09-1712-24/+0
|/ | | | Follow up of #30348
* Inline the lone add_master_key_file_silently use.Kasper Timm Hansen2017-09-141-5/+1
|
* Merge pull request #30582 from y-yagi/do_no_add_master_key_and_credentialsKasper Timm Hansen2017-09-141-0/+4
|\ | | | | Do not add master key and credentials when `pretend` option is specified
| * Do not add master key and credentials when `pretend` option is specifiedyuuji.yaginuma2017-09-121-0/+4
| |
* | Make master key added to gitignore the same value as when creating appplicationyuuji.yaginuma2017-09-142-16/+15
|/ | | | | | | | | For gitignore generated by `rails new`, key with a leading slash is specified. https://github.com/rails/rails/blob/69f976b859cae7f9d050152103da018b7f5dda6d/railties/lib/rails/generators/rails/app/templates/gitignore#L11 Therefore, when executing `credentials:edit`, also need leading slack. In order to avoid such a difference, fixed to use same method for `rails new` and `credentials:edit`.
* Add credentials using a generic EncryptedConfiguration class (#30067)David Heinemeier Hansson2017-09-115-5/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: Add credentials using a generic EncryptedConfiguration class This is sketch code so far. * Flesh out EncryptedConfiguration and test it * Better name * Add command and generator for credentials * Use the Pathnames * Extract EncryptedFile from EncryptedConfiguration and add serializers * Test EncryptedFile * Extract serializer validation * Stress the point about losing comments * Allow encrypted configuration to be read without parsing for display * Use credentials by default and base them on the master key * Derive secret_key_base in test/dev, source it from credentials in other envs And document the usage. * Document the new credentials setup * Stop generating the secrets.yml file now that we have credentials * Document what we should have instead Still need to make it happen, tho. * [ci skip] Keep wording to `key base`; prefer defaults. Usually we say we change defaults, not "spec" out a release. Can't use backticks in our sdoc generated documentation either. * Abstract away OpenSSL; prefer MessageEncryptor. * Spare needless new when raising. * Encrypted file test shouldn't depend on subclass. * [ci skip] Some woordings. * Ditch serializer future coding. * I said flip it. Flip it good. * [ci skip] Move require_master_key to the real production.rb. * Add require_master_key to abort the boot process. In case the master key is required in a certain environment we should inspect that the key is there and abort if it isn't. * Print missing key message and exit immediately. Spares us a lengthy backtrace and prevents further execution. I've verified the behavior in a test app, but couldn't figure the test out as loading the app just exits immediately with: ``` /Users/kasperhansen/Documents/code/rails/activesupport/lib/active_support/testing/isolation.rb:23:in `load': marshal data too short (ArgumentError) from /Users/kasperhansen/Documents/code/rails/activesupport/lib/active_support/testing/isolation.rb:23:in `run' from /Users/kasperhansen/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/minitest-5.10.2/lib/minitest.rb:830:in `run_one_method' from /Users/kasperhansen/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/minitest-5.10.2/lib/minitest/parallel.rb:32:in `block (2 levels) in start' ``` It's likely we need to capture and prevent the exit somehow. Kernel.stub(:exit) didn't work. Leaving it for tomorrow. * Fix require_master_key config test. Loading the app would trigger the `exit 1` per require_master_key's semantics, which then aborted the test. Fork and wait for the child process to finish, then inspect the exit status. Also check we aborted because of a missing master key, so something else didn't just abort the boot. Much <3 to @tenderlove for the tip. * Support reading/writing configs via methods. * Skip needless deep symbolizing. * Remove save; test config reader elsewhere. * Move secret_key_base check to when we're reading it. Otherwise we'll abort too soon since we don't assign the secret_key_base to secrets anymore. * Add missing string literal comments; require unneeded yaml require. * ya ya ya, rubocop. * Add master_key/credentials after bundle. Then we can reuse the existing message on `rails new bc4`. It'll look like: ``` Using web-console 3.5.1 from https://github.com/rails/web-console.git (at master@ce985eb) Using rails 5.2.0.alpha from source at `/Users/kasperhansen/Documents/code/rails` Using sass-rails 5.0.6 Bundle complete! 16 Gemfile dependencies, 72 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Adding config/master.key to store the master encryption key: 97070158c44b4675b876373a6bc9d5a0 Save this in a password manager your team can access. If you lose the key, no one, including you, can access anything encrypted with it. create config/master.key ``` And that'll be executed even if `--skip-bundle` was passed. * Ensure test app has secret_key_base. * Assign secret_key_base to app or omit. * Merge noise * Split options for dynamic delegation into its own method and use deep symbols to make it work * Update error to point to credentials instead * Appease Rubocop * Validate secret_key_base when reading it. Instead of relying on the validation in key_generator move that into secret_key_base itself. * Fix generator and secrets test. Manually add config.read_encrypted_secrets since it's not there by default anymore. Move mentions of config/secrets.yml to config/credentials.yml.enc. * Remove files I have no idea how they got here. * [ci skip] swap secrets for credentials. * [ci skip] And now, changelogs are coming.
* Explicitly require `test_unit/reporter` in test helperyuuji.yaginuma2017-09-041-0/+1
| | | | | | | | | | | If the user used the `bin/test` to execute the test, this file is automatically loaded, so require is unnecessary. https://github.com/rails/rails/blob/acea68de026ba657cb65c4dd0fc1f24ba67e1cf8/railties/lib/rails/plugin/test.rb#L4 However, when using `rake test`, an explicit require is required because the above file is not loaded. Fixes #30516
* Merge pull request #30323 from yhirano55/support_multiple_version_for_gem_methodMatthew Draper2017-08-311-5/+10
|\ | | | | Support multiple versions arguments for `gem` method of Generators
| * Support multiple versions arguments for `gem` method of GeneratorsYoshiyuki Hirano2017-08-191-5/+10
| |
* | Use REDIS_URL var for Action Cable config templateMr. Outis2017-08-221-1/+1
| |
* | Merge pull request #30348 from koic/remove_frozen_string_literal_from_templatesGeorge Claghorn2017-08-2141-83/+0
|\ \ | | | | | | Remove frozen_string_literal magic comment from templates
| * | Remove frozen_string_literal magic comment from templatesKoichi ITO2017-08-2241-83/+0
| | |
* | | Merge pull request #30352 from yhirano55/update_licenses_linkRyuta Kamizono2017-08-221-1/+1
|\ \ \ | |/ / |/| | Update MIT licenses link [ci skip]
| * | Update MIT licenses link [ci skip]Yoshiyuki Hirano2017-08-221-1/+1
| |/
* / Fix broken link to mysql docs in database.yml [ci skip]Yoshiyuki Hirano2017-08-222-2/+2
|/
* Move common tests from `AppGeneratorTest` and `PluginGeneratorTest` to ↵bogdanvlviv2017-08-172-0/+4
| | | | `SharedGeneratorTests`
* Merge pull request #30260 from kamipo/remove_unused_action_argRafael França2017-08-161-2/+3
|\ | | | | Remove unused `action` arg for `generate_routing_code`
| * Remove unused `action` arg for `generate_routing_code`Ryuta Kamizono2017-08-151-2/+3
| |