crontab モジュールで warning

RAA - crontab

を require したら怒られた。

warning: parenthesize argument(s) for future version

引数を与えるなら ( ) を書きましょう、ということらしい。

cf. [ruby-dev:17868] Re: parenthesize argument(s) for future version

@@ -111,7 +111,7 @@

   def add(str, job = nil)
     job = proc if iterator?
-    @table.push((parse_timedate(str) << job).extend CronRecord)
+    @table.push((parse_timedate(str) << job).extend( CronRecord ))
   end

   attr_reader :table
@@ -173,9 +173,9 @@
              elsif l.nil?
                f.to_i .. f.to_i
              elsif f.to_i < first
-               raise FormatError.new "out of range (#{f} for #{first})"
+               raise FormatError.new( "out of range (#{f} for #{first})" )
              elsif last < l.to_i
-               raise FormatError.new "out of range (#{l} for #{last})"
+               raise FormatError.new( "out of range (#{l} for #{last})" )
              else
                f.to_i .. l.to_i
              end

こんな感じですか。よく分かってないけど、警告は出なくなった。使ってみるのはこれからです。

……。

おっと。これ、環境変数を定義している行を無視できてないな。(MAILTO = とか使いませんか。)

@@ -136,7 +136,8 @@
   def parse(str)
     res = []
     str.each{|line|
       next if /(\A#)|(\A\s*\Z)/ =~ line
+      next if /(?:\S+\s+){5}(.*)/ !~ line
       res.push(parse_timedate(line).
               push(line.scan(/(?:\S+\s+){5}(.*)/).shift[-1]))
     }

こういうことですか。なんか二度手間っちゃ二度手間なんだけど、いきなり res.push しちゃってるからしょうがないか。parse_timedate() が解釈に失敗したときに false を返すとかすればいいのかしらん。

More