第33回 Ruby/Rails 勉強会 - 演習 2 - 修正

no6v さんに指摘されたので修正。

--- cat.rb.org	2009-05-06 20:11:03.000000000 +0900
+++ cat.rb	2009-05-06 20:46:31.000000000 +0900
@@ -65,6 +65,7 @@
 
 def squeeze_blank!(buf)
   buf.gsub!(/(\r?\n)\1+/, '\1\1')
+  buf.gsub!(/\A(\r?\n)\1+/, '\1')
 end
 
 def count_lines_and_print(opt, n, line)
@@ -92,7 +93,7 @@
 end
 
 def show_nonprinting_hash
-  c  = to_printable_array('@'..'_', $C_OFFSET){|c| "^#{c}"}
+  c  = to_printable_array('@'..'_', $C_OFFSET){|c| "^#{c}"} << [0177.chr, "^?"]
   m  = to_printable_array('@'..'_', $M_OFFSET){|c| "M-#{c}"}
   mc = to_printable_array('@'..'_', $M_C_OFFSET){|c| "M-^#{c}"}

他の人の解答を見ると、

  • 入力に対してオプションに応じた加工をすれば結果が出る

というアプローチみたい。

一方 自分は、

  • cat には 3 つの機能がある
    • 空行をまとめる
    • 行番号を付ける
    • 非表示文字を可視化

と思って実装した。

絶対復習で eXtreme Reading

ある程度、読み進んだら、気になったところのメモを取る。

読み終えた章を絶対復習に登録。

合計 4 回、復習できるので、適当に html に落としてゆく。

復習しないと毎日 RSS フィードされてくる。

連休に入って復習してないから、とんでもないことに。