タグ

ブックマーク / walf443.hatenablog.com (13)

  • 継承可能なクラス属性 - walf443's blog

    Rubyのクラス属性まわりは個人的には結構ややこしいと思っています。 クラスに保存できるデータには以下のようなものがあります。 クラス変数 クラスローカル変数( クラスインスタンス変数? ) メソッド クラス変数 @@variableのように表記します。 以下1.8での挙動。 class Foo @@foo = 'foo' def self.foo @@foo end end class Bar < Foo def self.bar @@foo end def self.update val @@foo = val end end Foo.foo #=> "foo" Bar.foo #=> "foo" Bar.bar #=> "foo" Bar.update 'hoge' #=> "hoge" Bar.bar #=> "hoge" Bar.foo #=> "hoge" Foo.foo #=

    継承可能なクラス属性 - walf443's blog
  • I sort my thought... - BackgrounDRbについて調べてみた

    このページの情報は既にかなり古いです。私は現在あまり使っていませんし、追ってもいないのでこのページの情報が更新されることはあまり期待できないのでなるべく家の情報なりを見た方がよいでしょう。2009年8月現在だと http://d.hatena.ne.jp/tech-kazuhisa/20090816/1250432286 とかで似たような情報をあつかってるみたいです。検索しても結構上にまだくるっぽいのでいちおう追記しておきました。 次回の第8回Rails勉強会@東京でセッション案に上がっていたBackgrounDRbというやつがなにやら面白そげなので調べてみた。 調べてみた感じ以下のページがよくまとまっている。 http://www.infoq.com/articles/BackgrounDRb 以下、この内容を大雑把に要約してみる。 Ruby on Railsは素晴らしいフレームワーク

    I sort my thought... - BackgrounDRbについて調べてみた
  • %wを使ったときに空白を無視するには - walf443's blog

    [ruby-talk:189826]より。*1 %wを使うと空白を区切りとして配列を受けることができますが、空白の入った文字を一つの要素にしたい場合は空白をバックスラッシュでエスケープすれば良いようです。 %w understands backslash escape irb(main):001:0> %w{this\ is a\ test} => ["this is","a test"]From: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/189809 *1:それにしてもメールに[ruby-talk:~]って入ってくれれば良いのに。

    %wを使ったときに空白を無視するには - walf443's blog
  • CPANの設定を最初からやり直す - walf443's blog

    o conf initcoLinuxのDebianがバグったので入れなおしてたらうっかりいろいろ入れる前にCPAN使ってしまったので調べた。

    CPANの設定を最初からやり直す - walf443's blog
  • 第7回Rails勉強会@東京 - walf443's blog

    第7回Rails勉強会@東京へ行ってきました。 第2回以来の久々の参加でした。何人か顔を覚えてくださっていた方もいらっしゃって前回よりも緊張せずに済みました。 パフォーマンスに関してのページを読む。 セッションの提案が滞っていたので一応他の人の意見を聞いてみようかなと印刷してきていたやつをセッションとして提案してしまいました。 InfoQ - Tracking change and innovation in the enterprise software development community http://www.infoq.com/articles/Rails-Performance Railsアプリで遅くなりがちな点について次のようなものがあげられています choosing a slow session container doing things on a per reque

    第7回Rails勉強会@東京 - walf443's blog
  • はじめに・目次 - walf443's blog

    はじめに Railsのソースコードを読みながら個人的に引っかかったところをメモしていきます。コメント・TB大歓迎です。 飽きっぽい性分のためいつまで続くか分かりませんが頑張ってみようかと思います。 いちおう大げさなタイトルを付けて自分にプレッシャーをかけておきました。 とはいえ卒論やら、期末レポートやらいろいろやらなければならないことに追われていますので比較的マイペースに進めていく予定です。 目次は随時追加していきます。 目次 Rails::Initializerを読む 解説しているソースについて ここで解説しているコードはbrancheのstableです。同じコードを読みたい方は以下のようにしてソースコードをダウンロードしてください。 svn co -r 4519 http://dev.rubyonrails.org/svn/rails/branches/stable rails-sta

    はじめに・目次 - walf443's blog
  • コメント行でUnitテストが出来るようにするスクリプト - walf443's blog

    http://d.hatena.ne.jp/walf443/20060710/1152551319 のアイディアを部分的に実装してみた。 一時ファイルに出力して云々とかはしてないのでまだちゃんとした体裁にはなっていないのですが。 今のところの問題は クラスが一つしか認識できないこと setup()メソッドやteardown()メソッドが書けない事 といった感じでまだダメダメなんですがなんかレスポンスがもらえるとうれしいので晒しておきます。 id:kikainekoさんのrubytokにインスパイアされて書いたのですが、コードは一から書き直したので全然違うものとなってます。 実際のコードがこんなんで、 class Hoge # Test: # assert_equal("foo", Hoge.new.foo) def foo "foo" end # Test: # assert_not_eq

    コメント行でUnitテストが出来るようにするスクリプト - walf443's blog
  • 設定ファイルなどのsvn管理について - walf443's blog

    Devconには用事があって行けなくて大変残念だったのですが、自分の場合は、ホームディレクトリは ~/bin/* : コマンドラインからよく使う自分専用のツール(もちろんPATHに入れておく) ~/etc/* : 設定ファイルみたいな構成にしておいて、両方ともsvnで管理してます。 新しいマシンに設定ファイルをコピーするとき一つ一つシンボリックリンクを張るのはめんどくさいなということでRakefileを書いてみました。 `ls etc/`とかしたときに-aを付けないとファイルが見れないのはややめんどくさいのでリンク元ファイルがetc/vimrcなら~/.vimrcでリンクを張るようにしてます。 task :default => [:symlink] task :symlink do |t| FileList['*rc'].each do |filename| absolute_filena

    設定ファイルなどのsvn管理について - walf443's blog
  • 静的Webサイト生成に便利なrote - walf443's blog

    Rubygemsのroteが静的Webサイトの生成に便利です。まだまだ機能は少ないのですが、Railsのレイアウト機能を取ってきた感じなのでRailsやってる人は何となく使い方を把握するのは早いと思います。 `rote create PROJECT_NAME`を実行すると、gem/rote-xxx/lib/rote/project以下がコピーされます。 ディレクトリツリーはこんな感じ。 - / - README - Rakefile : taskを記述するだけでなく生成するファイルの設定ファイルもかねている - doc/ : 生成元のデータを入力したファイルを置くディレクトリ - layouts/ : テンプレート内にテンプレートを埋め込むためのもの - pages/  : メインとなるディレクトリ。アクセスできる各ページはここに置く - res/ : データ変換を行わない画像ファイルやC

    静的Webサイト生成に便利なrote - walf443's blog
  • Rote::Format::HTML#link_relを勝手にかけてくれるRote::Filters::AutoLinkRel - walf443's blog

    昨日に引き続き、roteを使ってみて不便だったところを拡張してみました。 標準ではRote::Format::HTML#link_rel(or relative)というメソッドをつかうとROOTからの相対パスにして返してくれるというメソッドがあるのですが、ほとんどのURIを記述する場面でこれを使った方がよいと思われたので/から始まるパスを記述すると相対リンクに勝手に変換をしてくれるRote::Filters::AutoLinkRelというのを書きました。 post_filterで使わないとレイアウトテンプレートのリンクが変換されないのに注意してください。 昨日のと合わせてこれも作者さんに送ってみるつもり。 require 'rubygems' require 'rote/format/html' require 'rote/filters/base' # If you write URI

    Rote::Format::HTML#link_relを勝手にかけてくれるRote::Filters::AutoLinkRel - walf443's blog
  • HTMLページをRSSに変換するのに便利なFeedalizer - walf443's blog

    http://termos.vemod.net/feedalizer APIはScrApiと結構似ている感じです。内部的にはHpricotを使っていてコードはファイル一つでそれほど行数もないのですぐ読めます。Feedを作成する部分は標準添付のrss/makerを使ってるようです。 RubyでPlagger::CustomFeed::Script用のプログラム作るのにうってつけかもしれません。ただScrApiとFeedToolsを使えばそれほど苦労しない気もします。あとFeedalizer.newするところでURLの文字列を渡しているのですが,HTML文書を文字列で渡したりとかそういうのはないので日語の場合RSSの各カラムに入れるところでいちいちutf8に変換しなければいけないのがちょっと使いやすくないかなと思ったりしました。 require 'rubygems' require 'fee

    HTMLページをRSSに変換するのに便利なFeedalizer - walf443's blog
  • それHpricot(ry - walf443's blog

    あまりしっかり読んでなくてスルーしていたのですが, http://wota.jp/ac/?date=20070115#p01 で使われているような特定のページにCSSセレクタをかけるようなケースならまさにHpricotが適任だと思います。 ScrAPIの良いところはむしろ簡単にParser用のクラスを分かりやすく書けるところにあると思うので大量のページをクロールして定型のデータを貯めたりしようとする際にはあのAPIがいいなぁと思います。 ということで上のページと同じことをHpricotでやってみます。 require 'kconv' #=> true require 'open-uri' #=> true require 'hpricot' # 以下の例はversion 0.5以上を想定してます #=> true $KCODE = 'u' #=> "u" maiha = Hpricot.p

    それHpricot(ry - walf443's blog
  • はてなブックマークをバックアップ - walf443's blog

    クローラーを書いてたら年末に今年一年のブックマークの分析をしようとして書いていたやつを思い出した。 require 'rubygems' require 'feed_tools' require 'pp' $KCODE = 'u' hatena_b_feed_uri = "http://b.hatena.ne.jp/walf443/atomfeed?date=20060101" loop do begin feed = FeedTools::Feed.open(hatena_b_feed_uri) p file_name = hatena_b_feed_uri.sub(/^.*\?date=(\d*)$/, "feed\\1.atom") File.open(file_name , "w") do |file| file.puts feed.build_xml('atom', 1.0) e

    はてなブックマークをバックアップ - walf443's blog
  • 1