RAILS PRESS RUBY on RAILS, it’s DRY and COOL …

RSS Feed

RAILS PRESS RSS

Tag Cloud

はてなブックマーク - railspress.matake.jp の注目エントリー
象形文字くさび形文字ミイラそろばんの玉そろばんコーラン占いの板?象牙大英博物館
« 前の3件
Tagged by ノウハウ

Posted on
2008/12/27

Tags
OAuth, Yahoo, ノウハウ

0 Comment

この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

ruby-oauth で Yahoo! OAuth を使う方法

ruby-oauth で Yahoo! OAuth を使おうとしてだいぶはまったので、対応方法をメモ。

まずは oauth_parameter のうち、値が空のものは送らないようにしないと行けないようです。これは Yahoo! 側の問題かな?この問題を解決するには、OAuth::Client::Helper をオーバーライドします。

LANG : RUBY
  1. # Yahoo! Hacks (for OAuth2.1)
  2. class OAuth::Client::Helper
  3.   def oauth_parameters
  4.     { 'oauth_consumer_key'     => options[:consumer].key,
  5.       'oauth_token'            => options[:token] ? options[:token].token : '',
  6.       'oauth_signature_method' => options[:signature_method],
  7.       'oauth_session_handle'   => options[:oauth_session_handle] ? options[:oauth_session_handle] : '',
  8.       'oauth_timestamp'        => timestamp,
  9.       'oauth_nonce'            => nonce,
  10.       'oauth_version'          => '1.0' }.reject { |k,v| v == "" }
  11.   end
  12. end

次に、Yahoo! OAuth では1時間ごとに token を再発行したり、その際に session_handle を使ったりするので、ruby-oauth の OAuth::AccessToken と OAuth::RequestToken をこれらの属性に対応させる必要があります。

» このエントリーには続きがあります。続きを読む »


Posted on
2008/11/26

Tags
Gem, OpenID, iKnow!, ノウハウ

0 Comment

この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

iKnow! の OpenID で XRI をサポート & ruby-openid を日本語 XRI 対応に

昨日 OpenID Foundation Japan で NRI の崎村さんに「iKnow! の OpenID は XRI をサポートしてないですね」ってなことを言われたらしいので、iKnow! の OpenID を XRI に対応させました。

OpenID Authentication Plugin の XRI 対応は RailsのOpenID Authentication PluginをXRI対応にする方法 に書きましたが、OpenID::Yadis::XRI.identifier_scheme というメソッドが既にあったので、今回はそれを使いました。

LANG : RUBY
  1. module OpenIdAuthentication
  2.   # XRI support
  3.   def self.normalize_url_with_xri(identifier)
  4.     case OpenID::Yadis::XRI.identifier_scheme(identifier)
  5.     when :xri : identifier
  6.     when :uri : normalize_url_without_xri(identifier)
  7.     end
  8.   end
  9.   class <<self
  10.     alias_method :normalize_url_without_xri, :normalize_url
  11.     alias_method :normalize_url, :normalize_url_with_xri
  12.   end
  13. end

で、久しぶりに @freexri に行ってみたら、「=名前*nov」とかとれるようになってました。いつのまにか XRI って日本語も使えるようになってるんですね。日本語 XRI は微妙だけど、一応対応しておきました。

ruby-openid が日本語 XRI に対応してなかったので、OpenID::Yadis::XRI.escape_for_iri_with_multibyte をちょっと変更する必要があります。

LANG : RUBY
  1. module OpenID::Yadis::XRI
  2.   def self.escape_for_iri_with_multibyte(xri)
  3.     esc = escape_for_iri_without_multibyte(xri)
  4.     esc.gsub!(/([\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3})/e) { |char_match|
  5.       CGI::escape(char_match)
  6.     }
  7.     return esc
  8.   end
  9.   class <<self
  10.     alias_method :escape_for_iri_without_multibyte, :escape_for_iri
  11.     alias_method :escape_for_iri, :escape_for_iri_with_multibyte
  12.   end
  13. end

これで OK なはずですが...

» このエントリーには続きがあります。続きを読む »


Posted on
2008/10/28

Tags
ActionController, filters, テスト, ノウハウ

0 Comment

この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

Functional Test でリクエスト発行時(GET/POST/PUT/DELETE)に before_filter/after_filter をかける方法

Functional Test ですべての @response.body と @response.headers の内容をチェックしたくて、リクエスト発行時に after_filter 的なことをしたので、方法をメモ。

以下の記事が非常に参考になりました。

functional test をめぐる冒険 - Rails で行こう!

やってることは、単純に get とか post とかの内部で呼ばれてる process というメソッドを、RAILS_ROOT/test/test_helper 内で書き換えているだけ。

LANG : RUBY
  1. def process_with_assert_no_wapi(action, parameters = nil, session = nil, flash = nil)
  2.   process_without_assert_no_wapi(action, parameters, session, flash)
  3.   assert_no_wapi
  4. end
  5. alias_method :process_without_assert_no_wapi, :process
  6. alias_method :process, :process_with_assert_no_wapi

以下のような functional test があった場合、get(:index) と get(:show, ...) の前後で自動的にフィルタをかけています。

» このエントリーには続きがあります。続きを読む »


« 前の3件
ノウハウタグ