2007-09-24

上のレイヤーに絞ってみる

odz buffer - だれかまとめてくれないかな

※ まとめる気全然なくてごめんなさい。

特定の処理系ベッタリになってもらっちゃ困るっつーのは当然上のレイヤーでもあって、

  • オブジェクト指向 = Java のオブジェクト指向と思い込む
  • 何で書いても BASIC みたいなコードを書く(BASIC は適当な他の言語に置き換えてもらっても ok)

人って意外と多いよねぇ、てなことを思いました。つかありゃいったいなんなんだという怒りを素直に表明しておきますが。

こういうのに巡り会うともっとちゃんと勉強してほしい、と強く思いますね。お前は Java の教科書(当然仕様書じゃなくて、本屋で手に入る割とやさしめの本)に書いてあったことがすべてなのか、とかいつまで変数名 8文字までなんすか、とかなんでイマドキすべて for ( ;; ) なんすか、とか。

でもこういうのって何を学ぶべきなのかなぁ。

いろいろやれ

ってことなのかなぁ。実際いろんな言語は触っておいた方がいいと思うし、自分もできればいろんなものを習得したいと思ってるんだけど、なんかすごくアバウトで、それを他の人に言ったところで、ふーんでおしまいですよね。

cf.

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 を返すとかすればいいのかしらん。

About

例によって個人のなんちゃらです