aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext
Commit message (Collapse)AuthorAgeFilesLines
* When Array#as_json and Hash#as_json are called without options, theyGodfrey Chan2013-11-221-2/+2
| | | | | should also call #as_json on the children without options (instead of nil)
* Expand double-negative in String#blank? regexAman Gupta2013-11-201-1/+1
|
* Unify `cattr_*` interface: allow to pass a block to `cattr_reader`.Alexey Chernenkov2013-11-151-0/+11
| | | | | | | | | Example: class A cattr_reader(:defr) { 'default_reader_value' } end A.defr # => 'default_reader_value'
* Improved compatibility with the stdlib JSON gem.Godfrey Chan2013-11-141-3/+21
| | | | | | | | | | | | Previously, calling `::JSON.{generate,dump}` sometimes causes unexpected failures such as intridea/multi_json#86. `::JSON.{generate,dump}` now bypasses the ActiveSupport JSON encoder completely and yields the same result with or without ActiveSupport. This means that it will **not** call `as_json` and will ignore any options that the JSON gem does not natively understand. To invoke ActiveSupport's JSON encoder instead, use `obj.to_json(options)` or `ActiveSupport::JSON.encode(obj, options)`.
* Clean up `require ‘active_support/deprecation’` and remove circular requireDmitry Vorotilin2013-11-141-2/+0
|
* Get rid of unused variableGuillermo Iguaran2013-11-141-1/+1
|
* Merge pull request #12882 from charliesome/use-rescue-splat-in-suppressGuillermo Iguaran2013-11-131-2/+1
|\ | | | | Use rescue with a splat rather and catching all exceptions and manually filtering in Kernel#suppress
| * Use rescue with a splat rather and catching all and filteringCharlie Somerville2013-11-131-2/+1
| |
* | Merge pull request #12857 from kuldeepaggarwal/f-indentationXavier Noria2013-11-111-3/+3
|\ \ | | | | | | updated documentation for Integer [ci skip]
| * | updated documentation for IntegerKuldeep Aggarwal2013-11-121-3/+3
| | |
* | | Merge pull request #12854 from kuldeepaggarwal/f-indentationRafael Mendonça França2013-11-114-14/+18
|\| | | | | | | | methods and outputs indented [ci skip]
| * | documentation updated for Hashes [ci skip]KD2013-11-114-14/+18
| | |
* | | Merge pull request #12842 from kuldeepaggarwal/array_splitGuillermo Iguaran2013-11-111-3/+3
|\| | | | | | | | Speed up Array#split when block is passed
| * | Speed up Array#splitKD2013-11-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ruby 2.0.0p247 Rehearsal --------------------------------------- old 10.670000 0.150000 10.820000 ( 10.822651) new 8.520000 0.050000 8.570000 ( 8.571825) ----------------------------- total: 19.390000sec user system total real old 10.620000 0.170000 10.790000 ( 10.790409) new 8.570000 0.110000 8.680000 ( 8.686051)
* | | Merge pull request #12841 from kuldeepaggarwal/in-group-documentationYves Senn2013-11-101-1/+1
|\ \ \ | |/ / |/| | Array#in_groups: documentation updated [ci skip]
| * | Array#in_groups: documentation updatedKD2013-11-111-1/+1
| | |
* | | Array#split preserving the calling arrayKD2013-11-111-2/+2
|/ /
* | Standardize all JSON encoded times to use 3 decimal fractional secondsRyan Glover2013-11-071-2/+2
| |
* | Move the JSON extension require statements to the right place.Godfrey Chan2013-11-061-0/+7
| | | | | | | | | | | | | | In #12203, the JSON core extensions were moved into the `core_ext` folder. Unfortunately, there are some corresponding requires that were left behind. The problem is partially addressed in #12710, this commit fixes the rest.
* | Do not expose internal state in the public encoder API (i.e. as_json)Godfrey Chan2013-11-061-15/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See [1] for why this is not a good idea. As part of this refactor, circular reference protection in as_json has been removed and the corresponding error class has been deprecated. As discussed with @jeremy, circular reference error is considered programmer errors and protecting against it is out of scope for the encoder. This is again based on the excellent work by @sergiocampama in #11728. [1]: https://github.com/intridea/multi_json/pull/138#issuecomment-24468223
* | Add +capitalize+ option to Inflector.humanizeclaudiob2013-11-061-5/+11
| | | | | | | | | | | | | | So strings can be humanized without being capitalized: 'employee_salary'.humanize # => "Employee salary" 'employee_salary'.humanize(capitalize: false) # => "employee salary"
* | Eliminate `JSON.{parse,load,generate,dump}` and `def to_json`Godfrey Chan2013-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JSON.{dump,generate} offered by the JSON gem is not compatiable with Rails at the moment and can cause a lot of subtle bugs when passed certain data structures. This changed all direct usage of the JSON gem in internal Rails code to always go through AS::JSON.{decode,encode}. We also shouldn't be implementing `to_json` most of the time, and these occurances are replaced with an equivilent `as_json` implementation to avoid problems down the road. See [1] for all the juicy details. [1]: intridea/multi_json#138 (comment)
* | Fixed Object#as_json and Struct#as_json with optionsGodfrey Chan2013-11-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | These methods now takes the same options as Hash#as_json, for example: struct = Struct.new(:foo, :bar).new struct.foo = "hello" struct.bar = "world" json = struct.as_json(only: [:foo]) # => {foo: "hello"} This is extracted from PR #11728 from @sergiocampama, see also the discussion in #11460.
* | Added Numeric#in_milliseconds, like 1.hour.in_milliseconds, so we can feed ↵David Heinemeier Hansson2013-11-021-0/+6
| | | | | | | | them to JavaScript functions like getTime().
* | Warnings removed for ruby trunkArun Agrawal2013-11-011-1/+1
| | | | | | Same as 4d4ff531b8807ee88a3fc46875c7e76f613956fb
* | Merge pull request #12713 from utenmiki/documentYves Senn2013-11-011-0/+2
|\ \ | | | | | | Add Rdoc document for Array#forty_two [ci skip]
| * | Add Rdoc document for Array#forty_twoutenmiki2013-10-311-0/+2
| | |
* | | Require time before monkey-patching itRobin Dupret2013-10-311-0/+1
|/ / | | | | | | | | | | Same as #12710 but for the time module this time. This time it should fix the Active Model test suite in isolation avoiding a TypeError to be raised about the superclass of the DateTime object.
* | Require bigdecimal before monkey-patching itRobin Dupret2013-10-311-0/+1
| | | | | | | | | | | | | | | | If we try to monkey-patch the class before requiring it, then a "superclass mismatch" (TypeError) error is raised and the build can't run correctly. Fixes #12708
* | Merge pull request #12203 from chancancode/eager_load_jsonJeremy Kemper2013-10-303-27/+221
|\ \ | | | | | | Eagerload active_support/json/encoding in active_support/core_ext/object/to_json
| * | Moved all JSON core extensions into core_ext/object/jsonGodfrey Chan2013-09-133-27/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TL;DR The primary driver is to remove autoload surprise. This is related to #12106. (The root cause for that ticket is that json/add defines Regexp#to_json among others, but here I'll reproduce the problem without json/add.) Before: >> require 'active_support/core_ext/to_json' => true >> //.as_json NoMethodError: undefined method `as_json' for //:Regexp from (irb):3 from /Users/godfrey/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>' >> //.to_json => "\"(?-mix:)\"" >> //.as_json => "(?-mix:)" After: >> require 'active_support/core_ext/to_json' => true >> //.as_json => "(?-mix:)" This is because ActiveSupport::JSON is autoloaded the first time Object#to_json is called, which causes additional core extentions (previously defined in active_support/json/encoding.rb) to be loaded. When someone require 'active_support/core_ext', the expectation is that it would add certain methods to the core classes NOW. The previous behaviour causes additional methods to be loaded the first time you call `to_json`, which could cause nasty surprises and other unplesant side-effects. This change moves all core extensions in to core_ext/json. AS::JSON is still autoloaded on first #to_json call, but since it nolonger include the core extensions, it should address the aforementioned bug. *Requiring core_ext/object/to_json now causes a deprecation warnning*
* | | slice! should not remove default hash value/procAntonio Santos2013-10-241-0/+2
| | |
* | | Fix `singleton_class?`Vipul A M2013-10-151-2/+5
| | | | | | | | | | | | | | | Due to changes from http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/39628 current `singleton_class?` implementation fails. Changed based on reference from http://bugs.ruby-lang.org/issues/7609
* | | Merge pull request #11474 from bogdan/time-with-zone-succAndrew White2013-09-222-0/+25
|\ \ \ | |/ / |/| | Prevent server blow up when iterating over TimeWithZone Range
| * | Disable ability to iterate over a Range of TimeWithZoneBogdan Gusiev2013-07-192-0/+25
| | |
* | | Fixes typo in Object#try!Jay Hayes2013-09-101-1/+1
| | |
* | | Merge pull request #11850 from razielgn/mod-delegation-backtraceRafael Mendonça França2013-08-211-2/+1
|\ \ \ | | | | | | | | Generalize backtrace check on DelegationError.
| * | | Rely on NoMethodError#name when deciding to raise DelegationError.Federico Ravasio2013-08-121-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Different Ruby implementations present backtraces differently, as it should be an information consumed by humans. A better implementation should use data from the error, in this case returned by NoMethodError#name. Fixes issues with Rubinius, which presents backtraces differently from MRI.
* | | | ensure freeze on Thread freezes localsNick Howard2013-08-191-0/+5
| | | |
* | | | oops, I missed this in 7193f75Guillermo Iguaran2013-08-181-1/+1
| | | |
* | | | Rename @locals to @_locals in Thread to avoid conflict with Rubinius. Closes ↵Guillermo Iguaran2013-08-181-7/+7
| | | | | | | | | | | | | | | | #11831
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2013-08-173-2/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: actionview/README.rdoc activerecord/lib/active_record/migration.rb guides/source/development_dependencies_install.md guides/source/getting_started.md
| * | | | Revert "Merge branch 'master' of github.com:rails/docrails"Vijay Dev2013-08-173-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 70d6e16fbad75b89dd1798ed697e7732b8606fa3, reversing changes made to ea4db3bc078fb3093ecdddffdf4f2f4ff3e1e8f9. Seems to be a code merge done by mistake.
* | | | | Typo Fix[ci skip]Rashmi Yadav2013-08-141-3/+3
| | | | |
* | | | | Add String#remove(pattern) as a short-hand for the common pattern of ↵David Heinemeier Hansson2013-08-131-0/+10
| |/ / / |/| | | | | | | | | | | String#gsub(pattern, '')
* | | | No need to use blocks hereAndrew White2013-08-041-11/+9
| | | |
* | | | Fix jruby warning when capture calls unlink on an open tempfileAlex Tambellini2013-08-021-0/+1
| | | | | | | | | | | | | | | | Jruby cannot unlink a tempfile unless it is closed first.
* | | | Refactor Date, Time, DateTime timezone methodsGilad Zohari2013-08-014-59/+47
| | | | | | | | | | | | | | | | | | | | | | | | Similar implementations of #in_time_zone exists for Date, Time and DateTime so method is extracted into its own module. Also some logic is extracted into private method.
* | | | Remove duplication from date_time calculationsGilad Zohari2013-07-311-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | Methods: :past? and :future? are already defined identically in date_and_time/calculations.rb which is included in Date. Because DateTime is a subclass of Date, it can call them.
* | | | Merge pull request #10879 from makaroni4/masterAndrew White2013-07-293-0/+30
|\ \ \ \ | | | | | | | | | | Added Time#middle_of_day method