[TxMt] Re: run_script.rb

Alex Ross tm-alex at rosiba.com
Mon Aug 25 06:51:44 UTC 2008


On Aug 25, 2008, at 5:12 AM, Charles Turner wrote:

> On Sun, 24 Aug 2008 20:08:48 -0500, James Gray wrote:
>> We need something that works in both places, so we need to check for
>> the new 1.9 method lines and map() over it instead, if present.  The
>> code would be something like:
>>
>>   str.send(str.respond_to?(:lines) ? :lines, :to_s).map { … }
>
> Thanks for your suggestion. The solution is a bit tricky, though. I
> think I have to test for String's support of :map in 1.8, because
> :each_line is supported in both 1.8 and 1.9.
>
> In 1.8, you can do:                   a.map
> but in 1.9, I think you have to do:   a.each_line.to_a.map
>
> The next trick is sending a symbol. It looks like in 1.8 you can say
> "a.send(:map)", but the equivalent "a.send(:each_line.to_a.map)" isn't
> a valid symbol reference in Ruby.
>
> I rewrote your suggestion as:
>
> a.respond_to?(:map) ? a.map : a.each_line.to_a.map do |line| print  
> line
> end
>
> which works for 1.9, but doesn't in 1.8, I think because of the
> conditional's relation the "do" block.
>
> Anyway, I'll keep working at it, and thanks again for the knowledge!

I have some changes pending that I think will fix this.  Mind holding  
off for a bit?

―Alex




More information about the textmate mailing list