aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext
Commit message (Collapse)AuthorAgeFilesLines
* Adding Hash#compact and Hash#compact! methodstinogomes2014-01-092-0/+21
| | | | | | | | | | | * Adding Hash#compact and Hash#compact! methods * Using Ruby 1.9 syntax on documentation * Updating guides for `Hash#compact` and `Hash#compact!` methods * Updating CHANGELOG for ActiveSupport * Removing unecessary protected method and lambda for `Hash#compact` implementations * Performing `Hash#compact` implementation - https://gist.github.com/tinogomes/8332883 * fixing order position * Fixing typo
* Revert "Speedup String#to"Yves Senn2014-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2ef1fb2c455ca53a0c1e1768f50824926ce28bd3. As described in PR #13627 this commit broke functionality when passing a negative Fixnum to the `String#to` method: ```ruby assert_equal "hell", s.to(-2) ``` Before the revert, this failed with: ``` 1) Failure: StringAccessTest#test_#to_with_negative_Fixnum,_position_is_counted_from_the_end [test/core_ext/string_ext_test.rb:275]: Expected: "hell" Actual: nil ``` This revert is to keep the functionality on `master` working. If there is another way to get the performance benefit and keep the documented functionality we can add that. /cc @amatsuda @carlosantoniodasilva
* Merge pull request #10634 from teleological/time_advance_gregorianAndrew White2014-01-051-4/+6
|\ | | | | Maintain proleptic gregorian in Time#advance
| * Maintain proleptic gregorian in Time#advanceRiley Lynch2013-05-151-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Time#advance uses Time#to_date and Date#advance to calculate a new date. The Date object returned by Time#to_date is constructed with the assumption that the Time object represents a proleptic gregorian date, but it is configured to observe the default julian calendar reform date (2299161j) for purposes of calculating month, date and year: Time.new(1582, 10, 4).to_date.to_s # => "1582-09-24" Time.new(1582, 10, 4).to_date.gregorian.to_s # => "1582-10-04" This patch ensures that when the intermediate Date object is advanced to yield a new Date object, that the Time object for return is contructed with a proleptic gregorian month, date and year.
* | Avoid raising a NameError on FreeBSD using DateRobin Dupret2014-01-011-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | The Date object has a xmlschema method starting with Ruby 1.9 so we were assuming that we could safely remove this method and redefine it later but the call to remove_method throws a NameError on FreeBSD so we should rely on remove_possible_method instead. This call is actually needed to avoid warnings when running the test suite. Fixes #11723
* | blank? and present? commit to return singletons [Xavier Noria & Pavel Pravosud]Xavier Noria2013-12-281-18/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The contract of blank? and present? was in principle to return Object, as we generally do, the test suite and description was consistent with that, but some examples had comments like "# => true". This cannot be unclear, we either fix the examples, or update the contract. Since users may be already assuming singletons due to the examples and the fact that they were returned before 30ba7ee, the safest option seems to be to revise the contract and the implementation of String#blank? The motivation for 30ba7ee was to improve the performance of the predicate, the refactor based on === is on par regarding speed. With this commit we start documenting return types using YARD conventions. We plan to document return types gradually.
* | Extracted blank matcher regexp to constantPaul Nikitochkin2013-12-281-1/+3
| |
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-12-202-7/+7
|\ \
| * | fixed typo mistake time_formats.rb -> date_formats.rb [ci skip]Kuldeep Aggarwal2013-12-101-1/+1
| | |
| * | Typos. return -> returns. [ci skip]Lauro Caetano2013-12-032-7/+7
| | |
* | | Prevent creation of instance methods when `instance_reader = false`, Grammar ↵Akshay Vishnoi2013-12-191-8/+9
| | | | | | | | | | | | checks, Conditional statements combined
* | | Merge pull request #13400 from nishant-cyro/docsGuillermo Iguaran2013-12-181-1/+1
|\ \ \ | | | | | | | | fix typos and grammar mistake [ci skip]
| * | | fix typos and grammar mistake [ci skip]nishant-cyro2013-12-191-1/+1
| | | |
* | | | concern doesn't include the module automaticallyRafael Mendonça França2013-12-171-1/+0
| | | | | | | | | | | | | | | | [ci skip]
* | | | Introduce Module#concerningJeremy Kemper2013-12-172-0/+137
| | | | | | | | | | | | | | | | | | | | | | | | A natural, low-ceremony way to separate responsibilities within a class. Imported from https://github.com/37signals/concerning#readme
* | | | Merge pull request #13321 from mezis/fix-safebuffer-interpolation-masterJeremy Kemper2013-12-161-7/+12
|\ \ \ \ | | | | | | | | | | Fixes interpolation on SafeBuffer
| * | | | Fixes interpolation on SafeBufferJulien Letessier2013-12-141-7/+12
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interpolation was untested and did not work with hash arguments. Adds - support for interpolation with hash argument - tests for the above - tests for safe/unsafe interpolation
* / / / Spelling and Grammar check [ci skip]Akshay Vishnoi2013-12-161-2/+2
|/ / /
* | | 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]