# Refactor into a class method

**URL:** <https://www.ruby-forum.com/t/refactor-into-a-class-method/123043>\
**Category:** Ruby\
**Created:** [December 13, 2007, 4:53pm UTC](https://www.ruby-forum.com/t/refactor-into-a-class-method/123043 "2007-12-13T16:53:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ruby\_tl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c0e974/32.png) [@ruby\_tl](https://www.ruby-forum.com/u/ruby_tl)\
**Post date:** [December 13, 2007, 4:53pm UTC](https://www.ruby-forum.com/t/refactor-into-a-class-method/123043/1 "2007-12-13T16:53:15Z")

</div>

objects = [bsn0, bsn1, bsn2, bsn3, bsn4]  
search = [“Sole Trader”]  
results = objects.select do |b|  
match = true  
catch(:success) do  
search.each{|s| throw :success if b.my\_keywords.include?(s) }  
match = false  
end  
match

end  
puts (" “)  
puts “Search Results”  
puts (” ")  
results.each{|r| puts r }

---

<div class="post-metadata">

**Author:** ![ruby\_tl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/c0e974/32.png) [@ruby\_tl](https://www.ruby-forum.com/u/ruby_tl)\
**Post date:** [December 13, 2007, 5:09pm UTC](https://www.ruby-forum.com/t/refactor-into-a-class-method/123043/2 "2007-12-13T17:09:09Z")

</div>

2007/12/13, Ruby G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> objects = [bsn0, bsn1, bsn2, bsn3, bsn4]  
> search = [“Sole Trader”]  
> results = objects.select do |b|  
> match = true  
> catch(:success) do  
> search.each{|s| throw :success if b.my\_keywords.include?(s) }

^^^^^^^^  
I suggest you use Enumerable#any? instead of #each here and throw away  
the catch throw logic.

> ```
> match = false
> 
> ```
> 
> end  
> match
> 
> end  
> puts (" “)  
> puts “Search Results”  
> puts (” ")  
> results.each{|r| puts r }

What was the question again?

robert
