Question

I'm not sure why I get this error, since it does seem to be an array in Ruby 1.8.7.

Here is the relevant code:

rows.each_with_index do |row, index|
    if (index == 0) then
        log "Found the following slow statements (took over #{slow_query_threshold} seconds):"
    end
    row_data = row.strip().split('|')
    connections = row_data[1].split(', ')
    n_more = '... and #{connections.length - 3} more' if connections.length > 3
    log %{[#{row_data[0]}] on #{connections.take(3).join(', ')} #{n_more}}
end

Which gives me this error:

2013-04-10T05:36:45.04Z : Found the following slow statements (took over 5.0 seconds):
/myscript.rb:111: undefined method `take' for ["App15(28.39sec)"]:Array (NoMethodError)
     from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `each_with_index'
Was it helpful?

Solution

You must be running on 1.8.6. Upgrade, or require 'backports/1.8.7/enumerable/take'

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top