aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Campbell <stuart@harto.org>2018-04-30 16:04:13 -0700
committerPaul Yang <TeBoring@users.noreply.github.com>2018-04-30 16:04:13 -0700
commit05c2d01b61520dd801a2d1a65a28164de7d92bd0 (patch)
treeb66ca0f58ab0b141028a0cb6684cde70d81ad306
parent0869b1a0a7455dab94981aa29b8bfb69444fa13e (diff)
downloadprotobuf-05c2d01b61520dd801a2d1a65a28164de7d92bd0.tar.gz
protobuf-05c2d01b61520dd801a2d1a65a28164de7d92bd0.tar.bz2
protobuf-05c2d01b61520dd801a2d1a65a28164de7d92bd0.zip
Fix RepeatedField#delete_if (#4292)
Make RepeatedField#delete_if consistent with Array#delete_if.
-rw-r--r--ruby/lib/google/protobuf/repeated_field.rb4
-rw-r--r--ruby/tests/repeated_field_test.rb9
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)