How delete inner faces that touch outer loop

Dear friends,
In picture you can see "temp_grp.


Also I run following codes for it.

temp_grp.entities.grep(Sketchup::Face) do |f|
  temp_grp.entities.add_face(f.outer_loop.vertices)
  loops = f.loops - [ f.outer_loop ]
  loops.each do |loop|
    face = temp_grp.entities.add_face(loop.vertices)
    face.erase!                
  end  
end 

As you can see these codes cannot delete faces that touch outer face. How can I delete all inner faces include faces that touch outer face.
Thank you in advance.

Following codes can solve my problem. Any friend can suggest better solution?

temp_grp.entities.grep(Sketchup::Face) do |f|
  vs = f.vertices.size if f.vertices.size > vs
end
temp_grp.entities.grep(Sketchup::Face) do |f|
  f.erase! if f.vertices.size != vs
end