aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove code duplication for `ActionController::Metal.action`fatkodima2018-01-221-10/+8
|
* Merge pull request #31710 from eugeneius/indestructible_through_recordRyuta Kamizono2018-01-226-5/+24
|\ | | | | Don't update counter cache when through record was not destroyed
| * Don't update counter cache when through record was not destroyedEugene Kenny2018-01-146-5/+24
| | | | | | | | | | | | When removing a record from a has many through association, the counter cache was being updated even if the through record halted the callback chain and prevented itself from being destroyed.
* | Pass desired driver to Redis client constructor rather than munging global ↵George Claghorn2018-01-211-16/+12
| | | | | | | | config
* | Merge pull request #31753 from justjake/patch-1George Claghorn2018-01-211-1/+1
|\ \ | | | | | | bin/yarn: Pass through arguments with spaces
| * | 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 #31757 from composerinteralia/define-attributeRyuta Kamizono2018-01-221-1/+1
|\ \ \ | | | | | | | | Use singular define_attribute_method
| * | | Use singular define_attribute_methodDaniel Colson2018-01-211-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | `define_attribute_methods` splats the arguments, then calls out to `define_attribute_method` for each. When defining a singule attribute, using the singular version of the method saves us an array and an extra method call.
* / / PERF: Recover `changes_applied` performance (#31698)Ryuta Kamizono2018-01-224-75/+45
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #30985 caused `object.save` performance regression since calling `changes` in `changes_applied` is very slow. We don't need to call the expensive method in `changes_applied` as long as `@attributes` is tracked by mutation tracker. https://gist.github.com/kamipo/1a9f4f3891803b914fc72ede98268aa2 Before: ``` Warming up -------------------------------------- create_string_columns 73.000 i/100ms Calculating ------------------------------------- create_string_columns 722.256 (± 5.8%) i/s - 3.650k in 5.073031s ``` After: ``` Warming up -------------------------------------- create_string_columns 96.000 i/100ms Calculating ------------------------------------- create_string_columns 950.224 (± 7.7%) i/s - 4.800k in 5.084837s ```
* | Cope with videos with undefined display aspect ratiosGeorge Claghorn2018-01-203-2/+15
| |
* | 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.
* | | More exercise `ActiveModel::Dirty` testsRyuta Kamizono2018-01-201-3/+24
| | |
* | | Merge pull request #31749 from jameslovejoy/fix-documentationRyuta Kamizono2018-01-202-7/+7
|\ \ \ | | | | | | | | | | | | | | | | Fix typos and improve text_helper documentation regarding sanitization [ci skip]
| * | | Fix typos. Improve text_helper documentation.James Lovejoy2018-01-192-7/+7
|/ / / | | | | | | | | | [ci skip]
* | | Use helper methodGeorge Claghorn2018-01-191-1/+2
| | |
* | | Preserve display aspect ratio for videos with rectangular samplesGeorge Claghorn2018-01-194-19/+62
| | |
* | | Merge pull request #31732 from ↵Matthew Draper2018-01-1913-15/+19
|\ \ \ | | | | | | | | | | | | | | | | koic/enable_autocorrect_for_lint_end_alignment_cop Enable autocorrect for `Lint/EndAlignment` cop
| * | | Enable autocorrect for `Lint/EndAlignment` copKoichi ITO2018-01-1813-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### 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.
* | | | Remove unused `connection` argument from `MigrationContext#current_version`Ryuta Kamizono2018-01-191-3/+3
| | | |
* | | | Remove unused `migration_context` in `DatabaseTasks`Ryuta Kamizono2018-01-191-4/+0
| | | | | | | | | | | | | | | | This was added in #31727, but it is unused.
* | | | Restore `test_migrations_status_with_schema_define_in_subdirectories`Ryuta Kamizono2018-01-191-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | This test case which was added in #28287 checks that `ActiveRecord::Schema.define` loads migration versions in subdirectories. It should be kept it as it was.
* | | | Merge pull request #31738 from tcopeland/doc_typoRyuta Kamizono2018-01-191-4/+4
|\ \ \ \ | | | | | | | | | | Fix minor typo [ci skip]
| * | | | Fix minor typo [ci skip]Tom Copeland2018-01-181-4/+4
| | | | | | | | | | | | | | | | | | | | Updated the method counts and unified them all on numerals.
* | | | | Update Gemfile.lock to reflect websocket-driver 0.7.0yuuji.yaginuma2018-01-191-1/+1
|/ / / / | | | | | | | | | | | | Follow up to e1473e0cbfbd97eeea2bc6eefd73bec0d4863359
* | | / Testing actioncable against websocket-driver 0.7.0 (#30711)Jared Beck2018-01-181-1/+1
| |_|/ |/| | | | | | | | * Depend on websocket-driver >= 0.6.1
* | | Merge pull request #31663 from Edouard-chin/remove-without-sql-modeRafael França2018-01-181-0/+22
|\ \ \ | | | | | | | | Added a test around `NO_AUTO_VALUE_ON_ZERO`:
| * | | Added a test around `NO_AUTO_VALUE_ON_ZERO`:Edouard CHIN2018-01-171-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - The mysql `NO_AUTO_VALUE_ON_ZERO` mode should be disabled when inserting fixtures in bulk, this PR adds a test to make sure we don't remove it by mistake - If we live this mode enabled, a statement like this wouldn't work and a `Duplicate entry '0' for key 'PRIMARY'` error will be raised. That's because `DEFAULT` on auto_increment will return 0 ```sql INSERT INTO `aircraft` (`id`, `name`, `wheels_count`) VALUES (DEFAULT, 'first', 2), (DEFAULT, 'second', 3) ```
* | | | Add locale selector to email preview (#31596)Hitoshi Nakashima2018-01-183-18/+97
| | | | | | | | | | | | | | | | - Add set_locale to detect suitable locale - Make feature compatible with Rails 5.x
* | | | Support hash as first argument in `assert_difference`. (#31600)Julien Meichelbeck2018-01-183-7/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Support hash as first argument for `assert_difference`. This allows to specify multiple numeric differences in the same assertion. Example: assert_difference 'Article.count' => 1, 'Notification.count' => 2 do # post :create, params: { article: {...} } end * Support error message when passing a hash as a first parameter * Format CHANGELOG properly [Julien Meichelbeck + Rafael Mendonça França]
* | | | Merge pull request #31424 from sobrinho/sobrinho/connection-pool-memcacheRafael Mendonça França2018-01-184-11/+101
|\ \ \ \ | | | | | | | | | | | | | | | Support for connection pooling on mem cache store
| * | | | Support for connection pooling on mem cache storeGabriel Sobrinho2018-01-184-11/+101
| | | | |
* | | | | Merge pull request #31577 from prathamesh-sonpatki/upgrade-guide-bootsnapEileen M. Uchitelle2018-01-181-0/+11
|\ \ \ \ \ | |/ / / / |/| | | | Added a note about bootsnap in the Rails 5.2 upgrade guide [ci skip]
| * | | | Added a note about bootsnap in the Rails 5.2 upgrade guide [ci skip]Prathamesh Sonpatki2017-12-271-0/+11
| | | | |
* | | | | Merge pull request #31730 from ↵Eileen M. Uchitelle2018-01-182-1/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | bogdanvlviv/allow_false_for-config-generators-system_tests Allow `false` for `config.generators.system_tests=`
| * | | | | Allow `false` for `config.generators.system_tests=`bogdanvlviv2018-01-182-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mention `config.generators.system_tests` in the "Configuring Rails Applications" guide.
* | | | | | Add test to properly test down with a blockeileencodes2018-01-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | down is only called with a block from the rake tasks where it passes a `SCOPE`. Technically this was tested but since we don't run all the migrations we're not actually testing the down works with a `SCOPE`. To ensure we're testing both we can run `db:migrate` again to migrate users and then run `down` with a scope to test that only the bukkits migration is reverted. Updates test to prevent having to fix regressions like we did in 4d4db4c.
* | | | | | Use selected_migrations if block_given?oz2018-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This slipped in as part of a2827ec9811b5012e8e366011fd44c8eb53fc714.
* | | | | | Fix ActionView UJS buildeileencodes2018-01-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The UJS build has been failing with Chrome failed to start. This commit fixes it by adding the option `--no-sandbox`. Travis removed the sanbox option which is why Chrome crashes. Ref https://github.com/travis-ci/travis-ci/issues/8836 Example failure: https://travis-ci.org/rails/rails/jobs/330396750
* | | | | | Revert "Merge pull request #31434 from olivierlacan/boot-feedback"Matthew Draper2018-01-192-8/+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.
* | | | | | Merge pull request #31727 from ↵Eileen M. Uchitelle2018-01-1819-308/+417
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | eileencodes/refactor-migration-classes-to-allow-for-migrations_paths-on-conn Refactor migration to move migrations paths to connection
| * | | | | Refactor migration to move migrations paths to connectioneileencodes2018-01-1819-308/+417
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails has some support for multiple databases but it can be hard to handle migrations with those. The easiest way to implement multiple databases is to contain migrations into their own folder ("db/migrate" for the primary db and "db/seconddb_migrate" for the second db). Without this you would need to write code that allowed you to switch connections in migrations. I can tell you from experience that is not a fun way to implement multiple databases. This refactoring is a pre-requisite for implementing other features related to parallel testing and improved handling for multiple databases. The refactoring here moves the class methods from the `Migrator` class into it's own new class `MigrationContext`. The goal was to move the `migrations_paths` method off of the `Migrator` class and onto the connection. This allows users to do the following in their `database.yml`: ``` development: adapter: mysql2 username: root password: development_seconddb: adapter: mysql2 username: root password: migrations_paths: "db/second_db_migrate" ``` Migrations for the `seconddb` can now be store in the `db/second_db_migrate` directory. Migrations for the primary database are stored in `db/migrate`". The refactoring here drastically reduces the internal API for migrations since we don't need to pass `migrations_paths` around to every single method. Additionally this change does not require any Rails applications to make changes unless they want to use the new public API. All of the class methods from the `Migrator` class were `nodoc`'d except for the `migrations_paths` and `migrations_path` getter/setters respectively.
* | | | | | Merge pull request #31713 from aellispierce/refactor-browser-optionsEileen M. Uchitelle2018-01-174-29/+57
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Move browser config to its own class
| * | | | | Move browser checking to its own classAshley Ellis Pierce2018-01-154-29/+57
| | | | | |
* | | | | | Merge pull request #31717 from rails/redis-cache-store-encodingGeorge Claghorn2018-01-173-1/+27
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Convert keys to binary in the Redis cache store
| * | | | | Convert keys to binary in the Redis cache storeGeorge Claghorn2018-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fix encoding errors when using the pure-Ruby Redis driver instead of Hiredis. Dodge incompatibilities between UTF-8 and arbitrary value encodings, which rear their heads when the Redis driver tries to build a single command string from incompatibly-encoded keys and values.
| * | | | | Test against the pure-Ruby Redis driverGeorge Claghorn2018-01-172-0/+26
| | | | | |
* | | | | | Merge pull request #31726 from bogdanvlviv/update-layouts_and_rendering-guideEileen M. Uchitelle2018-01-171-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Update "Layouts and Rendering in Rails" guide [ci skip]
| * | | | | | Update "Layouts and Rendering in Rails" guide [ci skip]bogdanvlviv2018-01-171-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove mention about `ActionView::TemplateHandlers` since this module was removed by c1304098cca8a9247a9ad1461a1a343354650843. Change word `subclasses` to `nested classes`. See c7408a0e40545558872efb4129fe4bf097c9ce2f - Remove useless sentence "Beginning with Rails 2, the standard extensions are `.erb` for ERB (HTML with embedded Ruby), and `.builder` for Builder (XML generator)."
* / / / / / Provide a sensible default hostGeorge Claghorn2018-01-168-13/+15
|/ / / / /