aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators
Commit message (Collapse)AuthorAgeFilesLines
* Add test parallelization to Railseileencodes2018-02-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provides both a forked process and threaded parallelization options. To use add `parallelize` to your test suite. Takes a `workers` argument that controls how many times the process is forked. For each process a new database will be created suffixed with the worker number; test-database-0 and test-database-1 respectively. If `ENV["PARALLEL_WORKERS"]` is set the workers argument will be ignored and the environment variable will be used instead. This is useful for CI environments, or other environments where you may need more workers than you do for local testing. If the number of workers is set to `1` or fewer, the tests will not be parallelized. The default parallelization method is to fork processes. If you'd like to use threads instead you can pass `with: :threads` to the `parallelize` method. Note the threaded parallelization does not create multiple database and will not work with system tests at this time. parallelize(workers: 2, with: :threads) The threaded parallelization uses Minitest's parallel exector directly. The processes paralleliztion uses a Ruby Drb server. For parallelization via threads a setup hook and cleanup hook are provided. ``` class ActiveSupport::TestCase parallelize_setup do |worker| # setup databases end parallelize_teardown do |worker| # cleanup database end parallelize(workers: 2) end ``` [Eileen M. Uchitelle, Aaron Patterson]
* Don't overwrite config/master.key even on --forceclaudiob2018-02-121-1/+3
| | | | | | | | | | | | See https://github.com/rails/rails/pull/31957#issuecomment-364817423 The purpose of `--force` is not to have any prompt whether a file should be kept or overwritten. In general, all existing files should be overwritten. However, `config/master.key` is special because it is git-ignored, and overwriting it will cause the app not to run (since there won't be a way to decrypt the credentials). As a result, it's probably better to keep the existing config/master.key.
* Do not update `load_defaults` version when running `app:update` (#31951)Yuji Yaginuma2018-02-132-1/+7
| | | | | Incompatible settings are included in the settings set by `load_defaults`. So, I think that target version should be updated by a user when becomes available, and should not be updated with `app:update`.
* Respect --force option for config/master.keyclaudiob2018-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is similar to #30700 which ensures the `--quiet` option of `rails new` is respected by the `MasterKeyGenerator` (missing from #30067). Before this commit, running `rails new app --force` would still prompt the user what to do with the conflict in `config/master.key`: ``` … identical config/locales/en.yml conflict config/master.key Overwrite /Users/claudiob/Desktop/pizza/config/master.key? (enter "h" for help) [Ynaqdh] ``` After this commit, `config/master.key` is overwritten: ``` … identical config/locales/en.yml force config/master.key append .gitignore ``` The newly added test generates an app and then generates it again with `--force`. Without this commit, the test would just wait forever for user input.
* Merge pull request #31949 from rails/remove-moveClaudio B2018-02-091-2/+0
|\ | | | | Remove warning from 4 years ago [ci skip]
| * Remove warning from 4 years ago [ci skip]claudiob2018-02-091-2/+0
| | | | | | | | | | `config/initializers/assets.rb` has been a part of Rails apps since Rails 4.2 (30b56084). This comment is probably unnecessary by now.
* | Use heredoc with credentials templateYoshiyuki Hirano2018-02-092-4/+16
|/ | | | | * Use heredoc with credentials template. * Fix indentation for aws config
* Add nodoc to `CredentialsGenerator` and `MasterKeyGenerator` [ci skip]yuuji.yaginuma2018-02-032-2/+2
| | | | These classes are internally used only.
* Removed "private" generators from command list.Wojciech Wnętrzak2018-02-022-18/+2
| | | | | | | | | | | | | | | | | | | | Appropriate way to handle encrypted command is by `bin/rails credentials` and `bin/rails encrypted` It was displayed on `bin/rails generate` command: ``` Please choose a generator below. Rails: application_record assets channel controller encrypted_file encryption_key_file generator ... ```
* Disable CSP by defaultRafael Mendonça França2018-01-301-10/+10
| | | | | | | | Before this patch, to be able to use webpacker and webconsole we were defining an used default in the script-src policy. White we don't implement the automatic nonce approach defined in https://github.com/rails/rails/issues/31689 it is better to not have any default configuration in Rails 5.2.
* Merge pull request #31769 from justjake/patch-2Matthew Draper2018-01-301-1/+1
|\ | | | | | | yarnpkg: correct exec syntax
| * yarnpkg: correct exec syntaxJake Teton-Landis2018-01-231-1/+2
|/ | | Previous change didn’t expand this array of arguments
* bin/yarn: Pass through arguments with spacesJake Teton-Landis2018-01-211-1/+1
| | | | | | Previously, the `bin/yarn` wrapper would "unquote" arguments to yarn like this: `yarn run add-copyright "(c) 2017, 2018 MyCompany"` That results in an ARGV of ['run', 'add-copyright', '(c) 2017, 2018 MyCompany'] in the yarn wrapper, but a ARGV in the yarn executable of ['run', 'add-copyright', '(c)', '2017,', '2018', MyCompany']
* Merge pull request #31641 from ckoenig/remove_frozen_string_literalYuji Yaginuma2018-01-201-4/+6
|\ | | | | Use dup'ed options hash
| * Work on a dup'ed options hashChristof Koenig2018-01-091-4/+6
| | | | | | | | | | | | | | | | | | | | Otherwise, at least using JRuby, the replacements in convert_database_option_for_jruby won't work. Thus a call to bundle exec rails app:update fails. Simply replacing those replace statements doesn't seem to work either, since the options hash seems to be frozen, too.
* | Merge pull request #31732 from ↵Matthew Draper2018-01-191-2/+2
|\ \ | | | | | | | | | | | | koic/enable_autocorrect_for_lint_end_alignment_cop Enable autocorrect for `Lint/EndAlignment` cop
| * | Enable autocorrect for `Lint/EndAlignment` copKoichi ITO2018-01-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Summary This PR changes .rubocop.yml. Regarding the code using `if ... else ... end`, I think the coding style that Rails expects is as follows. ```ruby var = if cond a else b end ``` However, the current .rubocop.yml setting does not offense for the following code. ```ruby var = if cond a else b end ``` I think that the above code expects offense to be warned. Moreover, the layout by autocorrect is unnatural. ```ruby var = if cond a else b end ``` This PR adds a setting to .rubocop.yml to make an offense warning and autocorrect as expected by the coding style. And this change also fixes `case ... when ... end` together. Also this PR itself is an example that arranges the layout using `rubocop -a`. ### Other Information Autocorrect of `Lint/EndAlignment` cop is `false` by default. https://github.com/bbatsov/rubocop/blob/v0.51.0/config/default.yml#L1443 This PR changes this value to `true`. Also this PR has changed it together as it is necessary to enable `Layout/ElseAlignment` cop to make this behavior.
* | | Merge pull request #31730 from ↵Eileen M. Uchitelle2018-01-181-1/+1
|\ \ \ | | | | | | | | | | | | | | | | bogdanvlviv/allow_false_for-config-generators-system_tests Allow `false` for `config.generators.system_tests=`
| * | | Allow `false` for `config.generators.system_tests=`bogdanvlviv2018-01-181-1/+1
| |/ / | | | | | | | | | | | | Mention `config.generators.system_tests` in the "Configuring Rails Applications" guide.
* / / Revert "Merge pull request #31434 from olivierlacan/boot-feedback"Matthew Draper2018-01-191-4/+0
|/ / | | | | | | | | | | | | | | | | This reverts commit edc54fd2068bc21f0d381228e55d97e32f508923, reversing changes made to a5922f132f4d163e2c7f770427087f5268c18def. As discussed, this is not an appropriate place to make assumptions about ARGV, or to write to stdout: config/boot.rb is a library and is required by other applictions, with which we have no right to interfere.
* | Provide a sensible default hostGeorge Claghorn2018-01-161-2/+0
| |
* | Extract content types from blob dataGeorge Claghorn2018-01-151-0/+2
| |
* | Merge pull request #31572 from kami-zh/fix-templateYuji Yaginuma2018-01-131-2/+3
|\ \ | | | | | | Fix comment about initializers to adapt to the fact
| * | Fix comment about initializers to adapt to the factkami-zh2017-12-271-2/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Currently the comment says application configuration should go into files in `config/initializers`. However some configuration couldn't initialize correctly because of the initializing process(e.g. `config.time_zone`). It should be changed by framework but this is large change and it may occur malfunction to some applications which depends on current initializing process. So this comment is changed to adapt to the fact.
* | Merge pull request #31651 from eugeneius/use_sha1_digestsSean Griffin2018-01-121-0/+3
|\ \ | | | | | | Use SHA-1 for non-sensitive digests by default
| * | Use SHA-1 for non-sensitive digests by defaultEugene Kenny2018-01-081-0/+3
| |/ | | | | | | | | | | Instead of providing a configuration option to set the hash function, switch to SHA-1 for new apps and allow upgrading apps to opt in later via `new_framework_defaults_5_2.rb`.
* | Use unsafe_inline as the default for script_src CSP until we get a nonce ↵David Heinemeier Hansson2018-01-121-1/+1
| | | | | | | | | | | | | | alternative Closes #31273 but we will still want to upgrade this to the nonce-approach when it’s ready.
* | Add note about having to restart when modifying initializerDavid Heinemeier Hansson2018-01-121-0/+2
| |
* | Use complete variable names rather than single-letter abbreviations for styleDavid Heinemeier Hansson2018-01-121-8/+8
| |
* | PostgreSQL: Allow pg-1.0 gem to be used with ActiveRecordLars Kanis2018-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | pg-1.0.0 is just released and most Gemfiles don't restrict it's version. But the version is checked when connecting to the database, which leads to the following error: Gem::LoadError: can't activate pg (~> 0.18), already activated pg-1.0.0 See also this pg issue: https://bitbucket.org/ged/ruby-pg/issues/270/pg-100-x64-mingw32-rails-server-not-start Preparation for pg-1.0 was done in commit f28a331023fab, but the pg version constraint was not yet relaxed.
* | Merge pull request #31534 from claudiob/kaspth-approachKasper Timm Hansen2018-01-092-11/+0
|\ \ | |/ |/| Don't include Active Storage migrations in new apps
| * Don't run rails active_storage:install in new appsclaudiob2017-12-142-11/+0
| | | | | | | | See #31315 for full discussion
* | Removes OS specific directory separatorDaniel Lopez2017-12-211-1/+1
| |
* | Remove verbose_query_logs from new_framework_defaults_5_2.rbEugene Kenny2017-12-201-3/+0
| | | | | | | | | | | | | | | | | | | | | | The `app:update` rake task will regenerate `development.rb` so that it contains this option; that means we're currently adding it to existing apps in two places, which is unnecessary and confusing. Also: - Remove inaccurate comment about which stack frames are ignored - Clarify that the feature uses `caller_locations`, not `caller` - Remove unused return value in `extract_callstack`
* | Implicitly skip bootsnap for `rails new --dev`yuuji.yaginuma2017-12-191-1/+1
| | | | | | | | | | | | | | Specifying the `--dev` option is when want to change the codebase, as it is not necessary to cache it. Context: https://github.com/rails/rails/pull/31485#issuecomment-352452653
* | Merge pull request #31348 from y-yagi/fix_31283Kasper Timm Hansen2017-12-182-2/+3
|\ \ | | | | | | Raise an error only when `require_master_key` is specified
| * | Raise an error only when `require_master_key` is specifiedyuuji.yaginuma2017-12-182-2/+3
| |/ | | | | | | | | | | | | | | | | To prevent errors from being raise in environments where credentials is unnecessary. Context: https://github.com/rails/rails/issues/31283#issuecomment-348801489 Fixes #31283
* | Update new_framework_defaults_5_2.rb.ttAnton Rieder2017-12-181-1/+1
| | | | | | Be consistent in comments when mentioning AES.
* | Add `skip_bootsnap` optionyuuji.yaginuma2017-12-163-0/+11
|/ | | | | | `bootsnap` is a useful gem normally. However, `bootsnap` is unnecessary when generating a Rails application to be used only for testing. So I want to control whether use this or not by option.
* Merge pull request #31434 from olivierlacan/boot-feedbackSean Griffin2017-12-141-0/+4
|\ | | | | Provide instant feedback when booting Rails
| * Provide instant feedback when booting RailsOlivier Lacan2017-12-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've noticed during pair/mob programming sessions with peers that despite the speed boosts provided by Bootsnap and Spring, there is a noticeable latency between firing a bin/rails server command and any feedback being provided to the console. Depending on the size of the application this lack of feedback can make it seem like something is wrong when Rails is simply busy initializing. This change may seem gratuitous but by just printing one line to STDOUT we're giving a clear signal to the Rails user that their command has been received and that Rails is indeed booting. It almost imperciptibly makes Rails feel more responsive. Sure the code doesn't look very fancy but there's no other appropriate place I could think of putting it than boot.rb. Compare these two GIFs of booting without and with this change: Before: ![Without Boot Feedback](https://user-images.githubusercontent.com/65950/33964140-721041fc-e025-11e7-9b25-9d839ce92977.gif) After: ![With Boot Feedback](https://user-images.githubusercontent.com/65950/33964151-79e12f86-e025-11e7-93e9-7a75c70d408f.gif)
* | Log call site for all queriesOlivier Lacan2017-12-132-0/+6
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new ActiveRecord configuration option allows you to easily pinpoint what line of application code is triggering SQL queries in the development log by appending below each SQL statement log the line of Ruby code that triggered it. It’s useful with N+1 issues, and to locate stray queries. By default this new option ignores Rails and Ruby code in order to surface only callers from your application Ruby code or your gems. It is enabled on newly generated Rails 5.2 applications and can be enabled on existing Rails applications: ```ruby Rails.application.configure do # ... config.active_record.verbose_query_logs = true end ``` The `rails app:upgrade` task will also add it to `config/development.rb`. This feature purposely avoids coupling with ActiveSupport::BacktraceCleaner since ActiveRecord can be used without ActiveRecord. This decision can be reverted in the future to allow more configurable backtraces (the exclusion of gem callers for example).
* Revert "remove unnecessary `RAILS_ENV` setting"Aaron Patterson2017-12-082-0/+4
| | | | This reverts commit 9a80f52541ed2c93ebef02909ecab3aaf9127150.
* Merge pull request #31241 from matthewd/no-after-forkMatthew Draper2017-12-011-23/+1
|\ | | | | Drop the before_fork/on_worker_boot advice
| * Drop the before_fork/on_worker_boot adviceMatthew Draper2017-11-271-23/+1
| | | | | | | | | | It's no longer required for Active Record, and other common libraries (dalli, redis-rb) all seem to be fork-proof too.
* | Move system test dependencies to test groupAnton Rieder2017-11-301-7/+10
| |
* | Do not overwrite by default if credentials already existsyuuji.yaginuma2017-11-301-2/+4
| | | | | | | | Fixes #31286
* | Build the root folder before specific filesRafael Mendonça França2017-11-291-8/+8
| | | | | | | | Fixes #31282.
* | Use `credentials` instead of `keyfile` in GCS seviceyuuji.yaginuma2017-11-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The `keyfile` was renamed to `credentials` in `google-cloud-storage` 1.8.0. https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/google-cloud-storage/CHANGELOG.md#180--2017-11-14 Although `keyfile` can still be used, but it looks like deprecate. https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/ddf7b2a856d676316525eb581c1a4cc83ca6097b/google-cloud-storage/lib/google/cloud/storage.rb#L589...L590 Therefore, I think that should use `credentials` in newly generated applications. Ref: https://github.com/GoogleCloudPlatform/google-cloud-ruby/issues/1802
* | Use same version constraint in mysql adapter and generated applicationyuuji.yaginuma2017-11-281-1/+1
| | | | | | | | Follow up of 924a368f5c654f5304e575c767eb0fc64adc8659