aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Merge pull request #33962 from kaspth/restructure-environment-credentialsKasper Timm Hansen2019-01-143-42/+51
| |\ \ | | | | | | | | Restructure credentials after environment overrides.
| | * | Restructure credentials after environment overrides.Kasper Timm Hansen2019-01-143-42/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up to: e0d3313 - Revert renames from `encrypted` and `encrypted_file` back to `credentials`. They might be using our Encrypted* generators but from that level of abstraction they're still about credentials. - Same vein: extract a `credentials` method for the `encrypted` local variable. But don't call it `encrypted` just because it uses that under the hood. It's about capturing the credentials. It's also useful in `change_credentials_in_system_editor`. - Remove lots of needless argument passing. We've abstracted content_path and key_path into methods for a reason, so they should be used. Also spares a conspicuous rename of content_path into file_path in other methods. - Reorders private methods so they're grouped into: command building blocks, option parsers, and the generators. - Extracts commonality in the credentials application tests. A tad unsure about this. But I do like that we go with key, content thus matching the command and remove the yield which isn't really needed. - Moves test/credentials_test.rb to beneath the test/application directory. It's a Rails application test, so it should be in there. - Uses `root.join` — a neat trick gleaned from the tests! — and composes the configuration private methods such that the building block is below the callers.
| * | | Add connection_test to app generatorVladimir Dementyev2019-01-132-0/+15
| |/ /
| * | Merge pull request #34913 from ↵Gannon McGibbon2019-01-111-2/+2
| |\ \ | | | | | | | | | | | | | | | | bogdanvlviv/docs_config_action_mailer_delivery_job Add info about `config.action_mailer.delivery_job` to the guide [ci skip]
| | * | Add info about `config.action_mailer.delivery_job` to the guide [ci skip]bogdanvlviv2019-01-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, add mention to `new_framework_defaults_6_0.rb` that `ActionMailer::Parameterized::DeliveryJob` is default for parameterized mail and will be removed. Related to #34692
| * | | Replace `secrets` with `credentials` in commentsokuramasafumi2019-01-119-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In comments in templates for `config/database.yml`, there is a reference to `secrets.yml` which is now deprecated. They should be replaced with `credentials.yml` so that everyone using latest Rails can understand.
| * | | Move all npm packages to @rails scopeJavan Makhmali2019-01-103-7/+7
| |/ / | | | | | | | | | Fixes #33083
* | | Revise wording on invalid database error messagesGannon McGibbon2019-01-092-2/+2
| | |
* | | Add rails db:system:change commandGannon McGibbon2019-01-093-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `rails db:system:change` command for changing databases. ``` bin/rails db:system:change --to=postgresql force config/database.yml gsub Gemfile ``` The change command copies a template `config/database.yml` with the target database adapter into your app, and replaces your database gem with the target database gem.
* | | Move application generator naming and database code to concernsGannon McGibbon2019-01-095-87/+111
|/ /
* | Merge pull request #34692 from gmcgibbon/use_mail_delivery_job_in_6.0_defaultsRafael França2019-01-092-0/+13
|\ \ | | | | | | Move MailDeliveryJob default to 6.0 defaults
| * | Move MailDeliveryJob default to 6.0 defaultsGannon McGibbon2019-01-072-0/+13
| | |
* | | Enable `Lint/UselessAssignment` cop to avoid unused variable warnings (#34904)Ryuta Kamizono2019-01-092-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Enable `Lint/UselessAssignment` cop to avoid unused variable warnings Since we've addressed the warning "assigned but unused variable" frequently. 370537de05092aeea552146b42042833212a1acc 3040446cece8e7a6d9e29219e636e13f180a1e03 5ed618e192e9788094bd92c51255dda1c4fd0eae 76ebafe594fc23abc3764acc7a3758ca473799e5 And also, I've found the unused args in c1b14ad which raises no warnings by the cop, it shows the value of the cop.
* | | Preserve Bundle configuration during app generation (#34755)Marco Costa2019-01-091-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When generating a new rails application (rails new) using a custom template that includes gems from an authenticated source, the user has to provide credentials to bundler. One way to do this is by exporting environment variables, for example: export BUNDLE_GITHUB__COM=user:pass: provides credentials for bundler to fetch gems from github.com. The problem this PR addresses is that we are currently scrubs all /BUNDLE_.*/ environment variables by wrapping our system calls in Bundler.with_clean_env. We do this because we don't want our commands executed against the generated project to use the generator's bundler environment (e.g. our gems): the generated project should use it's own configuration. The problem with Bundler.with_clean_env is that, on top of restoring environment variables to their original state, it also scrubs any /BUNDLE_.*/ variables, which is harmful for authenticated gem sources. This PR replaces Bundler.with_clean_env with Bundler.with_original_env, which only restores environment variables to their initial state, without additional scrubbing.
* | | Revert "Merge pull request #34387 from yhirano55/rails_info_properties_json"Kasper Timm Hansen2019-01-082-14/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had a discussion on the Core team and we don't want to expose this information as a JSON endpoint and not by default. It doesn't make sense to expose this JSON locally and this controller is only accessible in dev, so the proposed access from a production app seems off. This reverts commit 8eaffe7e89719ac62ff29c2e4208cfbeb1cd1c38, reversing changes made to 133e0ba33db5887b047c9ac8233e5b414657bca5.
* | | Revert "Revert "Merge pull request #34387 from ↵Kasper Timm Hansen2019-01-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | yhirano55/rails_info_properties_json"" I reverted the wrong commit. Damn it. This reverts commit f66a977fc7ae30d2a07124ad91924c4ee638a703.
* | | Revert "Merge pull request #34387 from yhirano55/rails_info_properties_json"Kasper Timm Hansen2019-01-081-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had a discussion on the Core team and we don't want to expose this information as a JSON endpoint and not by default. It doesn't make sense to expose this JSON locally and this controller is only accessible in dev, so the proposed access from a production app seems off. This reverts commit 8eaffe7e89719ac62ff29c2e4208cfbeb1cd1c38, reversing changes made to b6e4305c3bca4c673996d0af9db0f4cfbf50215e.
* | | Merge pull request #34132 from ConfusedVorlon/enable_fragment_cache_log_in_devRafael França2019-01-081-0/+1
|\ \ \ | |/ / |/| | enable_fragment_cache_logging in dev by default
| * | enable_fragment_cache_loggingRob Jonson2018-10-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | fragment caching was refactored in (I think 5.2) and by default doesn't log cache info this is confusing in development where rails dev:cache now turns on caching, but doesn't show any different logging output better to enable debugging by default for dev - and let people turn it off if preferred
* | | Revert "Remove node_modules path from assets load paths since we use webpack ↵bogdanvlviv2019-01-061-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | by default" This reverts commit 129f8ac6ffcafb2e6e13c9ef13dda4cc47f5af0d. See https://github.com/rails/rails/commit/02d2958b6cd84d687d89112eb7e2306a6a89c082#commitcomment-31849196
* | | Merge pull request #34865 from cbandy/node_rails_envGeorge Claghorn2019-01-051-2/+1
|\ \ \ | | | | | | | | Respect Rails.env when running `rails yarn:install`
| * | | Respect Rails.env when running `rails yarn:install`Chris Bandy2019-01-041-2/+1
| | | | | | | | | | | | | | | | | | | | When no environment variables are set the expectation is that we are in development.
* | | | Add `--skip-action-text` option to `rails new`bogdanvlviv2019-01-052-1/+10
| | | | | | | | | | | | | | | | | | | | Since PR#34816 was merged in c6ef670aee186a2880b7be59c4c6892b5c983e58, we should add this option for flexibility, and consistency.
* | | | Generate Action Text's API docsGeorge Claghorn2019-01-041-0/+8
| | | |
* | | | Import Action TextGeorge Claghorn2019-01-041-0/+1
| | | |
* | | | Fix `new_framework_defaults_6_0.rb` filebogdanvlviv2019-01-041-1/+1
|/ / / | | | | | | | | | | | | `Rails.application.config.active_job.return_false_on_aborted_enqueue` should be commented as well.
* | | Send Active Storage jobs to dedicated queues by defaultGeorge Claghorn2019-01-042-2/+11
| | | | | | | | | Match Action Mailbox, which sets a default queue for each of its two jobs.
* | | Merge pull request #34816 from ↵Rafael Mendonça França2019-01-031-1/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | bogdanvlviv/add-skip-action-mailbox-option-to-rails-new-cmd Add `--skip-action-mailbox` option to `rails new`
| * | | Add `--skip-action-mailbox` option to `rails new`bogdanvlviv2018-12-281-1/+4
| | | | | | | | | | | | | | | | Related to https://github.com/rails/rails/commit/ddaf06779aa51d5d1ca462c21c53f2ed169a0d2f
* | | | Capistrano is no longer a dominant force in the deployment strategy for new appsDavid Heinemeier Hansson2019-01-031-3/+0
| | | |
* | | | Add Rake task for testing mailboxesGeorge Claghorn2018-12-301-1/+1
| | | |
* | | | Don't load Action Mailbox when Active Storage is skippedGeorge Claghorn2018-12-291-1/+1
| | | |
* | | | Do not show suggestion message when not exist suggestionyuuji.yaginuma2018-12-292-2/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **before** ``` $ ./bin/rails g g Could not find generator 'g'. Maybe you meant nil? Run `rails generate --help` for more options. ``` **after** ``` $ ./bin/rails g g Could not find generator 'g'. Run `rails generate --help` for more options. ```
* | | Don't load Action Mailbox when Active Record is skippedGeorge Claghorn2018-12-282-2/+7
| | |
* | | Load Action Mailbox when other components are skippedGeorge Claghorn2018-12-281-0/+1
| | |
* | | Generate Action Mailbox's API docsGeorge Claghorn2018-12-261-0/+8
| | |
* | | Import Action MailboxGeorge Claghorn2018-12-251-0/+1
| |/ |/|
* | Fix app boot for Ruby 2.4Eileen Uchitelle2018-12-211-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have a test app that was on Ruby 2.4. When I pulled Rails master the app no longer would boot because of this change and I saw the following error: ``` SyntaxError: /Users/eileencodes/open_source/real_rails/railties/lib/rails/all.rb:18: syntax error, unexpected keyword_rescue, expecting keyword_end rescue LoadError ^ ``` Ruby 2.4 doesn't support removing redundant begins so the real issue is that this app is on Ruby 2.4 and not on Ruby 2.5. But it's super confusing for a user to understand the reason the app is failing to boot is because we need Ruby 2.5. I added this redundant begin back because we need to give a clearer error message.
* | Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin blockRyuta Kamizono2018-12-212-10/+6
| | | | | | | | | | | | | | | | | | | | Currently we sometimes find a redundant begin block in code review (e.g. https://github.com/rails/rails/pull/33604#discussion_r209784205). I'd like to enable `Style/RedundantBegin` cop to avoid that, since rescue/else/ensure are allowed inside do/end blocks in Ruby 2.5 (https://bugs.ruby-lang.org/issues/12906), so we'd probably meets with that situation than before.
* | Require Ruby 2.5 for Rails 6.Kasper Timm Hansen2018-12-191-3/+3
| | | | | | | | | | | | | | | | | | | | Generally followed the pattern for https://github.com/rails/rails/pull/32034 * Removes needless CI configs for 2.4 * Targets 2.5 in rubocop * Updates existing CHANGELOG entries for fewer merge conflicts * Removes Hash#slice extension as that's inlined on Ruby 2.5. * Removes the need for send on define_method in MethodCallAssertions.
* | Add option to set parallel test worker count to the physical core count of ↵Bogdan2018-12-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the machine (#34735) * Add option to set parallel test worker count to the physical core count of the machine Also, use the physical core count of the machine as the default number of workers, and generate the `test_helper.rb` file with `parallelize(workers: :number_of_processors)` Closes #34734 * Ensure that we always test parallel testing Since #34734 we decided to use the physical core count of the machine as the default number of workers in the parallel testing, we need to ensure that some tests use at least 2 workers because we could run those tests on VM that has only 1 physical core. It also fixes tests failures on the CI since Travis server we are using has only one physical core. See https://travis-ci.org/rails/rails/jobs/469281088#L2352
* | Introduce a guard against DNS rebinding attacksGenadi Samokovarov2018-12-154-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ActionDispatch::HostAuthorization is a new middleware that prevent against DNS rebinding and other Host header attacks. By default it is included only in the development environment with the following configuration: Rails.application.config.hosts = [ IPAddr.new("0.0.0.0/0"), # All IPv4 addresses. IPAddr.new("::/0"), # All IPv6 addresses. "localhost" # The localhost reserved domain. ] In other environments, `Rails.application.config.hosts` is empty and no Host header checks will be done. If you want to guard against header attacks on production, you have to manually permit the allowed hosts with: Rails.application.config.hosts << "product.com" The host of a request is checked against the hosts entries with the case operator (#===), which lets hosts support entries of type RegExp, Proc and IPAddr to name a few. Here is an example with a regexp. # Allow requests from subdomains like `www.product.com` and # `beta1.product.com`. Rails.application.config.hosts << /.*\.product\.com/ A special case is supported that allows you to permit all sub-domains: # Allow requests from subdomains like `www.product.com` and # `beta1.product.com`. Rails.application.config.hosts << ".product.com"
* | Ruby can show a little bit more detailed info in shorter codeAkira Matsuda2018-12-151-1/+1
| | | | | | | | This follows up adb0c7bc5116e0f6020a4ec32b7e19ea8b26f1ec
* | http://localhost:3000/rails/info/properties shows more details for ease of ↵ujihisa2018-12-141-1/+1
| | | | | | | | | | | | bug reporting Hand-merging @ujihisa's ancient patch at https://lighthouseapp.com/projects/8994/tickets/3644
* | Do not show post install message on rails newRafael Mendonça França2018-12-131-4/+4
| |
* | Fix warning: shadowing outer local variable - attributeRyuta Kamizono2018-12-131-1/+1
| |
* | Merge pull request #34691 from gmcgibbon/rm_helper_generator_suffixRyuta Kamizono2018-12-131-0/+5
|\ \ | | | | | | | | | Remove redundant suffixes on generated helpers.
| * | Remove redundant suffixes on generated helpers.Gannon McGibbon2018-12-121-0/+5
| | |
* | | Remove redundant suffixes on generated integration tests.Gannon McGibbon2018-12-121-0/+6
|/ /
* | Fix boolean interaction in scaffold system testsGannon McGibbon2018-12-122-0/+13
| |