Ruby脳になりきれてない

ログを解析するツールRuby で書いていたのですが、Array クラスのメソッドとか見ながら、

ついつい

start_pos = -1
log_lines.each_width_index do |e, ix|
  if (start_pos < 0 && e =~ /PATTERN/)
    start_pos = ix
    break
  end
end

こんなコードを書いてしまい。

んぅ〜 汚い !! Rubyらしくない !! と反省し、


まず

start_pos = log_lines.first_position {|e| e =~ /PATTERN/}

自分のやりたい事をメソッドとして書いてみた。

これは、Rubyらしく キレイ かも


それから、Array クラスに 自分のメソッドを追加

class Array
  def first_position (&block)
    self.each_with_index {|e, ix| return ix  if (block.call(e))}
    -1
  end
end

いいかも!

まだまだ、Ruby脳になりきれてない 私でした・・・