aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #17302 from ↵Rafael Mendonça França2014-10-185-11/+11
| | | | | | claudiob/replace-slower-block-call-with-faster-yield Replace (slower) block.call with (faster) yield
* Revert "Replace (slower) block.call with (faster) yield"Zachary Scott2014-10-185-11/+11
| | | | This reverts commit 0ab075e75f58bf403f7ebe20546c7005f35db1f6.
* Merge branch 'master' of github.com:rails/railsZachary Scott2014-10-180-0/+0
|\
| * Merge pull request #17034 from pramod-sharma/masterZachary Scott2014-10-181-1/+15
| |\ | | | | | | [ci skip] Add Doc of with_options for the case when inherited default options and original options have same keys
| | * [ci skip] Add Doc of with_options for the case when inherited default ↵Pramod Sharma2014-09-251-1/+15
| | | | | | | | | | | | options and original options have same keys
| * | Merge pull request #17302 from ↵Rafael Mendonça França2014-10-175-11/+11
| |\ \ | | | | | | | | | | | | | | | | claudiob/replace-slower-block-call-with-faster-yield Replace (slower) block.call with (faster) yield
| | * | Replace (slower) block.call with (faster) yieldclaudiob2014-10-175-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Performance optimization: `yield` with an implicit `block` is faster than `block.call`. See http://youtu.be/fGFM_UrSp70?t=10m35s and the following benchmark: ```ruby require 'benchmark/ips' def fast yield end def slow(&block) block.call end Benchmark.ips do |x| x.report('fast') { fast{} } x.report('slow') { slow{} } end # => fast 154095 i/100ms # => slow 71454 i/100ms # => # => fast 7511067.8 (±5.0%) i/s - 37445085 in 4.999660s # => slow 1227576.9 (±6.8%) i/s - 6145044 in 5.028356s ```
* | | | [ci skip] Add a note about headers overwritingNicolas Cavigneaux2014-10-181-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since some headers can appear multiple times in an email it's required to set it to nil first when you want to overwrite an existing one. This commit add some information about this process. Fix #15912
* | | | [ci skip] Add Doc of with_options for the case when inherited default ↵Pramod Sharma2014-10-181-1/+15
| | | | | | | | | | | | | | | | options and original options have same keys
* | | | Replace (slower) block.call with (faster) yieldclaudiob2014-10-185-11/+11
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Performance optimization: `yield` with an implicit `block` is faster than `block.call`. See http://youtu.be/fGFM_UrSp70?t=10m35s and the following benchmark: ```ruby require 'benchmark/ips' def fast yield end def slow(&block) block.call end Benchmark.ips do |x| x.report('fast') { fast{} } x.report('slow') { slow{} } end # => fast 154095 i/100ms # => slow 71454 i/100ms # => # => fast 7511067.8 (±5.0%) i/s - 37445085 in 4.999660s # => slow 1227576.9 (±6.8%) i/s - 6145044 in 5.028356s ```
* | | Merge pull request #17300 from claudiob/add-necessary-require-reverse-mergeRafael Mendonça França2014-10-172-0/+11
|\ \ \ | |/ / |/| | Add necessary 'require reverse_merge' to HAWI.rb
| * | Add necessary 'require reverse_merge' to HAWI.rbclaudiob2014-10-172-0/+11
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hashes with indifferent access should support `reverse_merge` out-of-the-box but they don't; for instance the following code fails: ```ruby require 'active_support' require 'active_support/hash_with_indifferent_access' hash = HashWithIndifferentAccess.new key: :old_value hash.reverse_merge key: :new_value ``` This PR fixes the case above by simply requiring `active_support/core_ext/hash/reverse_merge` in `hash_with_indifferent_access.rb` and adding a test that confirms the fix. --- Here are more details about the bugfix. Currently, `reverse_merge` is [defined in HashWithIndifferentAccess](https://github.com/rails/rails/blob/4e8ea13ba1a0870905a46fac5f232d9f41eef8a4/activesupport/lib/active_support/hash_with_indifferent_access.rb#L208) by invoking `super`, that is by invoking `Hash#reverse_merge`: ```ruby def reverse_merge(other_hash) super(self.class.new_from_hash_copying_default(other_hash)) end ``` However, Ruby's `Hash` does not have the `reverse_merge` by default: it must be added by ActiveSupport, and that requires the following line of code to be present: ```ruby require 'active_support/core_ext/hash/reverse_merge' ```
* | Merge pull request #17296 from sgrif/sg-booleans-should-make-senseRafael Mendonça França2014-10-162-5/+14
|\ \ | | | | | | Add a deprecation warning for abiguous boolean values
| * | Add a deprecation warning for abiguous boolean valuesSean Griffin2014-10-162-5/+14
|/ / | | | | | | | | | | | | | | | | | | | | In Rails 5.0, we'd like to change the behavior of boolean columns in Rails to be closer to Ruby's semantics. Currently we have a small set of values which are "truthy", and all others are "falsy". In Rails 5.0, we will reverse this to have a small number of values which are "falsy", and all others will become "truthy". In the interim, all values which are ambiguous must emit a deprecation warning.
* | Improve the warning a bit [ci skip]Rafael Mendonça França2014-10-161-1/+1
| |
* | Merge pull request #15827 from ↵Rafael Mendonça França2014-10-161-1/+3
|\ \ | | | | | | | | | | | | | | | yuki24/another-improvements-for-dynamic-error-pages A warning line should look like a warning section in Guides
| * | A warning line should look like a warning sectionYuki Nishijima2014-06-191-1/+3
| | | | | | | | | | | | [ci skip]
* | | Merge pull request #17293 from djpowers/patch-1Rafael Mendonça França2014-10-161-1/+1
|\ \ \ | | | | | | | | Clarify wording in Rails HTML Sanitizer section [ci skip]
| * | | Clarify wording in Rails HTML Sanitizer sectionDave Powers2014-10-161-1/+1
|/ / / | | | | | | [ci skip]
* | | Merge pull request #17292 from tricknotes/generator-test-docRafael Mendonça França2014-10-161-1/+1
|\ \ \ | | | | | | | | Fix example code for `Rails::Generators::Testing::Behaviour` [ci skip]
| * | | Fix example code for `Rails::Generators::Testing::Behaviour` [ci skip]Ryunosuke SATO2014-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | `cleanup_destination_root` method is not found anywhere. Instead, `prepare_destination` clean up distination root on setup.
* | | | Use released rails-dom-testingRafael Mendonça França2014-10-165-7/+3
|/ / /
* | | test, `Generators::GeneratedAttribute` with references, required, index.Yves Senn2014-10-161-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #17197. Closes #17207. `{required}` is a type modifier so it should be: user:references{required}:index and not: user:references:index{required}
* | | Merge pull request #17285 from dwo/masterYves Senn2014-10-161-0/+2
|\ \ \ | | | | | | | | mention the :without option [ci skip]
| * | | mention the :without option [ci skip]Rob2014-10-161-0/+2
| | | | | | | | | | | | As pointed out in the ActiveModel::Validations::HelperMethods #validates_format_of documentation.
* | | | Merge pull request #17278 from velobuff/clarify-debugger-invocationYves Senn2014-10-161-1/+2
|\ \ \ \ | |/ / / |/| | | clarify debugger platform invocation
| * | | clarify debugger platform invocationRaman Sinha2014-10-151-1/+2
| | | |
* | | | test, better describe `SerializationTypeMismatch` behavior. refs #14716.Yves Senn2014-10-162-4/+3
| | | |
* | | | pg, test assigning non-array values to an array column. Closes #14716.Yves Senn2014-10-161-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | The behavior has changed since 4.1 and non-array values are no longer type casted to a blank array. This way the user can define custom validations on that property.
* | | | Merge pull request #17281 from y-yagi/configuring_guideZachary Scott2014-10-161-14/+15
|\ \ \ \ | | | | | | | | | | [ci skip] add AC::InvalidCrossOriginRequest to list of rescue_responses default
| * | | | [ci skip] add AC::InvalidCrossOriginRequest to list of rescue_responses defaultyuuji.yaginuma2014-10-161-14/+15
| | | | |
* | | | | docs, since #16702 we detect mutation on serialized attributes. [ci skip]Yves Senn2014-10-161-3/+0
| | | | | | | | | | | | | | | | | | | | /cc @sgrif
* | | | | some changelog formatting. [ci skip]Yves Senn2014-10-164-12/+12
| | | | |
* | | | | Merge pull request #17280 from aditya-kapoor/remove-unneeded-fileYves Senn2014-10-161-9/+0
|\ \ \ \ \ | | | | | | | | | | | | remove unneeded file from Railties.
| * | | | | remove unneeded fileAditya Kapoor2014-10-161-9/+0
| | | | | |
* | | | | | Merge pull request #17279 from aditya-kapoor/call-methodsYves Senn2014-10-161-1/+1
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | use require_command! instead of calling its definition
| * | | | | use require_command! instead of calling its definitionAditya Kapoor2014-10-161-1/+1
| |/ / / /
* | | | | we don't need a HWIA and a hash allocated for just one k/v pairAaron Patterson2014-10-151-5/+3
| | | | |
* | | | | just look up the primary key from the columns hashAaron Patterson2014-10-151-6/+1
| | | | |
* | | | | add table.bigint supportAaron Patterson2014-10-153-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the DSL you can now do: create_table(:foos) do |t| t.bigint :hi end
* | | | | Merge pull request #17277 from yuutetu/fix_type_in_routing_mapperGuillermo Iguaran2014-10-151-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Fix typo in actionpack/lib/action_dispatch/routing/mapper.rb [ci-skip]
| * | | | | Fix typo in actionpack/lib/action_dispatch/routing/mapper.rbYuutetu2014-10-161-1/+1
|/ / / / /
* | | | | Use if/else instead of early raiseRafael Mendonça França2014-10-151-2/+5
| | | | |
* | | | | Merge pull request #17267 from rebyn/masterRafael Mendonça França2014-10-154-0/+16
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Raise an error for has_one associations which try to go :through a polymorphic association
| * | | | | Raise an error for has_one associations which try to go :through a ↵Tu Hoang2014-10-154-0/+16
| |/ / / / | | | | | | | | | | | | | | | polymorphic association [#17263]
* | | | | Merge pull request #17255 from printercu/cors_exception_wrapperRafael Mendonça França2014-10-151-10/+11
|\ \ \ \ \ | | | | | | | | | | | | ActionController::InvalidCrossOriginRequest fails with 422 instead of 500
| * | | | | ActionController::InvalidCrossOriginRequest fails with 422 instead of 500Max Melentiev2014-10-141-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | Fixes #15967
* | | | | | Merge pull request #17273 from claudiob/fix-file-and-password-field-tagRafael Mendonça França2014-10-152-2/+9
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fix how file_ and password_field_tag edit options
| * | | | | | Fix how file_ and password_field_tag edit optionsclaudiob2014-10-152-2/+9
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes the behavior of `file_field_tag` and `password_field_tag` when invoked with a hash of options. These two helpers are different from all the other ones in that they modify the options hash passed as a parameter, whereas all the other helpers duplicate it before updating it. The result is that *bad things* can happen if the user re-uses the same hash. For instance, users who write the following code to display a file field followed by a text field (both with the same class): ```rhtml <% options = {class: 'important'} %> <%= file_field_tag 'Upload', options %> <%= text_field_tag 'Name', options %> ``` would instead see **two file fields!** ```html <input class="important" id="Upload" name="Upload" type="file"> <input class="important" id="Name" name="Name" type="file" value="value"> ``` This PR replaces `update` with `merge` in the code of the two helpers, fixing the issue above. The included test verifies the change, since it passes after this PR, but fails before with the following error: ``` Expected: <input type="text" name="title" id="title" value="Hello!" class="important" /> Actual: <input type="password" name="title" id="title" value="Hello!" class="important" /> ```
* | | | | | Merge pull request #17262 from swapdisc/delete-join-operation-structRafael Mendonça França2014-10-151-2/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | delete leftover JoinOperation struct