1. 29 5月, 2015 1 次提交
    • K
      Add Enumerable#pluck. · d9092117
      Kevin Deisz 提交于
      Allows fetching the same values from arrays as from ActiveRecord associations.
      d9092117
  2. 24 5月, 2015 1 次提交
  3. 23 5月, 2015 1 次提交
  4. 20 5月, 2015 2 次提交
    • Y
      add missing punctuation in changelog. [ci skip] · 1ceeadad
      Yves Senn 提交于
      1ceeadad
    • N
      Patch `Delegator` to work with `#try` · af53280a
      Nate Smith 提交于
      `Delegator` inherits from `BasicObject`, which means that it will not
      have `Object#try` defined. It will then delegate the call to the
      underlying object, which will not (necessarily) respond to the method
      defined in the enclosing `Delegator`.
      
      This patches `Delegator` with the `#try` method to work around the
      surprising behaviour.
      
      Fixes #5790
      af53280a
  5. 19 5月, 2015 1 次提交
  6. 16 5月, 2015 1 次提交
  7. 14 5月, 2015 2 次提交
  8. 23 4月, 2015 2 次提交
    • A
      Improve ActiveSupport::TimeWithZone conversion to YAML · 3aa26cfb
      Andrew White 提交于
      Previously when converting AS::TimeWithZone to YAML it would be output
      as a UTC timestamp. Whilst this preserves the time information accurately
      it loses the timezone information. This commit changes that so that it is
      saved along with the time information. It also provides nicer encoding of
      AS::TimeZone instances themselves which previously embedded all of the
      data from the TZInfo records.
      
      Fixes #9183.
      3aa26cfb
    • P
      Add ActiveSupport::TimeZone#strptime. · a5e507fa
      Paul A Jungwirth 提交于
      This makes it easier to parse user-inputted times as from a given time zone.
      a5e507fa
  9. 22 4月, 2015 1 次提交
  10. 03 4月, 2015 1 次提交
    • I
      Raise ArgumentError if an unrecognised callback is skipped · d2876141
      Iain Beeston 提交于
      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.
      d2876141
  11. 31 3月, 2015 1 次提交
  12. 28 3月, 2015 1 次提交
  13. 25 3月, 2015 1 次提交
    • G
      Add ActiveSupport::ArrayInquirer and Array#inquiry · c64b99ec
      George Claghorn 提交于
      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
      c64b99ec
  14. 23 3月, 2015 1 次提交
  15. 09 3月, 2015 1 次提交
    • A
      Revert "Take DST into account when locating TimeZone from Numeric." · 34b27701
      Andrew White 提交于
      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 2cc2fa36.
      34b27701
  16. 06 3月, 2015 2 次提交
  17. 04 3月, 2015 1 次提交
  18. 02 3月, 2015 1 次提交
  19. 25 2月, 2015 1 次提交
  20. 23 2月, 2015 1 次提交
  21. 12 2月, 2015 1 次提交
    • G
      Properly dump primitive-like AS::SafeBuffer strings as YAML · debe7aed
      Godfrey Chan 提交于
      `coder.represent_scalar` means something along the lines of "Here is a quoted
      string, you can just add it to the output", which is not the case here. It only
      works for simple strings that can appear unquoted in YAML, but causes problems
      for e.g. primitive-like strings ("1", "true").
      
      `coder.represent_object` on the other hand, means that "This is the Ruby-object
      representation for this thing suitable for use in YAML dumping", which is what
      we want here.
      
      Before:
      
         YAML.load ActiveSupport::SafeBuffer.new("Hello").to_yaml  # => "Hello"
         YAML.load ActiveSupport::SafeBuffer.new("true").to_yaml   # => true
         YAML.load ActiveSupport::SafeBuffer.new("false").to_yaml  # => false
         YAML.load ActiveSupport::SafeBuffer.new("1").to_yaml      # => 1
         YAML.load ActiveSupport::SafeBuffer.new("1.1").to_yaml    # => 1.1
      
       After:
      
         YAML.load ActiveSupport::SafeBuffer.new("Hello").to_yaml  # => "Hello"
         YAML.load ActiveSupport::SafeBuffer.new("true").to_yaml   # => "true"
         YAML.load ActiveSupport::SafeBuffer.new("false").to_yaml  # => "false"
         YAML.load ActiveSupport::SafeBuffer.new("1").to_yaml      # => "1"
         YAML.load ActiveSupport::SafeBuffer.new("1.1").to_yaml    # => "1.1"
      
      If we ever want Ruby to behave more like PHP or JavaScript though, this is an
      excellent trick to use ;)
      debe7aed
  22. 06 2月, 2015 1 次提交
  23. 03 2月, 2015 1 次提交
  24. 28 1月, 2015 1 次提交
  25. 17 1月, 2015 1 次提交
  26. 14 1月, 2015 1 次提交
  27. 10 1月, 2015 2 次提交
  28. 06 1月, 2015 3 次提交
  29. 04 1月, 2015 5 次提交