Commit Graph

12195 Commits

Author SHA1 Message Date
npezza93
260d6f112a
Change form_with to generates ids by default
When `form_with` was introduced we disabled the automatic
generation of ids that was enabled in `form_for`. This usually
is not an good idea since labels don't work when the input
doesn't have an id and it made harder to test with Capybara.

You can still disable the automatic generation of ids setting
`config.action_view.form_with_generates_ids` to `false.`
2017-11-25 11:55:02 -05:00
Dixit Patel
88d9906d2d Rubocop style 2017-11-24 20:11:17 +05:30
willnet
424debb096 Fix generator suggestion raise error when I18n.available_locales don’t include :en 2017-11-22 09:27:59 +09:00
yuuji.yaginuma
83cb0fc632 Fix formatting of credentials and encrypted [ci skip] 2017-11-19 14:42:45 +09:00
yuuji.yaginuma
60c550370a Deprecate an after_bundle callback in Rails plugin templates
Since fbd1e98cf983572ca9884f17f933ffe92833632a, Rails plugin does not
run `bundle install` when generating.
Therefore, `after_bundle` callback is not actually executed after `bundle`.

Since there is a difference between the name and the actual behavior,
I think that should be remove.
2017-11-18 12:23:53 +09:00
Wojciech Wnętrzak
23b9ad5fb1
Fixed example of Rails.application.encrypted method usage
[ci skip]
2017-11-16 09:52:51 +01:00
yuuji.yaginuma
f27319a72a Add master key to gitignore on rails new
We generate master key on `rails new`.
Therefore, if do not add master key to `.gitginore` on `rails new`as
well, there is a possibility that the master key will be committed
accidentally.
2017-11-16 08:31:58 +09:00
Kasper Timm Hansen
059d1edcbc
Pass options onto key file generator. 2017-11-15 22:00:54 +01:00
Kasper Timm Hansen
68479d09ba
Merge branch 'freeletics-manage-multiple-credential-files'
Fixes https://github.com/rails/rails/pull/30940
2017-11-15 21:31:57 +01:00
Wojciech Wnętrzak
7a8728a039
Add CLI to manage encrypted files/configs.
To edit/show encrypted file:

```
bin/rails encrypted:edit config/staging_tokens.yml.enc
bin/rails encrypted:edit config/staging_tokens.yml.enc --key config/staging.key
bin/rails encrypted:show config/staging_tokens.yml.enc
```

Also provides a backing Rails.application.encrypted API for Ruby access:

```ruby
Rails.application.encrypted("config/staging_tokens.yml.enc").read
Rails.application.encrypted("config/staging_tokens.yml.enc").config
Rails.application.encrypted("config/staging_tokens.yml.enc", key: "config/staging.key")
```
2017-11-15 21:29:15 +01:00
Kasper Timm Hansen
415d0543a5
Go through a single credentials instance.
Instead of stashing the values in constants.
2017-11-15 21:14:25 +01:00
Yuji Yaginuma
874dae1fd4
Merge pull request #30004 from npenzin/patch-1
Update plugin_generator.rb
2017-11-15 07:38:14 +09:00
Rafael Mendonça França
2e0fe5928f
Use released arel 2017-11-14 14:37:59 -05:00
Nikita Penzin
5345b61f29 Ensure plugin_generator adds to new line in Gemfile
Ensure plugin_generator adds to new line in Gemfile, even if the Gemfile
does not end with an empty line.

[Lisa Ugray, Nikita Penzin]
2017-11-14 08:09:12 -05:00
Yuji Yaginuma
b6d5e46311
Add environment as dependency of load_config (#31135)
Currently the environment is not loaded in some db tasks.
Therefore, if use encrypted secrets values in `database.yml`,
`read_encrypted_secrets` will not be true, so the value can not be
used correctly.

To fix this, added `environment` as dependency of `load_config`.
It also removes explicit `environment` dependencies that are no longer
needed.

Fixes #30717
2017-11-14 13:54:58 +09:00
Rafael Mendonça França
8dd76a7a6f
Use .tt extension to all the template files
Make clear that the files are not to be run for interpreters.

Fixes #23847.
Fixes #30690.
Closes #23878.
2017-11-13 15:23:28 -05:00
Eileen M. Uchitelle
a45f234b02
Merge pull request #30773 from y-yagi/fix_30765
Make automatically synchronize test schema work inside engine
2017-11-12 19:18:49 -05:00
Kasper Timm Hansen
5744d00f5d
Revert displaying master key generation info on rails new.
It's already a default for new apps, like so many others, so
no need to flaunt it.
2017-11-12 20:29:35 +01:00
Kasper Timm Hansen
bb30f05f38
Deprecate encrypted secrets in favor of credentials.
Allow edits of existing encrypted secrets generated on Rails 5.1,
but refer to credentials when attempting to setup.

This also removes the need for any of the setup code, so the
generator can be ripped out altogether.
2017-11-12 17:50:09 +01:00
Kasper Timm Hansen
99f4d6e744
Merge pull request #30770 from y-yagi/do_not_create_credential_in_dummy_application
Do not create credentials in dummy application
2017-11-12 14:41:42 +01:00
Ryuta Kamizono
095079abec Adjust blank lines 2017-11-10 21:06:13 +09:00
yuuji.yaginuma
d1e0bc7c17 Do not show credentials in generators help
Since credentials generator is executed via the credentials command and
does not need to be executed directly, so it is not necessary to show it in
help.
2017-11-09 20:59:16 +09:00
Rafael França
7b766bd871
Merge pull request #31093 from bogdanvlviv/express-console-command-in-the-log
Change output log about skipping instalation of Active Storage
2017-11-08 18:03:51 -05:00
bogdanvlviv
6f123341d9
Change output log about skipping instalation of Active Storage
Using of "`" is preferable over "'" to express console command in output log
2017-11-08 22:07:12 +00:00
bogdanvlviv
d5ad63766e
Remove redundant passing --skip-active-storage in test cases
These were added in #30101, after #31084 it became redundant.
2017-11-08 21:39:35 +00:00
yuuji.yaginuma
8e1dca10cd Remove unnecessary migration deletion
Since isolation application is generated with the `--skip-gemfile`
option, so `active_storage:install` is not executed.
2017-11-08 13:24:16 +09:00
yuuji.yaginuma
67db41aa7f Do not run active_storage:install when bundle install is skipped
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.
2017-11-08 13:24:12 +09:00
yuuji.yaginuma
3815845110 Fix comment in check_class_collision [ci skip]
`ScaffoldBase` was changed to `ResourceHelpers` by 0efedf2.
2017-11-07 14:23:16 +09:00
bogdanvlviv
90fe2a42f0
Fix bin/rails db:migrate with specified VERSION
Ensure that `bin/rails db:migrate` with specified `VERSION` reverts
all migrations only if `VERSION` is `0`.
Raise error if target migration doesn't exist.
2017-11-06 22:40:10 +00:00
Rafael França
63f0c04850
Merge pull request #30101 from bogdanvlviv/initialization-active_storage
Provide initialization of Active Storage
2017-11-06 17:25:54 -05:00
bogdanvlviv
cb8553c95d
Execution of active_storage:install should respect --quiet during rails new 2017-11-06 21:29:25 +00:00
bogdanvlviv
f4af77ab5d
Rails::Generators::Actions#execute_command allows option capture 2017-11-06 21:29:23 +00:00
bogdanvlviv
0835527d6b
rails new runs rails active_storage:install
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
2017-11-06 21:29:14 +00:00
bogdanvlviv
4a835aa323
Add --skip-active-storage and do so automatically when --skip-active-record is used
Closes #30102

Revert part 787fe90dc0a7c5b91bb5af51f2858ea8c4676268

--skip-active-storage pass throughs `rails plugin new`

Add changelog entry about default initialization of Active Storage
2017-11-06 21:08:51 +00:00
yuuji.yaginuma
bb6d369f89 Remove unused require
Since f182831, this file does not use methods added by `module/introspection`.
2017-11-06 16:53:36 +09:00
Eileen M. Uchitelle
03ac95a140
Merge pull request #31053 from y-yagi/fix_namespaced_generator
Generate the correct path in nested scaffold generator
2017-11-05 09:40:56 -05:00
yuuji.yaginuma
4dcb630c6e Generate the correct path in nested scaffold generator
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.
360698aa24/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
2017-11-05 13:46:28 +09:00
Akira Matsuda
85cda0f6f3 s/an/a/ 2017-11-04 20:11:36 +09:00
Ryuta Kamizono
802678d3dc Merge pull request #30813 from y-yagi/remove_unused_secrets_yml
Remove unused `secrets.yml` template
2017-10-26 03:44:41 +09:00
George Claghorn
0beb22d6d1 Merge pull request #30978 from y-yagi/change_vendor_path_to_app_root
Change `VENDOR_PATH` to `APP_ROOT` in `bin/yarn`
2017-10-24 20:42:17 -04:00
yuuji.yaginuma
510147c1c6 Change VENDOR_PATH to APP_ROOT in bin/yarn
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.
2c845f6b03/railties/lib/rails/generators/rails/app/templates/bin/setup.tt (L5)
2c845f6b03/railties/lib/rails/generators/rails/app/templates/bin/update.tt (L5)
2017-10-25 07:45:33 +09:00
Renan Gurgel
a4eed02741 add _ for unused last arg 2017-10-24 10:19:29 -03:00
Renan Gurgel
363eec42e9 Space between { and | missing.
Improve a code style recommendation following Rubocop instructions https://codeclimate.com/github/rails/rails/issues
2017-10-23 21:21:03 -03:00
Akira Matsuda
20df3f7786 Avoid slicing from Thor's original HWIA
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.
2017-10-22 01:53:11 +09:00
Akira Matsuda
6a728491b6 [Railties] require_relative => require
This basically reverts 618268b4b9382f4bcf004a945fe2d85c0bd03e32
2017-10-21 22:48:26 +09:00
Sean Griffin
9138f2da22 Merge pull request #30579 from bogdanvlviv/fix_ar_internal_metadata_for_a_test_database
Fix `bin/rails db:setup` and `bin/rails db:test:prepare` create  wrong ar_internal_metadata's data for a test database.
2017-10-18 15:24:06 -04:00
Guillermo Iguaran
62a38d8407 Improve out-of-box experience with System tests including chromedriver-helper by default 2017-10-18 10:48:27 -05:00
Ryuta Kamizono
6e1d8b8eb2 Merge pull request #30911 from y-yagi/remove_unnecessary_allow_failure_true
Remove unnecessary `allow_failure: true` option
2017-10-18 15:42:53 +09:00
yuuji.yaginuma
3695bbaf5f Remove unnecessary allow_failure: true option
`routes` task always returns zero to status, so status is not to non-zeno.
Ref: b1867c480d/railties/lib/rails/tasks/routes.rake (L30)
2017-10-18 15:03:01 +09:00
yuuji.yaginuma
116e2c67f5 Fix typo in allow_failure argument [ci skip]
Ref: 3be123ba26/railties/test/isolation/abstract_unit.rb (L243)
2017-10-18 14:34:02 +09:00