aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Use #prepend rather than using 2 aliasesYuki Nishijima2015-04-142-42/+36
| | |
* | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2015-04-141-1/+1
|\ \ \
| * | | [ci skip] Remove unnecessary `>`yui-knk2015-03-311-1/+1
| | | |
* | | | Speedup String#squishojab2015-04-121-2/+1
| | | |
* | | | Allow AS::Cache::FileStore#clear without cache directoryKohei Suzuki2015-04-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Currently `Rails.cache.clear` raises Errno::ENOENT if it's run just after cloning a new Rails project. It should succeed without removing files or directories.
* | | | Avoid to define an initializer after the load_config_initializersRafael Mendonça França2015-04-072-7/+8
| | | | | | | | | | | | | | | | | | | | This make the config/initializers run before the railties are loaded what can break some configurations.
* | | | Merge pull request #19029 from iainbeeston/skipping-undefined-callbacksRafael Mendonça França2015-04-061-5/+13
|\ \ \ \ | | | | | | | | | | Raise ArgumentError if an unrecognised callback is skipped
| * | | | Raise ArgumentError if an unrecognised callback is skippedIain Beeston2015-04-031-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At present, if you skip a callback that hasn't been defined, activesupport callbacks silently does nothing. However, it's easy to mistype the name of a callback and mistakenly think that it's being skipped, when it is not. This problem even exists in the current test suite. CallbacksTest::SkipCallbacksTest#test_skip_person attempts to skip callbacks that were never set up. This PR changes `skip_callback` to raise an `ArgumentError` if the specified callback cannot be found.
* | | | | Merge pull request #19448 from tgxworld/fix_activesupport_callbacks_clash_on_runRafael Mendonça França2015-04-061-12/+4
|\ \ \ \ \ | |/ / / / |/| | | | Fix AS::Callbacks raising an error when `:run` callback is defined.
| * | | | Revert "Reduce allocations when running AR callbacks."Guo Xiang Tan2015-03-221-12/+4
| | | | | | | | | | | | | | | | | | | | This reverts commit 796cab45561fce268aa74e6587cdb9cae3bb243e.
* | | | | Freeze static arguments for gsubbrainopia2015-04-025-6/+6
| | | | |
* | | | | Prefer string patterns for gsubbrainopia2015-04-025-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/ruby/ruby/pull/579 - there is a new optimization since ruby 2.2 Previously regexp patterns were faster (since a string was converted to regexp underneath anyway). But now string patterns are faster and better reflect the purpose. Benchmark.ips do |bm| bm.report('regexp') { 'this is ::a random string'.gsub(/::/, '/') } bm.report('string') { 'this is ::a random string'.gsub('::', '/') } bm.compare! end # string: 753724.4 i/s # regexp: 501443.1 i/s - 1.50x slower
* | | | | Only coerce time when comparing if necessaryAaron Jensen2015-03-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In dev, ActiveSupport::FileUpdateChecker#max_mtime triggers many time comparisons. Time#to_time is quite a bit slower than not doing it, so we should avoid it if possible.
* | | | | [ci skip] Replace `query methods` with `a predicate`yui-knk2015-03-311-1/+1
| | | | |
* | | | | Fix doc: set_callback also accepts an array of if:claudiob2015-03-311-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Active Record calls `set_callback` inside `after_commit`, [these lines of code](https://github.com/rails/rails/blob/master/activerecord/lib/active_record/transactions.rb#L276) pass an **array** of methods as the `:if` condition: ```ruby options[:if] = Array(options[:if]) options[:if] << "transaction_include_any_action?(#{fire_on})" ``` That made me realize that anyone could pass an **array** of `:if` and `:unless` conditions to `set_callback`, since Active Support transforms these conditions into an array anyways in [these lines of code](https://github.com/rails/rails/blob/master/activesupport/lib/active_support/callbacks.rb#L365): ```ruby @if = Array(options[:if]) @unless = Array(options[:unless]) ``` Long story short, this commit updates the documentation of the `set_callback` method to explain that arrays are also accepted. It also replaces +false+ and +true+ with false and true, since any _falsey_ or _truthy_ value will work. [ci skip]
* | | | | Revert "Remove Array#inquiry"Rafael Mendonça França2015-03-302-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9420de59f5b7f5ceac77e28e6c326ec145f71f80. Reason: Turns out we want to keep this method.
* | | | | Remove circular requireRafael Mendonça França2015-03-272-4/+0
| | | | |
* | | | | Remove Array#inquiryRafael Mendonça França2015-03-272-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | We are promoting too much a feature that will not be widler used. So for now lets keep just the ArrayInquirer constructor.
* | | | | Merge pull request #18939 from georgeclaghorn/variant-inquiryRafael Mendonça França2015-03-274-0/+55
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Provide friendlier access to request variants
| * | | | | Add ActiveSupport::ArrayInquirer and Array#inquiryGeorge Claghorn2015-03-244-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wrapping an array in an `ArrayInquirer` gives a friendlier way to check its string-like contents. For example, `request.variant` returns an `ArrayInquirer` object. To check a request's variants, you can call: request.variant.phone? request.variant.any?(:phone, :tablet) ...instead of: request.variant.include?(:phone) request.variant.any? { |v| v.in?([:phone, :tablet]) } `Array#inquiry` is a shortcut for wrapping the receiving array in an `ArrayInquirer`: pets = [:cat, :dog] pets.cat? # => true pets.ferret? # => false pets.any?(:cat, :ferret} # => true
* | | | | | Missing require 'active_support/deprecation'Akira Matsuda2015-03-273-0/+5
| |_|/ / / |/| | | |
* | | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2015-03-261-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: guides/source/4_0_release_notes.md
| * | | | | [ci skip] Add space after erb block.yui-knk2015-03-121-1/+1
| | | | | |
* | | | | | Update ActiveSupport::Subscriber docsScott Walkinshaw2015-03-241-7/+2
| |/ / / / |/| | | | | | | | | For consistency purposes with the changes done in https://github.com/rails/rails/pull/12285
* | | | | Fix incorrect description for `assert_nothing_raised`.Guo Xiang Tan2015-03-241-1/+1
| | | | |
* | | | | Merge pull request #19485 from tgxworld/small_doc_fixRafael Mendonça França2015-03-241-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Small doc fix. [CI SKIP]
| * | | | | Small doc fix. [CI SKIP]Guo Xiang Tan2015-03-241-1/+1
| | | | | |
* | | | | | Make sure Array#to_sentence always returns a StringDavid Cornu2015-03-231-1/+1
|/ / / / /
* | | | | Remove alias for `i_suck_and_my_tests_are_order_dependent`.Guo Xiang Tan2015-03-241-2/+0
| | | | |
* | | | | Add documentation for Duration#to_i for clarificationnerdinand2015-03-231-0/+24
| | | | |
* | | | | Remove reference to Numeric#from_now, as it is no longer supportednerdinand2015-03-232-30/+0
| | | | |
* | | | | Deprecate alias_method_chain in favour of Module#prependKir Shatrov2015-03-224-11/+19
| |/ / / |/| | | | | | | …as discussed #19413
* | | | Mark some constants as nodoc and remove unneeded namespaceRafael Mendonça França2015-03-202-12/+10
| | | |
* | | | Use Module#prepend instead of alias_method_chainKir Shatrov2015-03-202-20/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Thanks @fbernier for suggestion! <3 At this moment we can use Module#prepend in all all cases except of Range because of the bug [1] in MRI 2.2 [1] https://bugs.ruby-lang.org/issues/10847
* | | | Merge pull request #19296 from Wildebeest/fix-race-ttlRafael Mendonça França2015-03-171-2/+2
|\ \ \ \ | | | | | | | | | | Skip the `:race_condition_ttl` branch if the option is 0 or nil.
| * | | | Skip the `:race_condition_ttl` branch if the option is 0 or nil. This fixes ↵Matt Wilde2015-03-111-2/+2
| | | | | | | | | | | | | | | | | | | | an issue with the redis cache, where this code will sometimes throw an error out of SETEX when passing 0 as the `expires_at`.
* | | | | add `DateTime.now` to list of `TimeHelpers#travel_to` stubbing [ci skip]yuuji.yaginuma2015-03-121-9/+11
|/ / / /
* | | | Revert "Take DST into account when locating TimeZone from Numeric."Andrew White2015-03-091-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverting this as it's not the implementation that we would like it to be. This is being used inside of ActiveSUpport::TimeZone[] and it's unaware of the context in which to find the timezone period so the timezone found changes depending on whether DST is in effect for the current period. This means that `'2001-01-01'.in_time_zone(-9)` changes from winter/summer even though it's the same date that we're trying to convert. Since finding timezones by numeric offsets is a bit hit and miss we should introduce a new API for finding them which supplies the date context in which we want to search and we should probably also deprecate the finding of timezones via the [] method, though this needs further discussion. This reverts commit 2cc2fa3633edd96773023c6b09d07c7b9d9b841d.
* | | | Doc fixes [ci skip]Islam Wazery2015-03-074-4/+4
| | | |
* | | | Doc fix [ci skip]Islam Wazery2015-03-071-7/+7
| | | |
* | | | `number_to_percentage` and `precision: 0` work with `NAN` and `INFINITY`.Yves Senn2015-03-061-1/+1
| | | | | | | | | | | | | | | | Closes #19227.
* | | | Merge pull request #19224 from davydovanton/doc-update-seconds-since-midnightAbdelkader Boudih2015-03-061-1/+5
|\ \ \ \ | | | | | | | | | | [ci skip] Update documentation for Time#seconds_since_midnight
| * | | | [ci skip] Update documentation for Time#seconds_since_midnightAnton Davydov2015-03-061-1/+5
| | | | |
* | | | | Change *args to arg in CallbackSequence#calleileencodes2015-03-051-7/+7
|/ / / / | | | | | | | | | | | | | | | | | | | | `CallbackSequence#call` can only ever take one argument. Using `*args` here produces unnecessary array allocations. Since it only ever takes one argument we should use `arg` instead of `*args`.
* | | | Merge pull request #19180 from sivsushruth/masterArthur Nogueira Neves2015-03-051-0/+5
|\ \ \ \ | | | | | | | | | | If TZInfo-data is not present in windows, let the user know.
| * | | | If TZInfo-data is not present in windows, let the user know.Sushruth Sivaramakrishnan2015-03-041-0/+5
| | | | |
* | | | | Some documentation edits [ci skip]Robin Dupret2015-03-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix a few typos * Wrap some lines around 80 chars * Rephrase some statements
* | | | | Doc fix [ci skip]Sushruth Sivaramakrishnan2015-03-051-1/+1
| | | | |
* | | | | Doc fix [ci skip]Sushruth Sivaramakrishnan2015-03-051-2/+2
| | | | |
* | | | | Doc fix [ci skip]Sushruth Sivaramakrishnan2015-03-051-1/+1
| | | | |