Brian Candler wrote:
> On Wed, May 30, 2007 at 10:46:33PM +0900, SonOfLilit wrote:
>> Sorry, found a bug, I'll need to make it into this:
>>
>> module Enumerable
>>  def serially(&b)
>>    a = []
>>    self.each{|x| t = ([x].instance_eval(&b); a << b[0] unless b.empty?}
>>    # notice, relevance to "it" discussion that's currently going on, just 
>>    btw
>>  end
>> end
> 
> Somehow I don't think you tested this :-)
> 
> * You have mismatched parentheses
> * You assign to t, but never use the value
> * you call b twice, once with no arguments, and once with 0 as an argument
> * b is a block, but you call #empty? on it
> 
> Can you give an example of how this is supposed to be used?
> 
> Brian.
> 

I think I get his point. I wrote a little lib to try out my 
interpretation of what he is trying to do.


a = (1..20)

b = a.serially do
     select do |x|
         if x > 10
             true
         else
             false
         end
     end
     collect do |x|
         "0x" + x.to_s
     end
     select do |x|
         if x == "0x15"
             false
         else
             true
         end
     end
end

puts b



# generates

0x11
0x12
0x13
0x14
0x16
0x17
0x18
0x19
0x20

The lib is at

http://xtargets.com/snippets/posts/show/69

--
Brad Phelan
http://xtargets.com/snippets