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脳になりきれてない 私でした・・・