diff options
author | Stuart Campbell <stuart@harto.org> | 2018-04-30 16:04:13 -0700 |
---|---|---|
committer | Paul Yang <TeBoring@users.noreply.github.com> | 2018-04-30 16:04:13 -0700 |
commit | 05c2d01b61520dd801a2d1a65a28164de7d92bd0 (patch) | |
tree | b66ca0f58ab0b141028a0cb6684cde70d81ad306 /ruby | |
parent | 0869b1a0a7455dab94981aa29b8bfb69444fa13e (diff) | |
download | protobuf-05c2d01b61520dd801a2d1a65a28164de7d92bd0.tar.gz protobuf-05c2d01b61520dd801a2d1a65a28164de7d92bd0.tar.bz2 protobuf-05c2d01b61520dd801a2d1a65a28164de7d92bd0.zip |
Fix RepeatedField#delete_if (#4292)
Make RepeatedField#delete_if consistent with Array#delete_if.
Diffstat (limited to 'ruby')
-rw-r--r-- | ruby/lib/google/protobuf/repeated_field.rb | 4 | ||||
-rw-r--r-- | ruby/tests/repeated_field_test.rb | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/ruby/lib/google/protobuf/repeated_field.rb b/ruby/lib/google/protobuf/repeated_field.rb index 11d6c2eb..2dae1e65 100644 --- a/ruby/lib/google/protobuf/repeated_field.rb +++ b/ruby/lib/google/protobuf/repeated_field.rb @@ -150,12 +150,12 @@ module Google end - %w(delete delete_at delete_if shift slice! unshift).each do |method_name| + %w(delete delete_at shift slice! unshift).each do |method_name| define_array_wrapper_method(method_name) end - %w(collect! compact! fill flatten! insert reverse! + %w(collect! compact! delete_if fill flatten! insert reverse! rotate! select! shuffle! sort! sort_by! uniq!).each do |method_name| define_array_wrapper_with_result_method(method_name) end diff --git a/ruby/tests/repeated_field_test.rb b/ruby/tests/repeated_field_test.rb index b64c3991..61ac4afd 100644 --- a/ruby/tests/repeated_field_test.rb +++ b/ruby/tests/repeated_field_test.rb @@ -369,6 +369,15 @@ class RepeatedFieldTest < Test::Unit::TestCase end end + def test_delete_if + m = TestMessage.new + reference_arr = %w(foo bar baz) + m.repeated_string += reference_arr.clone + check_self_modifying_method(m.repeated_string, reference_arr) do |arr| + arr.delete_if { |v| v == "bar" } + end + end + def test_fill m = TestMessage.new reference_arr = %w(foo bar baz) |