メモの日々


2007年03月19日(月) [長年日記]

  • 全然書くことがない。今日の予定を書く。
    • パスの所の処理を見直して、テストを書く。
    • 検索結果画面に手を付けて、検出の機能を作り始める。
  • テストを書くのはできた。でもテストケースが全然足りない。検出の機能には手が回らず。でもこれは後回しでよいことになった。
  • vimのマウス機能が便利すぎる件を試してみた。すごいんだけど、今までとクリック時の挙動が変わるので使いにくいさが勝る。慣れれば平気かなあ。

[howto][unix] grep -r で対象ファイルを絞り込む

grep -r は簡単でよいけど対象ファイルを絞り込めないので不便、と思っていたが、ときどきの雑記帖 リターンズによると絞り込めるみたい。

試してみた。

$ grep -r adapter *
config/.svn/text-base/database.yml.svn-base:  adapter: sqlite3
config/.svn/text-base/database.yml.svn-base:  adapter: sqlite3
config/.svn/text-base/database.yml.svn-base:  adapter: sqlite3
config/database.yml:  adapter: sqlite3
config/database.yml:  adapter: sqlite3
config/database.yml:  adapter: sqlite3
$ grep -r --include='*.yml' adapter *
config/database.yml:  adapter: sqlite3
config/database.yml:  adapter: sqlite3
config/database.yml:  adapter: sqlite3

ちょっと長くなるけどfindを使うよりは短い。

参考:grepのmanより:

      -R, -r, --recursive
             Read all files under each directory, recursively; this is
             equivalent to the -d recurse option.

        --include=PATTERN
             Recurse in directories only searching file matching PATTERN.

        --exclude=PATTERN
             Recurse in directories skip file matching PATTERN.

[ruby] 今日学んだこと

private_class_method

クラスメソッドをプライベートにするときはprivate_class_methodを使う。

これには private のように以下に書いたもの全てをプライベートにする機能はないみたい。

定数

定数が指しているオブジェクトは変更可能。

一時ディレクトリ、一時ファイル

システムの一時ファイルディレクトリは Dir.tmpdir で取得できる。一時ファイルは Tempfile クラスで作れるようだが一時ディレクトリを作ってくれる標準ライブラリはなさそう。

レシピブックにはDir.tmpdirの返す値が環境変数により変わるように書かれているが、そのような挙動は確認できなかった(ruby 1.8.5 (2006-12-04 patchlevel 2) )。

特異メソッド

特異メソッドを使ってみた。

my_string = String.new
def my_string.mmmmm
  '特異メソッド'
end
puts my_string.mmmmm   #=> 特異メソッド

こんな感じで、オブジェクトmy_stringに対してメソッドを定義できるようだ。

RAILS_GEM_VERSION

environment.rb で定義されている定数 RAILS_GEM_VERSION により、使用するRailsのバージョンが固定されるみたい。この定数を定義しなければ最新のRailsを使ってくれる模様。

[ruby] Refeの文字化け

Refeを使ってみたが文字化けしてしまう。とりあえず適当日記にあったのと同じ修正をした。うーむ。

--- searcher.rb 2003-10-17 21:44:12.000000000 +0900
+++ /usr/lib/ruby/gems/1.8/gems/refe-0.8.0.3/lib/refe/searcher.rb       2007-03-19 15:00:23.000000000 +0900
@@ -9,7 +9,7 @@
 #

 require 'nkf'
-
+require 'iconv'

 module ReFe

@@ -19,7 +19,8 @@
       if shift_jis_platform?
         NKF.nkf('-Es', str)
       else
-        str
+        #str
+        Iconv.iconv("UTF-8","EUC-JP", str)
       end
     end

やること

  • 年金