aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
Commit message (Collapse)AuthorAgeFilesLines
* Replace multi_json with jsonErik Michaels-Ober2013-05-111-21/+4
|
* Merge pull request #10534 from cmaruz/masterRafael Mendonça França2013-05-101-1/+4
|\ | | | | | | | | | | | | Escape of U+2028 and U+2029 in the JSON Encoder Conflicts: activesupport/lib/active_support/json/encoding.rb
| * Added escaping of U+2028 and U+2029 inside the json encoder.Mario Caropreso2013-05-091-3/+6
| | | | | | | | | | | | | | | | | | | | | | U+2028 and U+2029 are allowed inside strings in JSON (as all literal Unicode characters) but JavaScript defines them as newline seperators. Because no literal newlines are allowed in a string, this causes a ParseError in the browser. We work around this issue by replacing them with the escaped version. The resulting JSON is still valid and can be parsed in the browser. This commit has been coauthored with Viktor Kelemen @yikulju
* | Fix syntax error on Ruby 2.0Rafael Mendonça França2013-05-101-2/+4
| | | | | | | | | | Since Ruby 2.0 is UTF-8 by default we need to explictly say that the encoding of this file is US-ASCII
* | Merge pull request #10057 from zackham/patch-1Rafael Mendonça França2013-05-101-2/+4
|\ \ | | | | | | | | | Escape multibyte line terminators in JSON encoding
| * | Escape multibyte line terminators in JSON encodingzackham2013-04-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, json/encoding respects the JSON spec (as it should) which disallows \n and \r inside strings, escaping them as expected. Unfortunately, ECMA-262 (Javascript) disallows not only \n and \r in strings, but "Line Terminators" which includes U+2028 and U+2029. See here: http://bclary.com/2004/11/07/#a-7.3 This pull request adds U+2028 and U+2029 to be escaped. # Why?  It's very common to see something like this in a Rails template: <script type="text/javascript">  var posts = <%= @posts.to_json %>; </script> If U+2028 or U+2029 are part of any attributes output in the to_json call, you will end up with an exception. In Chrome: Uncaught SyntaxError: Unexpected token ILLEGAL  # Why not? This is JSON encoding, and the JSON spec is specific about how to  encode strings. U+2028 and U+2029 don't get special treatment. Just trying to start a discussion... what do you do in your apps to deal with this? Is there a convention I'm missing?
* | | Merge pull request #10531 from waseem/refactor_requireCarlos Antonio da Silva2013-05-091-4/+4
|\ \ \ | | | | | | | | Require different core extensions correctly.
| * | | Require different core extensions correctly.Waseem Ahmad2013-05-091-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The begin rescue block is specifically to catch LoadError while loading i18n gem. Other core extensions, under active support, should be required outside of the begin rescue block.
* | | | rails -> Rails [ci skip]Prathamesh Sonpatki2013-05-092-2/+2
|/ / /
* | | use public send on the scope parametersAaron Patterson2013-05-081-1/+1
| | |
* | | using strings as scopes is not used anywhere, so remove itAaron Patterson2013-05-081-1/+1
| | |
* | | adding tests for lambdas as conditionsAaron Patterson2013-05-081-1/+1
| |/ |/|
* | separate identification computationAaron Patterson2013-05-081-24/+18
| |
* | separate filters from source codeAaron Patterson2013-05-081-20/+31
| |
* | if the callbacks are not the same class, they cannot be duplicatesAaron Patterson2013-05-081-2/+6
| |
* | fix object comparison caseAaron Patterson2013-05-081-1/+5
| |
* | polymorphic comparison operatorAaron Patterson2013-05-081-11/+24
| |
* | Use ruby's Encoding support for tidy_bytesBurke Libbey2013-05-081-39/+19
| | | | | | | | | | | | | | | | | | | | The previous implementation was quite slow. This leverages some of the transcoding abilities built into Ruby 1.9 instead. It is roughly 96% faster. The roundtrip through UTF_8_MAC here is because ruby won't let you transcode from UTF_8 to UTF_8. I chose the closest encoding I could find as an intermediate.
* | dependency ActiveSupport::DeprecationTomohiko Himura2013-05-091-0/+2
| |
* | fix issue #10502, do not recompute method name for already-stringified ↵Sean Walbran2013-05-071-1/+1
| | | | | | | | object filter
* | Merge pull request #10234 from dasch/dasch/fetch-multiRafael Mendonça França2013-05-061-0/+28
|\ \ | | | | | | Allow fetching multiple values from the cache at once
| * | Allow fetching multiple values from the cache at onceDaniel Schierbeck2013-05-061-0/+28
| | | | | | | | | | | | | | | Add a simple API for fetching a list of entries from the cache, where any missing entries are computed by a supplied block.
* | | Merge pull request #10453 from vipulnsward/destructive_sortJeremy Kemper2013-05-051-1/+1
|\ \ \ | | | | | | | | Speed up Hash#to_param by switching from #sort to #sort!
| * | | use destructive sort on array in Hash#to_param for performance gains.Vipul A M2013-05-051-1/+1
| |/ / | | | | | | | | | Check https://gist.github.com/vipulnsward/6aad158c06a22f931a71 to see the gains.
* / / Squashed commit of the following:Aaron Patterson2013-05-0310-63/+7
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 2683de5da85135e8d9fe48593ff6167db9d64b18 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:29:20 2013 -0700 cannot support infinite ranges right now commit cebb6acef2c3957f975f6db4afd849e535126253 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:26:12 2013 -0700 reverting infinity comparison commit 385f7e6b4efd1bf9b89e8d607fcb13e5b03737ea Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:23:28 2013 -0700 Revert "Added ability to compare date/time with infinity" This reverts commit 38f28dca3aa16efd6cc3af6453f2e6b9e9655ec1. Conflicts: activesupport/CHANGELOG.md activesupport/lib/active_support/core_ext/numeric/infinite_comparable.rb activesupport/test/core_ext/date_ext_test.rb activesupport/test/core_ext/date_time_ext_test.rb activesupport/test/core_ext/numeric_ext_test.rb activesupport/test/core_ext/time_ext_test.rb activesupport/test/core_ext/time_with_zone_test.rb commit 0d799a188dc12b18267fc8421675729917610047 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:18:53 2013 -0700 Revert "Refactor infinite comparable definition a bit" This reverts commit dd3360e05e4909f2f0c74a624cccc2def688f828. commit 42dec90e49745bbfae546f0560b8783f6b48b074 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:18:47 2013 -0700 Revert "Require 'active_support/core_ext/module/aliasing' in the infinite_comparable module" This reverts commit 7003e71c13c53ec3d34250560fbf80b8381df693.
* | Merge pull request #10413 from vipulnsward/change_groupingCarlos Antonio da Silva2013-05-031-1/+1
|\ \ | | | | | | Use faster Array.new instead of []*padding
| * | Use faster Array.new instead of []*paddingVipul A M2013-05-021-1/+1
| | |
* | | Revert "Merge pull request #10433 from ↵Jon Leighton2013-05-031-33/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wangjohn/making_callbacks_more_performant" This reverts commit 09751fdc847c25237891a8fcb0c2312e39bbe86d, reversing changes made to 6a5ab08d21c4284a05f5e34484b18a91d4e5c50c. This change caused a failure in actionpack/test/abstract/callbacks_test.rb.
* | | Work around change in how MiniTest detects SIGINFOJon Leighton2013-05-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MiniTest 4.7.3 detects the presence of SIGINFO and stores the answer in a constant. It seems that MiniTest 4.7.4 changes this, and instead relies on an info_signal method being implemented on the runner object. In ActiveSupport::Testing::Isolation, we use ProxyTestResult to stand in for the runner object. This object implements `method_missing`, and as such its #info_signal method has a truthy return value. This results in MiniTest trying to install the SIGINFO handler on platforms where SIGINFO does not exists. To fix, I am simply defining an explicit ProxyTestResult#info_signal method.
* | | Improving the performance of callbacks by keeping a hash of thewangjohn2013-05-021-11/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | callbacks in the CallbackChain, so you don't have to iterate over all callbacks when checking for duplicates. Benchmark results when the tests in activerecord/test/cases/associations_test.rb were run with and without the change: == On master (when scanning all of the callbacks): --------------------------------------------------------- % cumulative self self total time seconds seconds calls ms/call ms/call name --------------------------------------------------------- 1.85 9.26 0.82 18412 0.04 0.05 ActiveSupport::Callbacks::Callback#matches? 1.22 12.32 0.54 18412 0.03 0.08 ActiveSupport::Callbacks::Callback#duplicates? 0.93 14.61 0.41 19600 0.02 0.21 ActiveSupport::Callbacks::CallbackChain#remove_duplicates Finished tests in 1.217065s, 30.4010 tests/s, 53.4072 assertions/s. --------------------------------------------------------- == On my branch (when using a hash to check callback duplication): --------------------------------------------------------- % cumulative self self total time seconds seconds calls ms/call ms/call name --------------------------------------------------------- 0.15 29.63 0.06 1188 0.05 0.72 ActiveSupport::Callbacks::CallbackChain#handle_duplicates 0.00 40.50 0.00 84 0.00 0.12 ActiveSupport::Callbacks::Callback#matches? 0.00 40.50 0.00 84 0.00 0.12 ActiveSupport::Callbacks::Callback#duplicates? 0.00 40.50 0.00 91 0.00 0.22 ActiveSupport::Callbacks::CallbackChain#scan_and_remove_duplicates Finished tests in 1.117757s, 33.1020 tests/s, 58.1522 assertions/s. ---------------------------------------------------------
* | | Fixes Dependency bug in Active SupportTomohiko Himura2013-05-023-0/+3
| | | | | | | | | | | | DateTime defined in date.rb
* | | Revert "Object#in? also accepts multiple parameters"Brian Morearty2013-05-011-19/+9
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ebf69ab1636df74c76332c53bcd3d8494fb91b45. `in?` must not take multiple parameters because its behavior would be ambiguous: # Test if "B" is included in a list of names with `"B".in?(*names)`: names = ["BMorearty"] "B".in?(*names) # => true names = ["BMorearty","rubyduo"] "B".in?(*names) # => false Conflicts: activesupport/lib/active_support/core_ext/object/inclusion.rb activesupport/test/core_ext/object/inclusion_test.rb
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-05-011-6/+6
|\ \
| * | documentation fixes for Array.wrap and AR::Validations::AssociatedValidatorHrvoje Šimić2013-04-171-6/+6
| | |
* | | Fix typos in deprecation proxy docs [ci skip]Carlos Antonio da Silva2013-04-301-3/+3
| | |
* | | Merge pull request #10339 from eiel/unused-requireRafael Mendonça França2013-04-301-1/+0
|\ \ \ | | | | | | | | remove unused require
| * | | remove unused requireTomohiko Himura2013-04-251-1/+0
| | | | | | | | | | | | | | | | not used remove_possible_method
* | | | rails/master is now 4.1.0.betaRafael Mendonça França2013-04-291-1/+1
| | | |
* | | | Bump version to rc1David Heinemeier Hansson2013-04-291-1/+1
| | | |
* | | | Merge pull request #10364 from wangjohn/refactoring_activesupport_cacheJeremy Kemper2013-04-281-10/+23
|\ \ \ \ | | | | | | | | | | Making the retrieval of the cache store class a method
| * | | | Making the retrieval of the cache store class a method, also wrotewangjohn2013-04-281-10/+23
| | | | | | | | | | | | | | | | | | | | comments for the expand_cache_key method.
* | | | | Use new hash syntax in module delegation docs [ci skip]Carlos Antonio da Silva2013-04-281-1/+1
|/ / / /
* | | | Module#delegate checks nilness rather that falsehood if :allow_nil is true, ↵Xavier Noria2013-04-261-30/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and avoids multiple evaluation of the target method Notes: 1) I hope nilness is a word. 2) See rationale for avoiding multiple evaluation in a comment in the patch, credit goes to @jeremy for pointing out this gotcha in the existing implementation. 3) Embeds a little joke dedicated to @pixeltrix (it could be worse! :D). References #10347.
* | | | Merge pull request #9980 from stouset/patch-1Andrew White2013-04-261-4/+5
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Improve poor security recommendation in docs [ci skip]
| * | | | Improve poor security recommendation in docsStephen Touset2013-03-281-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | As reported in #9960, the current documentation recommends an insecure practice for key generation from a password (a single round of SHA-256). The modified documentation uses ActiveSupport::KeyGenerator to perform proper key stretching.
* | | | | Merge pull request #10351 from ↵Xavier Noria2013-04-261-5/+5
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | JonRowe/update_as_date_next_week_to_document_intent Propose better documentation for ActiveSupports `next_week` functionaility
| * | | | | formattingJon Rowe2013-04-261-1/+1
| | | | | |
| * | | | | better document `next_week` functionaility closes #9568Jon Rowe2013-04-261-5/+5
| | |/ / / | |/| | |
* / | | | Delegation method bugLi Ellis Gallardo2013-04-251-0/+14
|/ / / / | | | | | | | | | | | | | | | | | | | | Add documentation and test to delegation method that make sure we're aware that when a delegated object is not nil or false and doesn't respond to the method it will still raise a NoMethodError exception.
* | | | refactor number helperVipul A M2013-04-251-2/+3
| | | |