Commit Graph

12181 Commits

Author SHA1 Message Date
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
bogdanvlviv
678e563da3
ActiveRecord::Tasks::DatabaseTasks.load_schema has always to establish database connection
When load schema from `structure.sql`, database connection isn't
  established. `ActiveRecord::Tasks::DatabaseTasks.load_schema` has to
  establish database connection since it executes
  ```
  ActiveRecord::InternalMetadata.create_table
  ActiveRecord::InternalMetadata[:environment] = environment
  ```
2017-10-15 22:27:54 +03:00
bogdanvlviv
99b2bf8db3
Fix bin/rails db:setup and bin/rails db:test:prepare create wrong ar_internal_metadata's data for a test database.
Before:
  ```
  $ RAILS_ENV=test rails dbconsole
  > SELECT * FROM ar_internal_metadata;
  key|value|created_at|updated_at
  environment|development|2017-09-11 23:14:10.815679|2017-09-11 23:14:10.815679
  ```

  After:
  ```
  $ RAILS_ENV=test rails dbconsole
  > SELECT * FROM ar_internal_metadata;
  key|value|created_at|updated_at
  environment|test|2017-09-11 23:14:10.815679|2017-09-11 23:14:10.815679
  ```

  Fixes #26731.
2017-10-15 22:27:54 +03:00
yuuji.yaginuma
6a7559417f Fix test name for daemon option test
In this test file, "server option" refers to the server used to start
Rails(e.g. `puma`, `thin`).
But this test, "server option" is not specified. Therefore, I think that
it is incorrect that `server_option` is included in the test name.
2017-10-14 07:34:33 +09:00
Pierre Hedkvist
edf167e848 Added test case for starting rails with daemon option, this should set the option[:daemonize] to true, otherwise the option[:daemonize] will be set to false 2017-10-13 13:21:11 +00:00
yuuji.yaginuma
73c991c411 Fix "warning: assigned but unused variable - message"
Ruby 2.5 warns about this. Ref: https://travis-ci.org/rails/rails/jobs/286338999
2017-10-12 15:04:33 +09:00
Matthew Draper
ac1ee519fa Merge pull request #30595 from bogdanvlviv/use-railties-rails-command
Improve railties' tests
2017-10-10 07:13:16 +10:30
Ryuta Kamizono
3564cd9604 Merge pull request #30832 from y-yagi/simplify_console_test
Simplify parse arguments in `ConsoleTest`
2017-10-10 04:21:46 +09:00
Jeremy Daer
53c516d88d
redis-rb 4.0 support
* 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`
2017-10-08 15:37:54 -07:00
bogdanvlviv
2329207bec
Improve RakeTest#test_db_test_prepare_when_using_sql_format
- Remove redundant setting `RAILS_ENV` for `db:test:prepare`.
    `db:test:prepare` doesn't require it.
2017-10-08 23:29:28 +03:00
bogdanvlviv
0eb2d6079a
Invoke rails command inside the railties' test app with TestHelpers::Generation#rails
See #30520
2017-10-08 23:28:51 +03:00
bogdanvlviv
ff67743fb2
Remove redundant execution of Dir.chdir(app_path) { } in railties' tests 2017-10-08 23:04:04 +03:00
yuuji.yaginuma
c4bbce9697 Simplify parse arguments in ConsoleTest
If need a parse result of arguments, can obtain it by creating
an instance of the command.
2017-10-08 13:12:49 +09:00
yuuji.yaginuma
d342a35eaa Remove needless setup from InfoTest
The `abstract_unit` loads `rails/all`. Therefore, `Rails` is definitely defined.
Also, since `Info` is autoloaded, do not need to explicitly load the file.
3ede539357/railties/lib/rails.rb (L29)
2017-10-07 11:56:43 +09:00
yuuji.yaginuma
0bf8d1e4a6 Remove unused secrets.yml template
`secrets.yml` no longer used since #30067.
Together, removed `app_secret` method that only used in `secrets.yml`
2017-10-06 09:28:35 +09:00