2008-09-01から1ヶ月間の記事一覧

急にFizzBuzz

モジュールによるMonkey Patch。 module FizzBuzz Divisor = [ 3, 5 ] Strings = [ 'Fizz', 'Buzz' ] def fizzbuzz (rests = Divisor.map{|d| self % d == 0}).inject{|r, i| r || i } ? rests.zip(Strings).map{|r, s| r && s }.select{|x| x }.join : self…

インタプリタのスタックトレースの真似

例外が補足されずに終わったときのやつのこと。 def print_stack_trace(ex) $stderr.puts "#{ex.backtrace.shift}: #{ex.message} (#{ex.class.name})" $stderr.puts ex.backtrace.map{|b| "\tfrom #{b}" } end

RDocのささやかなカスタマイズ

自分でhtml_generatorみたいなのを書くのは大変なので、 if __FILE__ == $0 # RDocを走らせるアプリケーション else # テンプレートの定義 end こんなん書いて'-T'オプションで指定することにした。 アプリ部分は具体的に言うとこんなの。 full_path = File.…

どれくらい日記をつけてんだろうか

$ ls -1 ~/diary/*.txt | cat -n | tail -1 | awk "{print $1}" 96今日のエントリも含めて96日分つけているらしい。 $ wc.exe --bytes ~/diary/*.txt | tail -1 209383 totalついでに。約200KBか。 青空文庫の夏目漱石「こころ」が約360KBだ。(370,958 bytes…

rdv.rb

自作のYARF + VisualuRubyで。 RDをパースしてHTMLに変換した結果をIEコンポーネントで見ます。 立ち上がるのはHTMLをレンダリングして自らに表示するだけの窓です。プルダウンメニューもなにもあったもんじゃありません。見終わったら閉じてください。 requ…

wc.rb

情けないことにいっつもいっつもwcの出力の見方を忘れてhelpを見てるので(つまりそんなに頻繁に使わない)、 require 'optparse' require 'shellwords' echo = true targets = [] add_target = lambda{|ident| lambda{ targets << ident } } no_echo = lambda…

expectrb

標準添付のtestrbみたいなののexpectations用をでっち上げる。 Test::Unit::AutoRunnerに相当するものはないのでそのへんを書いて、自分用に合せる。 pwdがhoge/のときに expectrb -dtest でhoge/test/test_*.rbを実行してくれる辺りは気に入ったかも。ちょ…

いろいろと書いた小物が増えてた

気まぐれに晒してみる。

Float#ceil vs Integer#divmod

とあるアプリを書いているときに、 「ある個数の要素の集まりを、一定の数単位で分ける。 その単位に足りない余りも、分けられた一つとして数える。 するといくつに分けられるか」という処理を書くことになりました。 我ながら日本語が実にヘタだ。つまり例…