タグ

ブックマーク / kusakari.hatenadiary.org (8)

  • actionmailer_jpmobile に2つ機能を追加しました - 夜の Discovery

    携帯メールアドレスのときに自動的にテンプレートを切り替えるプラグイン「actionmailer_jpmobile」を作った http://d.hatena.ne.jp/kusakari/20080405/1207387458 このプラグインに2つ機能を追加しました。 Subject などを Mime Encode する method の提供。 NEC 特殊文字と IBM 拡張文字の一部を代替文字に変換する機能の提供。 Subject などを Mime Encode する method の提供。 以下のオプションを true にすることで、Subject, From, Recipients を自動的に Mime Encode します。(デフォルト false) ActionMailer::JpMobile::auto_mime_encode = false 自動エンコード機能を使わない場合、

    actionmailer_jpmobile に2つ機能を追加しました - 夜の Discovery
  • rails2.0.2 → 2.1.0 に移行 - 夜の Discovery

    前回は挫折してしまったのですが、日某サービスを 2.1.0 に移行しました。 エラーへの対応 まず、自作のバリデーションライブラリでエラーが発生していました。 どうやら起動時の読み込み順序が変わった*1ようで、/config/environment.rb に書いていた、グローバル変数が nil になっていました。 このグローバル変数はライブラリ(/lib)から参照するため、ライブラリ読み込み時に値が入っていなければ困ります。 そこで、Rails::Initializer.run のブロック内で値を入れるようにしました。 (省略) Rails::Initializer.run do |config| (省略) + $GLOBAL_CONFIG = YAML.load(File.open("#{RAILS_ROOT}/config/config.yml")) end -$GLOBAL_CON

    rails2.0.2 → 2.1.0 に移行 - 夜の Discovery
  • rails のセッション管理に memcache を使う方法 - 夜の Discovery

    rails は 2.X からデフォルトのセッションストアが CookieStore になりました。 ログイン認証のあるアプリケーションだと、セッションにユーザーID入れておいて、 (Cookie にオブジェクトを入れるのは危険なので ID だけ入れる) リクエストごとにユーザー検索をすると思うけど、毎回検索したくないために、 結局 memcache を使ってユーザーをキャッシュしたりする。 それなら、最初から memcache でセッション管理して、 セッションにユーザーオブジェクトを格納すればいいんじゃないの?と思います。 ということでそのやり方のまとめ。 memcache のインストールは省略します。 memcache-client のインストール gem install memcache-client environment.rb (省略) Rails::Initializer.ru

    rails のセッション管理に memcache を使う方法 - 夜の Discovery
  • 携帯メールアドレスのときに自動的にテンプレートを切り替えるプラグイン「actionmailer_jpmobile」を作った - 夜の Discovery

    携帯電話のメールアドレスか、携帯電話以外のメールアドレスかを判別して、 携帯電話のメールアドレスのときだけ、携帯電話用のメールテンプレートを自動的に使うようにする ActionMailer を拡張するプラグインを作った。 actionmailer_jpmobile http://code.google.com/p/actionmailer-jpmobile/ 機能 プラグインをインストールするだけで、ActionMailer が拡張されます。 携帯電話のメールアドレスの場合、 まず携帯キャリア別のテンプレートを探し存在すればそれを利用します。(拡張子は erb である必要はありません) xx_mobile_docomo.erb xx_mobile_au.erb xx_mobile_softbank.erb xx_mobile_willcom.erb 携帯キャリア別のテンプレートがない場合、

    携帯メールアドレスのときに自動的にテンプレートを切り替えるプラグイン「actionmailer_jpmobile」を作った - 夜の Discovery
  • gettext を使いながらも日本語でしか表示しない設定 - 夜の Discovery

    gettext を使って、簡単にエラーメッセージなどの日語化をしながら、 params やクッキーで lang=en とかされても、日語以外の言語では表示せず、 常に日語で表示したい場合に使います。 class ApplicationController < ActionController::Base before_init_gettext{|controller| controller.params[:lang] = "ja" } init_gettext "test_app" after_init_gettext {|controller| controller.params[:lang] = nil } (省略) 別のやり方でもっとスマートな方法があれば教えて下さい! 追記 今なら拙作の RailsJa, ActionMailerJa プラグインをご利用下さい。 http:/

    gettext を使いながらも日本語でしか表示しない設定 - 夜の Discovery
  • classic_pagination から will_paginate へ移行する - 夜の Discovery

    AutoPagerizeなwill_paginateにしておく - ザリガニが見ていた...。 http://d.hatena.ne.jp/zariganitosh/20080125/1201226022 ザリガニが見ていた...。さんの記事が相変わらずまとまっていて、 簡単に移行できそうだったので、classic_pagination から will_paginate への移行を決意した。 ほとんど書いてある通りなんだけど、うちの場合は :class_name オプションを使っていたので、以下のようにした。 def index #@foo_pages, @foos = paginate(:foos, {:class_name => 'Foo::Bar', :per_page => 5}) @foos = Foo::Bar.paginate(:page => params[:page],

    classic_pagination から will_paginate へ移行する - 夜の Discovery
  • url などの長い文字列を強制的に折り返す方法 - 夜の Discovery

    今日は html のあるあるネタとマニアックネタを1つずつ紹介します。 まずはあるあるネタ。 url などのながーーーーーい文字列(半角英数のみ)は幅を指定したタグで囲んでいても、 はみ出していってしまいます。 ie の場合、これに対応する css があって、英文の単語の途中で強制的に改行を入れることができます。 例えば、すべての div タグに使用する場合は、以下のように指定します。 div { word-break: break-all; } ie 以外のブラウザは word-break が効かない(IE独自)ため、この対応はできません。 ではどうするか? 結論から言うと、wbr タグを一定間隔で埋め込んでいきます。 wbr タグは改行候補位置を指定するタグなので、これを例えば5文字間隔で埋め込んでいけば、 良い具合に改行されるというわけです。 例えばこのブログの一つ前の記事の url

    url などの長い文字列を強制的に折り返す方法 - 夜の Discovery
    d14a
    d14a 2008/07/28
  • Acts as Authenticated plugin を少しだけセキュアにする(2) - 夜の Discovery

    Acts as Authenticated plugin を少しだけセキュアにする はおかげさまで、じわじわとブックマークを集めて注目エントリーになりました。 acts_as_authenticated によって generate される model の encrypt_password メソッドをそのまま使ってしまうと、 login 情報が漏洩した時点で、salt の値が総当たりで簡単にわかってしまうため、 パスワードを暗号化している意味がほとんどなくなってしまいます。 salt を暗号化している意味がほとんどなくなってしまいます。 (ただし、それがすぐに不正ログインに繋がるということはない) そのため、プラグインを以下のように修正します。 http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated/genera

    Acts as Authenticated plugin を少しだけセキュアにする(2) - 夜の Discovery
  • 1