1. 13 9月, 2013 2 次提交
    • G
      Moved all JSON core extensions into core_ext/object/json · 64c88fb5
      Godfrey Chan 提交于
      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*
      64c88fb5
    • G
      Enabled quirks mode on JSON.parse, fixes broken test in af9caae9 · 52fb1a95
      Godfrey Chan 提交于
      It turns out that ActionPack depends on the decoder to parse JSON
      "fragments" (e.g. '"a string"', '1', 'null', etc), so we need to
      enable quirks mode on JSON.parse. Also added coverage on the decoder
      side to prevent regression.
      52fb1a95
  2. 12 9月, 2013 1 次提交
  3. 11 9月, 2013 3 次提交
  4. 10 9月, 2013 2 次提交
  5. 09 9月, 2013 1 次提交
  6. 27 8月, 2013 1 次提交
    • S
      Ensure all-caps nested consts marked as autoloaded · b4a96686
      Simon Coffey 提交于
      Previously, an autoloaded constant `HTML::SomeClass` would not be marked
      as autoloaded by AS::Dependencies. This is because the
      `#loadable_constants_for_path` method uses `String#camelize` on the
      inferred file path, which in turn means that, unless otherwise directed,
      AS::Dependencies watches for loaded constants in the `Html` namespace.
      
      By passing the original qualified constant name to `#load_or_require`,
      this inference step is avoided, and the new constant is picked up in the
      correct namespace.
      b4a96686
  7. 22 8月, 2013 1 次提交
  8. 21 8月, 2013 3 次提交
  9. 20 8月, 2013 1 次提交
  10. 18 8月, 2013 1 次提交
  11. 14 8月, 2013 1 次提交
  12. 13 8月, 2013 2 次提交
  13. 07 8月, 2013 1 次提交
  14. 04 8月, 2013 1 次提交
    • A
      Fix unused variable warning · dfcef831
      Andrew White 提交于
      We need to call `in_time_zone` to test that it isn't modifying the receiver
      but since the variable isn't used it raises a warning so add an assertion
      to make Ruby think it's being used.
      dfcef831
  15. 03 8月, 2013 1 次提交
    • G
      Avoid calling define_method with non-english chars in InflectorTest · ab5e99ed
      Gaurish Sharma 提交于
      When we call define_method with non-english chars like ¿por qué? it
      errors out on JRuby as of 1.7.4 & would leave out the following error
      
      invalid byte sequence in US-ASCII
      
      To work around this issue, I have switched to define_test method call
      define method with fixed string & the index of the hash. the index was
      added because otherwise, ruby will raise method redefined warning.
      
      As far as I can see there are no side-effect of this change for
      other implementations. For readbility I have added a message to
      asssert_equal informing for which word/phase the test has passed.
      
      Before this Change:
      JRuby:
      Tests terminated suddenly with an error. no reported of Failues
      or errors
      MRI:
      All Green.
      
      After this Change,
      JRuby:
      the `ActiveSupport` TestsSuite gracefully fails with report at the end which test failed & why.
      MRI:
      All Green(no change)
      ab5e99ed
  16. 01 8月, 2013 1 次提交
  17. 30 7月, 2013 1 次提交
  18. 29 7月, 2013 3 次提交
  19. 26 7月, 2013 2 次提交
  20. 22 7月, 2013 2 次提交
  21. 18 7月, 2013 1 次提交
  22. 11 7月, 2013 1 次提交
  23. 10 7月, 2013 1 次提交
    • A
      Add failing test for #9562 · 4d733d2d
      Andrew White 提交于
      Rails 4.0.0 fails when trying to encode an ActiveSupport::TimeWithZone
      that wraps a DateTime instance. This is fixed on master so add a test
      to prevent regression.
      
      (cherry picked from commit ad01b8da)
      4d733d2d
  24. 09 7月, 2013 3 次提交
    • A
      Return local time for backwards compatibility · c42260a3
      Andrew White 提交于
      c42260a3
    • A
      Retain UTC offset when using Time.at_with_coercion · 1b387373
      Andrew White 提交于
      The standard Ruby behavior for Time.at is to return the same type of
      time when passing an instance of Time as a single argument. Since the
      an ActiveSupport::TimeWithZone instance may be a different timezone than
      the system timezone and DateTime just understands offsets the best we
      can do is to return an instance of Time with the correct offset.
      
      Fixes #11350.
      1b387373
    • N
      Fix microsecond precision of Time#at_with_coercion · 48425351
      Neer Friedman 提交于
      When Time.at_with_coercion (wraps Time.at) is called with a single
      argument that "acts_like?(:time)" it is coerced to integer thus losing
      it's microsecond percision.
      
      This commits changes this to use `#to_f` to prevent the problem
      48425351
  25. 08 7月, 2013 1 次提交
  26. 06 7月, 2013 1 次提交
  27. 04 7月, 2013 1 次提交