diff --git a/Examples/test-suite/ruby/cpp11_hash_tables_runme.rb b/Examples/test-suite/ruby/cpp11_hash_tables_runme.rb index db910505e..a7b384692 100644 --- a/Examples/test-suite/ruby/cpp11_hash_tables_runme.rb +++ b/Examples/test-suite/ruby/cpp11_hash_tables_runme.rb @@ -5,6 +5,9 @@ require 'cpp11_hash_tables' Cpp11_hash_tables::MultiMapIntInt.new({1=>7}), Cpp11_hash_tables::UnorderedMapIntInt.new({1=>7}), Cpp11_hash_tables::UnorderedMultiMapIntInt.new({1=>7})].each{|x| + + swig_assert_equal("x.find_all{|e,k| e == 1}", "[[1,7]]", binding) + swig_assert_equal("x[1]", "7", binding) swig_assert_equal("x[2]", "nil", binding) x[2] = 9 @@ -27,6 +30,9 @@ require 'cpp11_hash_tables' Cpp11_hash_tables::MultiSetInt.new([1]), Cpp11_hash_tables::UnorderedSetInt.new([1]), Cpp11_hash_tables::UnorderedMultiSetInt.new([1])].each{|x| + + swig_assert_equal("x.find_all{|e| e == 1}", "[1]", binding) + swig_assert_equal("x.include?(1)", "true", binding) swig_assert_equal("x.include?(2)", "false", binding) x << 2 @@ -42,3 +48,13 @@ require 'cpp11_hash_tables' x << 1 swig_assert_equal("x.count(1)", "2", binding) } + +[Cpp11_hash_tables::MapIntInt, + Cpp11_hash_tables::MultiMapIntInt, + Cpp11_hash_tables::UnorderedMapIntInt, + Cpp11_hash_tables::UnorderedMultiMapIntInt, + Cpp11_hash_tables::SetInt, + Cpp11_hash_tables::UnorderedSetInt, + Cpp11_hash_tables::UnorderedMultiSetInt].each{|k| + swig_assert("k.include?(Enumerable)", binding) +} diff --git a/Lib/ruby/std_multiset.i b/Lib/ruby/std_multiset.i index 87a7b292a..252ae10d2 100644 --- a/Lib/ruby/std_multiset.i +++ b/Lib/ruby/std_multiset.i @@ -36,7 +36,7 @@ #define %swig_multiset_methods(Set...) %swig_set_methods(Set) - +%mixin std::multiset "Enumerable"; %rename("delete") std::multiset::__delete__; %rename("reject!") std::multiset::reject_bang; diff --git a/Lib/ruby/std_unordered_multiset.i b/Lib/ruby/std_unordered_multiset.i index 8e0a62b30..29fa73a98 100644 --- a/Lib/ruby/std_unordered_multiset.i +++ b/Lib/ruby/std_unordered_multiset.i @@ -36,6 +36,8 @@ #define %swig_unordered_multiset_methods(Set...) %swig_unordered_set_methods(Set) +%mixin std::unordered_multiset "Enumerable"; + %rename("delete") std::unordered_multiset::__delete__; %rename("reject!") std::unordered_multiset::reject_bang; %rename("map!") std::unordered_multiset::map_bang;