ウェブサービスを作っています。

2008-01-01から1年間の記事一覧

DateHelper の :include_blank に文字列を指定できるようにする

Rails 2.1.0 です。 FormOptionsHelper の :include_blank には文字列を指定できるくせに、DateHelper には true しか指定できなくてむかついたので作りました。 module ActionView::Helpers::DateHelper def select_html_with_useful_include_blank(type, h…

content_tag とか tag は中身のエスケープはしない

content_tag :h2, '<b>太字</b>' は、 <h2>&lt;b&gt;太字&lt;/b&gt;</h2> とかなりません。 第 4 引数の escape は属性のエスケープに関するもので、 content_tag :h2, 'hoge', :style => '<b>太字</b>' の結果は <h2 style="&lt;b&gt;太字&lt;/b&gt;">hoge</h2> になります。 まあよく考えればわかるはずなんですが、ふつうに…

ドコモでも CSS を外部参照で使える docomo_css プラグインをリリース

milk1000cc/docomo_css · GitHub テスト書いてからリリースしようと思っていたのですが、 これ読んで今出さねばと思い、リリースです。 内容は、コントローラに class ApplicationController < ActionController::Base docomo_filter end とか書いとくだけで…

モデルの階層化

なんとなくやってみたらできました。 app/models/foo/bar.rb class Foo::Bar < ActiveRecord::Base end Foo::Bar.find(:all) とか、できます。 テーブル名は、foo_bars と考えられるようです。 has_many :foo_bars とかでアソシエーションもうまく動いてるっ…

git commit -a の -a は all

git

add だと思ってたせいで、.gitignore 書いたのにコミットされちゃって何だこれとか数分悩みました。 git add . && git commit ってやれば .gitignore 考慮されながらコミットできていい感じです。

TinyCss を github に置いて gem にしました

先日のエントリで公開した TinyCss をいろいろいじって、github で gem にしました。 milk1000cc/tiny_css · GitHub sudo gem install milk1000cc-tiny_css --source=http://gems.github.com でインストールできます。インターフェースは変わってないですが…

dup

class Foo attr_accessor :ary def initialize self.ary = [] end end before = Foo.new before.ary = [1, 2, 3] dup = before.dup dup_ary_copy = dup.ary dup_ary_copy.reverse! p before.ary #=> [3, 2, 1] dup したところで、複製されたオブジェクトのイ…

TinyCss クラス

CSS::Tiny を参考にして、Ruby で CSS を処理する TinyCss クラスを作りました。 css = TinyCss.new.read('style.css') css.style['a']['background'] = 'black' css.write 'new_style.css' みたいに使えます。詳しくはソースを見てください。 class TinyCss…

find_or_initialize_by_xx(yy) を勘違いしてた

Model.find_or_initialize_by_xx(yy) は、 Model.find_by_xx(yy) || Model.new と同じだと思ってました。でも、 Model.find_by_xx(yy) || Model.new(:xx => yy) と同じっぽいですね。 xx が yy なのを検索して、なかったら yy で xx を初期化する。

MatchData#captures とかはじめて知った

すっかり 7 月ですね。 さて、正規表現のマッチ部分が $1, $2 とかに入るのは知っていたのですが、これだと最後のマッチ結果しか入らないし、たまに美しくない場合がありますね。 で、Rails のソースを読んでいたら、MatchData#captures なるものを発見しま…

DateHelperJa プラグインが Rails 2.1 で動かない問題

(追記 2008/07/13) 直し方のエントリをあげました。 DateHelperJa プラグイン を Rails 2.1.0 に完全対応させる - milk1000cc Rails を 2.1 にしたら、DateHelperJa プラグインが動かなくなってしまいました。 wrong number of arguments (2 for 1)エラーと…

:id => @post と :id => @post.id は違う

<% @post = Post.find(1) -%> <%= link_to ':id が @post', :action => :index, :id => @post %> <%= link_to ':id が @post.id', :action => :index, :id => @post.id %> ってあったときに、この 2 つの link_to はふつうは同じで、 <a href="/home/index/1">:id が @post</a> <a href="/home/index/1">:id が @p</a>…

雑記

「私、詩書くのが好きだからブログで書きたかったんだけど、やり方わからなかったからお姉ちゃんに設定してもらって書いてるんだ」と友達と話す女の人が数ヶ月前に錦糸町のスタバにいたことを唐突に思い出しました。

and/or 演算子の優先順位は三項演算子より低い

a and b == c ? d : e は、 a and (b == c ? d : e) と等価なんですね。 (a and b == c) ? d : e と等価にしたかったら、 a && b == c ? d : e ってしないとなんですね。 覚えたこと and/or 演算子の優先順位は三項演算子より低くて、&&/|| 演算子の優先順位…

redirect_to and return if

今まで redirect_to :action => :index if data.blank? return みたいに書いてたとこが、 redirect_to :action => :index and return if data.blank? みたいに書けるってはじめて知りました。 英語っぽいー。 data.blank? が評価されて、redirect_to が実行…

コメント本文がないユーザの表示を可能にしました

LDR+SBM Counter で「はてなブックマーク」のみですが、コメント本文がないユーザも、コメントリストに表示することができるようになりました。 12 行目の var SHOW_BLANK_COMMENT_USER = false; を true に変えると、表示されるようになります。 その他、リ…

LDR+SBM Counter にコメント表示機能を追加しました

LDR+SBM Counter に、はてなブックマークと livedoor クリップのコメント表示機能を追加しました。 del.icio.us のコメント取得は面倒そうだったので、まだ実装していません。 カウンタ部にマウスカーソルを当てると、コメントがあるページの場合、コメント…

Rails of Ruby on Rails

のりおさんの本です。衝動買いしました。 Rails of Ruby on Rails ~Case of LOCUSANDWONDERS.COM~作者: Plan de Sens,清水智雄出版社/メーカー: 毎日コミュニケーションズ発売日: 2008/05/14メディア: 単行本(ソフトカバー)購入: 3人 クリック: 90回この商…

プラグインの削除

より。 script/plugin remove -v plugin_name でいけます。 まぁ、それはいいんですが、vendors/plugins 以下にプラグインって入るから、フォルダごと消せばいいんじゃないの? と思っていたりしました。 で、ソースを読んでみたところ、それではいけない場合…

最近読んだ本

謎の会社、世界を変える。―エニグモの挑戦作者: 須田将啓,田中禎人出版社/メーカー: ミシマ社発売日: 2008/03/14メディア: 単行本購入: 6人 クリック: 112回この商品を含むブログ (68件) を見るゴールデンウィーク中に読みました。 起業家2.0 に書いてあった…

Safari で動く LDR+SBM Counter を公開しました

Firefox の拡張機能 LDR カウンタ、SBM カウンタ とほぼ同様の動作をする Greasemonkey スクリプト LDR+SBM Counter を作りました。 GreaseKit 対応なので、Mac の Safari でも動きます。 わかりにくいですが、右下に件数が表示されています。 z キーで、カ…

unsafeWindow を覚えた

Greasemonkey で JSONP を使おうと思い、自分で作った JSONP オブジェクトを使ってみたところ、コールバック関数未定義のエラーが出ました。 何でだろ.. と思っていたのですが、Greasemonkey の window オブジェクトはふつうの window オブジェクトとは違う…

Desktoptopia の SITEINFO を書いた

きれいな壁紙がいっぱいな Desktoptopia の一覧ページで Autopagerize を使えるようにするための SITEINFO を書きました。 { url: 'http://www.desktoptopia.com/browse', nextLink: 'id("pager")//span[a/b]/following-sibling::*[1]/a', pageElement: 'id(…

Slicehost に移行しました

今まで root 権限のない XREA 上でウェブサービスを公開していたのですが、これから Rails アプリを作っていくには root 権限が欲しかったりして、どうしようか悩んでいました。 で、今年の 1 月頃、さくらの専用サーバを借りてみたのですが、月額 6,800 円…

SSH のポート番号が 22 じゃないサーバで TortoiseSVN + SSH を使う

svn+myssh://... でアクセスしてると仮定します。 TortoiseSVN → 設定(S) → 一般 → Subversion → Subversion の設定ファイル(F) → 編集(E) で、[tunnels] の下あたりに myssh = "C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe" -ssh -l ユーザ名 …

ブログデザイン変更

ブログのデザインをデフォルトの cock-pink というテーマに変更しました。 やはり、背景が明るくないとダメな人間のようです。 ただこのテーマだと、コードの部分が崩れてしまうので、css を追加して修正してみました。 pre { border: 1px solid #fc99a0; ov…

Rails

production モードなのにエラー画面が出る場合があります\(^o^)/ /images にアクセスすると 404.html が吐かれるのに、/images/ にアクセスすると dispatch.cgi っぽい Ruby ソースがダウンロードされる場合があります\(^o^)/ ググっても全然出てき…

Dovecot わからん

CentOS4 です。MTA は Postfix です。 virtual mailbox で /var/spool/mail/vhosts に Maildir 形式で溜まるまでは出来たです。 メーラで受信する方法がわかりません>< Authentication failed とか出ます>< /etc/dovecot.conf protocols = imap imaps po…

メモ

options_for_select と options_from_collection_for_select を覚えました。

メモ

update_attribute_with_validation_skipping なんてメソッドあるのか。 なんとなくメモ。