<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>dev &gt;&gt; JavaScript</title><link>http://blogs.wankuma.com/pinzolo/category/1942.aspx</link><description>dev &gt;&gt; JavaScript</description><managingEditor>THREE-ONE</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>THREE-ONE</dc:creator><title>rails で Google AJAX Libraries API を使う</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/12/26/165051.aspx</link><pubDate>Fri, 26 Dec 2008 21:19:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/12/26/165051.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/165051.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/12/26/165051.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/165051.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/165051.aspx</trackback:ping><description>rails の ajax ヘルパは便利で、prototype と Script.aculo.us が利用されており、最初からプロジェクトに含まれています。&lt;br /&gt;
有名ライブラリなので、&lt;a href="http://code.google.com/intl/ja/apis/ajaxlibs/"&gt;Google AJAX Libraries API&lt;/a&gt; にホスティングを任せるのもアリでしょう。&lt;br /&gt;
簡単にやるなら script タグを自分で書くか、javascript_include_tag "http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js" ってやればいいのですが、必要なところ全てにこれを行うのは面倒です。&lt;br /&gt;
ほとんどが javascript_include_tag :defaults を利用しているのだから、これで Google AJAX Libraries API が利用されるようにしたい。&lt;br /&gt;
しかも開発時は常にオンラインとは限らないので、production 環境のときにだけ適用されるようにしたい。&lt;br /&gt;
これは結構簡単にできます。config/environments/production.rb に以下を記述するだけ。&lt;br /&gt;
&lt;textarea name="code" class="ruby"&gt;
ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = [
  'http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js',
  'http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/effects.js',
  'http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/dragdrop.js',
  'http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.2/controls.js'
]
ActionView::Helpers::AssetTagHelper.reset_javascript_include_default
&lt;/textarea&gt;
ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES には、もともと ["prototype"' "effects", "dragdrop", "controls"] が定義されているので、それを対応する url で上書きしリセットしているわけです。&lt;br /&gt;
javascript_include_tag にスキーマから始まる文字列が渡された場合は、そのまま src 属性にレンダリングされるのでやることはこれだけです。&lt;br /&gt;
&lt;br /&gt;
さてさて、世の中には私も含めて Protorype と Script.aculo.us より、jQuery が好きだ！という人もいるでしょう。&lt;br /&gt;
そんな人は &lt;a href="http://ennerchi.com/projects/jrails"&gt;jRails&lt;/a&gt; を使用している人も多いでしょう。&lt;br /&gt;
で、jquery.js を Google AJAX Libraries API のものに差し替えようと思ったら、少し方法が異なります。&lt;br /&gt;
というのも、config/environments/*.rb を読み込んだ後に各種プラグインが読み込まれるので、せっかく config/environments/production.rb で設定を行っても、jRails のロードでローカルの設定に書き換えられてしまうからです。&lt;br /&gt;
これを回避するために私は environments.rb の最後で設定するという手段をとりました。&lt;br /&gt;
要は Rails::Initializer.run の後に設定し直せばよいわけです。&lt;br /&gt;
ここに記述すると、当然全ての環境で読み込まれてしまうわけで、環境の判別が必要になります。&lt;br /&gt;
&lt;textarea name="code" class="ruby"&gt;
if ENV['RAILS_ENV'] == 'production'
  ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = [
    'http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js',
    'jquery-ui.js',
    'jrails.js'
  ]
  ActionView::Helpers::AssetTagHelper.reset_javascript_include_default
end
&lt;/textarea&gt;
こんな感じです。&lt;br /&gt;
まあ、jRails の場合に置き換えられるのは一つのファイルだけなので、どこまで効果があるかは少し疑問ではありますが。&lt;br /&gt;
&lt;br /&gt;
このテクニックは別に Google AJAX Libraries API を使用する際以外にも、javascript_include_tag :defaults を制御するのは色々と便利です。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/165051.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>Chrome のデバッガのメモ</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156267.aspx</link><pubDate>Fri, 12 Sep 2008 10:20:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156267.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/156267.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156267.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/156267.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/156267.aspx</trackback:ping><description>&lt;a href="http://journal.mycom.co.jp/articles/2008/09/12/chrome/index.html" target="_blank"&gt;新星Webブラウザ「Google Chrome」に付属の2デバッガを使いこなそう [マイコミジャーナル]&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ajax 利用したシステム組んでいると、もはや必須なこやつらですが、JavaScript Debugger がいまいち使えていなかったのでメモ。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/156267.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>