未验证 提交 77ca887d 编写于 作者: R Rafael França 提交者: Rafael Mendonça França

Merge pull request #38117 from nicolasdular/nicolasdular/fix-frozen-strings-in-to-sentence

Return unfrozen strings from to_sentence
上级 6d654cc6
* `Array#to_sentence` no longer returns a frozen string.
Before:
['one', 'two'].to_sentence.frozen?
# => true
After:
['one', 'two'].to_sentence.frozen?
# => false
*Nicolas Dular*
* Update `ActiveSupport::Messages::Metadata#fresh?` to work for cookies with expiry set when
`ActiveSupport.parse_json_times = true`.
......
......@@ -74,13 +74,13 @@ def to_sentence(options = {})
case length
when 0
""
+""
when 1
"#{self[0]}"
+"#{self[0]}"
when 2
"#{self[0]}#{options[:two_words_connector]}#{self[1]}"
+"#{self[0]}#{options[:two_words_connector]}#{self[1]}"
else
"#{self[0...-1].join(options[:words_connector])}#{options[:last_word_connector]}#{self[-1]}"
+"#{self[0...-1].join(options[:words_connector])}#{options[:last_word_connector]}#{self[-1]}"
end
end
......
......@@ -68,6 +68,13 @@ def test_always_returns_string
assert_instance_of String, [ActiveSupport::SafeBuffer.new("one"), "two"].to_sentence
assert_instance_of String, [ActiveSupport::SafeBuffer.new("one"), "two", "three"].to_sentence
end
def test_returns_no_frozen_string
assert_not [].to_sentence.frozen?
assert_not ["one"].to_sentence.frozen?
assert_not ["one", "two"].to_sentence.frozen?
assert_not ["one", "two", "three"].to_sentence.frozen?
end
end
class ToSTest < ActiveSupport::TestCase
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册