aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext
Commit message (Collapse)AuthorAgeFilesLines
* doc: date/conversions.rb should talk about date format not time format.Yves Senn2013-12-101-2/+2
| | | | | | Closes #13245. [ci skip]
* Fix issue with Kernel#silence_stream leaking file descriptorsMario Visic2013-12-061-0/+1
| | | | | | | Calling Kernel#silence_stream creates a new file descriptor which isn't closed after it is used. As a result calling silence_stream multiple times leads to a build up of loose file descriptors and can cause issues in environments where garbage collection isn't run often.
* Review json_escape docs [ci skip]Carlos Antonio da Silva2013-12-041-22/+22
|
* Also move html_esacpe regex to a constant (see 9d25af60)Godfrey Chan2013-12-041-1/+2
|
* Added \u2028 \u2029 to json_escapeGodfrey Chan2013-12-041-5/+7
|
* Use lower case letters in unicodes sequences to match the new encoder's outputGodfrey Chan2013-12-041-1/+1
|
* Fixed a long-standing bug in `json_escape` that strips quotation marksGodfrey Chan2013-12-041-12/+49
|
* Added Date#all_week/month/quarter/year for generating date rangesDimko2013-12-032-21/+21
|
* Tidy up previous commit, fix message assertion and improve testsCarlos Antonio da Silva2013-12-031-1/+3
|
* Modify the Hash#assert_valid_keys error message so that it shows the valid ↵Nerian2013-12-031-3/+3
| | | | | | | | | | | | | | | | | | | | keys. Also, show the wrong value as it was entered. { :failore => "stuff", :funny => "business" }.assert_valid_keys([ :failure, :funny ]) => ArgumentError: Unknown key: failore { 'failore' => "stuff", :funny => "business" }.assert_valid_keys([ :failure, :funny ]) => ArgumentError: Unknown key: failore { 'failore' => "stuff", :funny => "business" }.assert_valid_keys([ :failure, :funny ]) => ArgumentError: Unknown key: "failore". Valid keys are: :failure, :funny { :failore => "stuff", :funny => "business" }.assert_valid_keys([ :failure, :funny ]) => ArgumentError: Unknown key: :failore. Valid keys are: :failure, :funny Conflicts: activerecord/CHANGELOG.md Closes #11624.
* Avoid generating more strings while iterating to create methodsCarlos Antonio da Silva2013-12-021-1/+1
| | | | | Use the already existing strings instead of creating a new one each time just to test if it responds to the methods.
* Unify cattr and mattr accessors declarationsGenadi Samokovarov2013-12-023-195/+165
|
* Merge pull request #13111 from akshay-vishnoi/typoCarlos Antonio da Silva2013-11-301-2/+2
|\ | | | | Typo fixes [ci skip]
| * Typo fixes [ci skip]Akshay Vishnoi2013-11-301-2/+2
| |
* | Improve Module#delegate documentation to tell that delegate don't work with ↵Lauro Caetano2013-11-291-0/+2
|/ | | | private or protected methods. [ci skip]
* [ci skip] removed singulars section from classify docGreg Molnar2013-11-271-4/+0
|
* Deprecated Numeric#{ago,until,since,from_now}Godfrey Chan2013-11-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | The user is expected to explicitly convert the value into an AS::Duration, i.e. `5.ago` => `5.seconds.ago` This will help to catch subtle bugs like: def recent?(days = 3) self.created_at >= days.ago end The above code would check if the model is created within the last 3 **seconds**. In the future, `Numeric#{ago,until,since,from_now}` should be removed completely, or throw some sort of errors to indicate there are no implicit conversion from `Numeric` to `AS::Duration`. Also fixed & refactor the test cases for Numeric#{ago,since} and AS::Duration#{ago,since}. The original test case had the assertion flipped and the purpose of the test wasn't very clear.
* Process::Status should get a :nodoc: [ci skip]Godfrey Chan2013-11-261-1/+1
|
* Removed the Ruby encoder and switched to using the JSON gemGodfrey Chan2013-11-261-28/+0
| | | | | | | | | Got all the tests passing again. Support for `encode_json` has been removed (and consequently the ability to encode `BigDecimal`s as numbers, as mentioned in the previous commit). Install the `activesupport-json_encoder` gem to get it back.
* Removed support for encoding BigDecimal as a JSON numberGodfrey Chan2013-11-261-8/+1
| | | | | | | | | | This is because the new encoder will no longer support encode_json. Therefore our only choice is to return `to_i` or `to_s` in `BigDecimal#as_json`. Since casting a BigDecimal to an integer is most likely a lossy operation, we chose to encode it as a string. Support for encoding BigDecimal as a string will return via the `activesupport-json_encoder` gem.
* Merge remote-tracking branch 'docrails/master'Xavier Noria2013-11-249-57/+57
|\ | | | | | | | | | | Conflicts: activesupport/lib/active_support/core_ext/hash/deep_merge.rb activesupport/lib/active_support/core_ext/hash/keys.rb
| * The option is called encode_big_decimal_as_string [ci-skip]Godfrey Chan2013-11-151-1/+1
| |
| * Change syntax format for example returned valuesPrem Sichanugrist2013-11-119-60/+60
| | | | | | | | | | | | | | | | | | According to our guideline, we leave 1 space between `#` and `=>`, so we want `# =>` instead of `#=>`. Thanks to @fxn for the suggestion. [ci skip]
* | 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
| | |