<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Kinopyo's Blog</title>
	
	<link>http://www.kinopyo.com/blog</link>
	<description>I love this game.</description>
	<lastBuildDate>Mon, 30 Aug 2010 10:47:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
   <image>
    <title>Kinopyo's Blog</title>
    <url>http://www.gravatar.com/avatar/ad516503a11cd5ca435a</url>
    <link>http://www.kinopyo.com/blog</link>
   </image>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/KinopyosBlog" /><feedburner:info uri="kinopyosblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://www.kinopyo.com/blog/?pushpress=hub" /><item>
		<title>Rails3 WillPaginateをカスタマイズ、CSSを適用</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/y_Yx1_ASmjA/rails3-customize-willpaginate</link>
		<comments>http://www.kinopyo.com/blog/rails3-customize-willpaginate#comments</comments>
		<pubDate>Wed, 25 Aug 2010 11:02:21 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails3]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1384</guid>
		<description><![CDATA[
目標
http://mislav.uniqpath.com/will_paginate/のようなCSSを適用し、スタイリングする。
このCSSはwill_paginateのgh-pages treeからダウンロードできます。

バージョン
Rails: 3.0.0.rc1
will_paginate: 3.0.pre2
方法
例えばダウンロードしたCSSの中のdigg_paginationを適用するとします。
その場合はこの生成されたpaginateのdivのclassを&#8221;digg_pagination&#8221;に設定すればOKです。
実現する方法としては二つあります。
viewにハードコーディング

&#60;%= will_paginate @articles, :class =&#62; &#34;digg_pagination&#34; %&#62;

グローバルで設定する
例えばconfig/initializers/will_paginate.rbというファイルを作り下記のように設定します。

WillPaginate::ViewHelpers::pagination_options[:class] = &#34;digg_pagination&#34;

これを設定した後はサーバを再起動する必要があります。
ちょっとした問題
今の時点でのwill_paginateは該当ページの要素をemとして生成しclassは何も指定していないです。

&#60;div class=&#34;digg_pagination&#34;&#62;
  &#60;span class=&#34;previous_page disabled&#34;&#62;Previous&#60;/span&#62;
  &#60;em&#62;1&#60;/em&#62;
  &#60;a ...&#62;2&#60;/a&#62;
  ......
&#60;/div&#62;

しかしCSSではcurrentというclassでスタイリングを行ってます。なのでどうやらこのemをspanに変更しclass=&#8221;current&#8221;に変更する必要があります。方法としてはwill_paginateのあるメソッドをオーバーライドします。
will_paginateのRDOCをよく見るとPaginationListLinkRendererクラス内のpage_numberというメソッドが修正のターゲットになります。なので下記のようなクラスを作成ます。

class PaginationListLinkRenderer &#60; WillPaginate::ViewHelpers::LinkRenderer

  protected

  def page_number(page)
    unless == current_page
      link(page, page, :rel =&#62; rel_value(page))
    else
    [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">目標</h4>
<p><a href="http://mislav.uniqpath.com/will_paginate/">http://mislav.uniqpath.com/will_paginate/</a>のようなCSSを適用し、スタイリングする。</p>
<p>このCSSは<a href="http://github.com/mislav/will_paginate/tree/gh-pages">will_paginateのgh-pages tree</a>からダウンロードできます。</p>
<p><img src="http://www.kinopyo.com/blog/wp-content/uploads/2010/08/will_paginate_style.jpg" alt="will_paginate_style" class="attachment wp-att-1385 " /></p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_1">バージョン</h4>
<p>Rails: 3.0.0.rc1</p>
<p>will_paginate: 3.0.pre2</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_2">方法</h4>
<p>例えばダウンロードしたCSSの中のdigg_paginationを適用するとします。</p>
<p>その場合はこの生成されたpaginateのdivのclassを&#8221;digg_pagination&#8221;に設定すればOKです。</p>
<p>実現する方法としては二つあります。</p>
<h5 id="id_d41d8cd98f00b204e9800998ecf8427e_header_3">viewにハードコーディング</h5>
<pre class="brush: ruby;">
&lt;%= will_paginate @articles, :class =&gt; &quot;digg_pagination&quot; %&gt;
</pre>
<h5 id="id_d41d8cd98f00b204e9800998ecf8427e_header_4">グローバルで設定する</h5>
<p>例えばconfig/initializers/will_paginate.rbというファイルを作り下記のように設定します。</p>
<pre class="brush: ruby;">
WillPaginate::ViewHelpers::pagination_options[:class] = &quot;digg_pagination&quot;
</pre>
<p>これを設定した後はサーバを再起動する必要があります。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_5">ちょっとした問題</h4>
<p>今の時点でのwill_paginateは該当ページの要素をemとして生成しclassは何も指定していないです。</p>
<pre class="brush: html;">
&lt;div class=&quot;digg_pagination&quot;&gt;
  &lt;span class=&quot;previous_page disabled&quot;&gt;Previous&lt;/span&gt;
  &lt;em&gt;1&lt;/em&gt;
  &lt;a ...&gt;2&lt;/a&gt;
  ......
&lt;/div&gt;
</pre>
<p>しかしCSSではcurrentというclassでスタイリングを行ってます。なのでどうやらこのemをspanに変更しclass=&#8221;current&#8221;に変更する必要があります。方法としてはwill_paginateのあるメソッドをオーバーライドします。</p>
<p><a href="http://gitrdoc.com/mislav/will_paginate/tree/master/">will_paginateのRDOC</a>をよく見るとPaginationListLinkRendererクラス内のpage_numberというメソッドが修正のターゲットになります。なので下記のようなクラスを作成ます。</p>
<pre class="brush: ruby;">
class PaginationListLinkRenderer &lt; WillPaginate::ViewHelpers::LinkRenderer

  protected

  def page_number(page)
    unless == current_page
      link(page, page, :rel =&gt; rel_value(page))
    else
      # tag(:em, page)
      tag(:span, page, :class =&gt; &quot;current&quot;)
    end
  end

end
</pre>
<p>コメントアウトされたのがそもそものコードです。</p>
<p>次はこのクラスをrequireしてwill_paginateのoptionに指定すればOKです。</p>
<p>requireが必要なクラスは私は全部config/initializers/custom_requires.rbにまとめて書いてます。</p>
<pre class="brush: ruby;">
# in config/initializers/custom_requires.rb
require &#039;lib/pagination_list_link_renderer&#039;

# in config/initializers/will_paginate.rb
WillPaginate::ViewHelpers.pagination_options[:render] = &quot;PaginationListLinkRenderer&quot;
</pre>
<p>これで完了です。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_6">リンク</h4>
<p><a href="http://github.com/mislav/will_paginate">will_paginateのgithubページ</a></p>
<p><a href="http://github.com/mislav/will_paginate/tree/gh-pages">will_paginateのcssダウンロード</a></p>
<p><a href="http://thewebfellas.com/blog/2010/8/22/revisited-roll-your-own-pagination-links-with-will_paginate-and-rails-3">大変参考になった記事(英語)</a></p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1384&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/y_Yx1_ASmjA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/rails3-customize-willpaginate/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/rails3-customize-willpaginate</feedburner:origLink></item>
		<item>
		<title>Rails: requestがAjaxかどうかを判断するには</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/5JunZjl6ps0/rails-determine-if-it-is-an-ajax-request</link>
		<comments>http://www.kinopyo.com/blog/rails-determine-if-it-is-an-ajax-request#comments</comments>
		<pubDate>Sun, 22 Aug 2010 08:26:29 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1373</guid>
		<description><![CDATA[
requestがajaxかどうかを判断するのは、とても簡単です。


# in controller
if request.xhr?
  ...
end

xhrはXMLHttpRequestの略称です。XHRについては下記の記事を参照してください。
今更のAjax基本：XMLHttpRequestについて

]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>requestがajaxかどうかを判断するのは、とても簡単です。</p>
<p></br></p>
<pre class="brush: ruby;">
# in controller
if request.xhr?
  ...
end
</pre>
<p>xhrはXMLHttpRequestの略称です。XHRについては下記の記事を参照してください。</p>
<p><a href="http://www.kinopyo.com/blog/basic-of-ajax-xmlhttprequest">今更のAjax基本：XMLHttpRequestについて</a></p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1373&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/5JunZjl6ps0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/rails-determine-if-it-is-an-ajax-request/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/rails-determine-if-it-is-an-ajax-request</feedburner:origLink></item>
		<item>
		<title>Rails: default_scopeを使った場合注意しておきたいこと</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/52K7ChMu9ZY/rails-be-caution-when-using-default-scop</link>
		<comments>http://www.kinopyo.com/blog/rails-be-caution-when-using-default-scop#comments</comments>
		<pubDate>Fri, 20 Aug 2010 09:39:24 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1370</guid>
		<description><![CDATA[
Articleモデルがあるとします。ブログの記事は普通最新の順番で並んでまのでこんなdefault_scopeを定義したかもしれません。

# in Article model
default_scope :order =&#62; &#34;articles.created_at DESC&#34;

これで普通にArticle.allとかfindのときはデフォルトで作成日時が最新のものから並びますが
Article.firstとArticle.lastにも影響があります。
つまり

Article.first	# &#60;Article id:999, ...&#62;
Article.last	# &#60;Article id:1, ..&#62;

考えてみれば当たり前のことですが、念のため覚えておきましょう。

]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>Articleモデルがあるとします。ブログの記事は普通最新の順番で並んでまのでこんなdefault_scopeを定義したかもしれません。</p>
<pre class="brush: ruby;">
# in Article model
default_scope :order =&gt; &quot;articles.created_at DESC&quot;
</pre>
<p>これで普通にArticle.allとかfindのときはデフォルトで作成日時が最新のものから並びますが</p>
<p>Article.firstとArticle.lastにも影響があります。</p>
<p>つまり</p>
<pre class="brush: ruby;">
Article.first	# &lt;Article id:999, ...&gt;
Article.last	# &lt;Article id:1, ..&gt;
</pre>
<p>考えてみれば当たり前のことですが、念のため覚えておきましょう。</p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1370&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/52K7ChMu9ZY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/rails-be-caution-when-using-default-scop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/rails-be-caution-when-using-default-scop</feedburner:origLink></item>
		<item>
		<title>Rails: Nested Resoucesを削除するには</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/28BPZz_FrDk/how-to-delete-nested-resources</link>
		<comments>http://www.kinopyo.com/blog/how-to-delete-nested-resources#comments</comments>
		<pubDate>Sun, 15 Aug 2010 12:34:17 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1342</guid>
		<description><![CDATA[
PostとCommentのModelがあってPostが複数のCommentを持ってます。やりたいのはPostの表示画面(show view)でCommentを削除するリンクを作成ことです。
前提
まずPostとCommentのModel、及びroutes.rbの設定を理解しましょう。

# post model
has_many :comments

# comment model
belongs_to :post

# routes.rb
resources :posts do
  resources :comments
end

方法
Viewのerbファイルでは下記のようなリンクを作成します。

&#60;% @article.comments.each do &#124;comment&#124;
  &#60;%= comment.content %&#62;
  &#60;%= link_to &#34;Delete&#34;, article_comment_path(@article, :comment_id =&#62; comment), :method =&#62; :delete %&#62;
&#60;% end %&#62;

これはcomments_controllerのdestroyアクションを呼ぶのでdestroy actionを作成する必要があります。

# in comments_controller.rb

def destroy
  comment = Comment.find(params[:comment_id]
  comment.destroy
  redirect_to request.referer
end

:comment_idはviewで設定するパラメータ名と一致すればOKです。


]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>PostとCommentのModelがあってPostが複数のCommentを持ってます。やりたいのはPostの表示画面(show view)でCommentを削除するリンクを作成ことです。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">前提</h4>
<p>まずPostとCommentのModel、及びroutes.rbの設定を理解しましょう。</p>
<pre class="brush: ruby;">
# post model
has_many :comments

# comment model
belongs_to :post

# routes.rb
resources :posts do
  resources :comments
end
</pre>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_1">方法</h4>
<p>Viewのerbファイルでは下記のようなリンクを作成します。</p>
<pre class="brush: ruby;">
&lt;% @article.comments.each do |comment|
  &lt;%= comment.content %&gt;
  &lt;%= link_to &quot;Delete&quot;, article_comment_path(@article, :comment_id =&gt; comment), :method =&gt; :delete %&gt;
&lt;% end %&gt;
</pre>
<p>これはcomments_controllerのdestroyアクションを呼ぶのでdestroy actionを作成する必要があります。</p>
<pre class="brush: ruby;">
# in comments_controller.rb

def destroy
  comment = Comment.find(params[:comment_id]
  comment.destroy
  redirect_to request.referer
end

:comment_idはviewで設定するパラメータ名と一致すればOKです。
</pre>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1342&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/28BPZz_FrDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/how-to-delete-nested-resources/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/how-to-delete-nested-resources</feedburner:origLink></item>
		<item>
		<title>Rails: モデルクラスのプロパティをAlt+Spaceで呼び出せるTextMate Bundle</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/mU5EAdp_p-Q/a-rails-textmate-bundle-display-a-list-with-all-available-attributes-for-active-record-model</link>
		<comments>http://www.kinopyo.com/blog/a-rails-textmate-bundle-display-a-list-with-all-available-attributes-for-active-record-model#comments</comments>
		<pubDate>Sun, 08 Aug 2010 00:41:37 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1349</guid>
		<description><![CDATA[
Userモデルにどのカラムを定義したっけ、と言う場合schema.rbをいちいちチェックしないで済む方法があります。それがCarlos Brando氏が作ってくれたRuby on RailsのTextMate Bundleです。
出来る事
これは元々のDr. Nic氏のruby-on-rails-tmbundleをForkして作ったものなので、従来の機能は保ちつつ新しい便利な機能が追加されました。

Alt(Option) + Space
例えばUserモデルの変数user, @user, @@userなどの後ろでAlt(Option) + Spaceを押すと利用可能な属性がリストされます。なかなか便利です。
インストール


mkdir -p ~/Library/Application\ Support/TextMate/Bundles

cd ~/Library/Application\ Support/TextMate/Bundles

git clone git://github.com/carlosbrando/ruby-on-rails-tmbundle.git "Ruby on Rails.tmbundle"

osascript -e 'tell app "TextMate" to reload bundles'

本家サイト：http://github.com/carlosbrando/ruby-on-rails-tmbundle

]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>Userモデルにどのカラムを定義したっけ、と言う場合schema.rbをいちいちチェックしないで済む方法があります。それがCarlos Brando氏が作ってくれたRuby on RailsのTextMate Bundleです。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">出来る事</h4>
<p>これは元々のDr. Nic氏の<a href="http://github.com/drnic/ruby-on-rails-tmbundle">ruby-on-rails-tmbundle</a>をForkして作ったものなので、従来の機能は保ちつつ新しい便利な機能が追加されました。</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/8YvXzRuG-0s&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8YvXzRuG-0s&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_1">Alt(Option) + Space</h4>
<p>例えばUserモデルの変数user, @user, @@userなどの後ろでAlt(Option) + Spaceを押すと利用可能な属性がリストされます。なかなか便利です。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_2">インストール</h4>
<pre style="white-space:pre">

mkdir -p ~/Library/Application\ Support/TextMate/Bundles

cd ~/Library/Application\ Support/TextMate/Bundles

git clone git://github.com/carlosbrando/ruby-on-rails-tmbundle.git "Ruby on Rails.tmbundle"

osascript -e 'tell app "TextMate" to reload bundles'
</pre>
<p>本家サイト：<a href="http://github.com/carlosbrando/ruby-on-rails-tmbundle">http://github.com/carlosbrando/ruby-on-rails-tmbundle</a></p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1349&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/mU5EAdp_p-Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/a-rails-textmate-bundle-display-a-list-with-all-available-attributes-for-active-record-model/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/a-rails-textmate-bundle-display-a-list-with-all-available-attributes-for-active-record-model</feedburner:origLink></item>
		<item>
		<title>[Ruby]正規表現をグループ化し、マッチしたものを置換したい場合はシングルクオーテーションを</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/PdptgDT6m6M/be-careful-to-single-quotation-and-double-quotation-when-using-regexp</link>
		<comments>http://www.kinopyo.com/blog/be-careful-to-single-quotation-and-double-quotation-when-using-regexp#comments</comments>
		<pubDate>Fri, 06 Aug 2010 06:07:14 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1337</guid>
		<description><![CDATA[
(&#8230;)で正規表現をグループ化し、後でマッチしたものを\1、\2で呼び出したい時はぜひシングルクオーテーションとダブルクオーテーションに注意。
この場合はシングルクオーテーションを使ってください。

&#34;hello&#34;.gsub(/([aeiou])/, &#039;&#60;\1&#62;&#039;)         #=&#62; &#34;h&#60;e&#62;ll&#60;o&#62;&#34;
&#34;hello&#34;.gsub(/([aeiou])/, &#34;&#60;\1&#62;&#34;)         #=&#62; &#34;h&#60; &#62;ll&#60; &#62;&#34;

ここは括弧が付いてるからマッチしたものは\1で呼び出せます。そしてマッチの規則はa,e,i,o,uのいずれかです。なので&#8221;hello&#8221;の中の&#8221;e&#8221;と&#8221;o&#8221;が置換されました。
秀丸でやったときはダブルクオーテーションも大丈夫だっだ。。。

]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>(&#8230;)で正規表現をグループ化し、後でマッチしたものを\1、\2で呼び出したい時はぜひシングルクオーテーションとダブルクオーテーションに注意。</p>
<p>この場合は<strong>シングルクオーテーショ</strong>ンを使ってください。</p>
<pre class="brush: ruby;">
&quot;hello&quot;.gsub(/([aeiou])/, &#039;&lt;\1&gt;&#039;)         #=&gt; &quot;h&lt;e&gt;ll&lt;o&gt;&quot;
&quot;hello&quot;.gsub(/([aeiou])/, &quot;&lt;\1&gt;&quot;)         #=&gt; &quot;h&lt; &gt;ll&lt; &gt;&quot;
</pre>
<p>ここは括弧が付いてるからマッチしたものは\1で呼び出せます。そしてマッチの規則はa,e,i,o,uのいずれかです。なので&#8221;hello&#8221;の中の&#8221;e&#8221;と&#8221;o&#8221;が置換されました。</p>
<p>秀丸でやったときはダブルクオーテーションも大丈夫だっだ。。。</p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1337&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/PdptgDT6m6M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/be-careful-to-single-quotation-and-double-quotation-when-using-regexp/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/be-careful-to-single-quotation-and-double-quotation-when-using-regexp</feedburner:origLink></item>
		<item>
		<title>[Rails]deprecated Rails::Application警告を避ける方法</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/h0ny1XsYiG4/rail-avoid-using-deprecated-railsapplication</link>
		<comments>http://www.kinopyo.com/blog/rail-avoid-using-deprecated-railsapplication#comments</comments>
		<pubDate>Wed, 04 Aug 2010 05:48:06 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1326</guid>
		<description><![CDATA[
Rails3をbeta4からRCにアップグレードしたら、こんな警告が出続けました。



DEPRECATION WARNING: Calling a method in Rails::Application is deprecated, please call it directly in your application constant MyApp:Application.

解決方法
Rakefileを修正しRails:Applicaitonを[ProjectName]::Applicaitonに書き換えればOKです。
例えば自分のプロジェクト名がMyappの場合は下記になります。

require File.expand_path(&#039;../config/application&#039;, __FILE__)
require &#039;rake&#039;

Myapp::Application.load_tasks


]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>Rails3をbeta4からRCにアップグレードしたら、こんな警告が出続けました。</p>
<p><br/></p>
<pre>

DEPRECATION WARNING: Calling a method in Rails::Application is deprecated, please call it directly in your application constant MyApp:Application.
</pre>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">解決方法</h4>
<p>Rakefileを修正しRails:Applicaitonを[ProjectName]::Applicaitonに書き換えればOKです。</p>
<p>例えば自分のプロジェクト名がMyappの場合は下記になります。</p>
<pre class="brush: ruby;">
require File.expand_path(&#039;../config/application&#039;, __FILE__)
require &#039;rake&#039;

Myapp::Application.load_tasks
</pre>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1326&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/h0ny1XsYiG4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/rail-avoid-using-deprecated-railsapplication/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/rail-avoid-using-deprecated-railsapplication</feedburner:origLink></item>
		<item>
		<title>WordpressブログにFacebook Likeボタンを追加しました</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/K7fXtST7-8U/add-facebook-like-button-to-wordpress-blog</link>
		<comments>http://www.kinopyo.com/blog/add-facebook-like-button-to-wordpress-blog#comments</comments>
		<pubDate>Mon, 02 Aug 2010 08:04:29 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1311</guid>
		<description><![CDATA[
WordPressブログにFacebookのLikeボタンを追加しましたので、メモとして取っておきます。
手順
Like Button &#8211; Facebook Developersでリンクコードを取得

Layout Styleはbutton_count
Widthを90に。
Get Codeで貼り付けるコードを取得

WordPress記事リンクを組み立て
各ページごとにLikeボタンが欲しいので、こんなファンクションを作りました。中のiframeのソースはFacebookから取得したコードで、修正したのが2点あります。

href=のURLをget_permalink()で取れた記事のURLに置き換えます。
margin-bottom:-8pxでレイアウトの調整を行ないます。


// facebook like button
function fbLike() {
	$link = get_permalink();
	echo &#34;
	&#60;iframe src=&#039;http://www.facebook.com/plugins/like.php?href=&#34;.$link.&#34;&#38;layout=button_count&#38;show_faces=true&#38;width=90&#38;action=like&#38;colorscheme=light&#38;height=21&#039; scrolling=&#039;no&#039; frameborder=&#039;0&#039; style=&#039;border:none; overflow:hidden; width:90px; height:21px;margin-bottom:-8px;&#039; allowTransparency=&#039;true&#039;&#62;&#60;/iframe&#62;
		&#34;;

}

後はfbLike()を読んだだけでLikeボタンが表示されます。

]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>WordPressブログにFacebookのLikeボタンを追加しましたので、メモとして取っておきます。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">手順</h4>
<h5 id="id_d41d8cd98f00b204e9800998ecf8427e_header_1"><a href="http://developers.facebook.com/docs/reference/plugins/like">Like Button &#8211; Facebook Developers</a>でリンクコードを取得</h5>
<ul>
<li><em>Layout Style</em>は<strong>button_count</strong></li>
<li><em>Width</em>を<strong>90</strong>に。</li>
<li>Get Codeで貼り付けるコードを取得</li>
</ul>
<h5 id="id_d41d8cd98f00b204e9800998ecf8427e_header_2">WordPress記事リンクを組み立て</h5>
<p>各ページごとにLikeボタンが欲しいので、こんなファンクションを作りました。中のiframeのソースはFacebookから取得したコードで、修正したのが2点あります。</p>
<ul>
<li><em>href=</em>のURLを<strong>get_permalink()</strong>で取れた記事のURLに置き換えます。</li>
<li><strong>margin-bottom:-8px</strong>でレイアウトの調整を行ないます。</li>
</ul>
<pre class="brush: php;">
// facebook like button
function fbLike() {
	$link = get_permalink();
	echo &quot;
	&lt;iframe src=&#039;http://www.facebook.com/plugins/like.php?href=&quot;.$link.&quot;&amp;layout=button_count&amp;show_faces=true&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21&#039; scrolling=&#039;no&#039; frameborder=&#039;0&#039; style=&#039;border:none; overflow:hidden; width:90px; height:21px;margin-bottom:-8px;&#039; allowTransparency=&#039;true&#039;&gt;&lt;/iframe&gt;
		&quot;;

}
</pre>
<p>後はfbLike()を読んだだけでLikeボタンが表示されます。</p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1311&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/K7fXtST7-8U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/add-facebook-like-button-to-wordpress-blog/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/add-facebook-like-button-to-wordpress-blog</feedburner:origLink></item>
		<item>
		<title>TextMate Bundler、NetBeansプラグインfor HAML</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/mx8tJXZd2Q4/textmate-bundler-netbeans-plugin-for-haml</link>
		<comments>http://www.kinopyo.com/blog/textmate-bundler-netbeans-plugin-for-haml#comments</comments>
		<pubDate>Fri, 30 Jul 2010 08:31:49 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[haml]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1302</guid>
		<description><![CDATA[
TextMateのBundlerはこちら：
http://github.com/handcrafted/handcrafted-haml-textmate-bundle
NetBeansのプラグインはこちらでダウンロード：
FaqPluginInstall &#8211; NetBeans Wiki
ほぼハイライト以外は何の機能もないです。
HAMLでRubyコードを書いても入力補完も、リファレンスも出ませんでした。

]]></description>
			<content:encoded><![CDATA[<div class="section">
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">TextMateのBundlerはこちら：</h4>
<p><a href="http://github.com/handcrafted/handcrafted-haml-textmate-bundle">http://github.com/handcrafted/handcrafted-haml-textmate-bundle</a></p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_1">NetBeansのプラグインはこちらでダウンロード：</h4>
<p><a href="http://wiki.netbeans.org/FaqPluginInstall">FaqPluginInstall &#8211; NetBeans Wiki</a></p>
<p>ほぼハイライト以外は何の機能もないです。</p>
<p>HAMLでRubyコードを書いても入力補完も、リファレンスも出ませんでした。</p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1302&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/mx8tJXZd2Q4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/textmate-bundler-netbeans-plugin-for-haml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/textmate-bundler-netbeans-plugin-for-haml</feedburner:origLink></item>
		<item>
		<title>Rails: URLをid+slug”の形にカスタマイズ</title>
		<link>http://feedproxy.google.com/~r/KinopyosBlog/~3/rGsVibEiYOw/rails-id-slug-name-in-url</link>
		<comments>http://www.kinopyo.com/blog/rails-id-slug-name-in-url#comments</comments>
		<pubDate>Wed, 28 Jul 2010 15:17:37 +0000</pubDate>
		<dc:creator>kinopyo</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.kinopyo.com/blog/?p=1287</guid>
		<description><![CDATA[
slugはurlをより綺麗に表示するためのものです。例えばこの記事のpermanent urlは&#8221;rails-id-slug-name-in-url&#8221;にしています。英語世界になるんですが、これのようにurlを見ただけでそのurl先の内容が大体わかるようにするのがslugです。
この記事ではRailsで&#8221;id + post.title&#8221;のような形のURLを作る方法を紹介します。
方法
モデルクラス内にto_paramメソッドをオーバーライドするだけです。
例として

  class Person
    def to_param
      &#34;#{id}-#{name.parameterize}&#34;
    end
  end

  #controller
  @person = Person.find(1)
  # =&#62; #&#60;Person id: 1, name: &#34;Donald E. Knuth&#34;&#62;

  #view
  &#60;%= link_to(@person.name, person_path(@person)) %&#62;
  # =&#62; &#60;a href=&#34;/person/1-donald-e-knuth&#34;&#62;Donald E. Knuth&#60;/a&#62;

上記のようにmodelクラスを修正するだけで、他の影響はないです。URL: &#8216;/person/1-kinopyo&#8217;と&#8217;/person/1&#8242;はどっちでも使えます。
parameterizeはRailsのビルトインのメソッドでurlに使う文字列に変換してくれるんです。しかし日本語などは完全にブランクに変換するので要注意です。
もしurlを&#8221;/person/kinopyo&#8221;のようにperson.nameにカスタムしたい場合はこれより少し複雑になります。興味のある方は下記リンク(英語)を参照してください。 [...]]]></description>
			<content:encoded><![CDATA[<div class="section">
<p>slugはurlをより綺麗に表示するためのものです。例えばこの記事のpermanent urlは&#8221;rails-id-slug-name-in-url&#8221;にしています。英語世界になるんですが、これのようにurlを見ただけでそのurl先の内容が大体わかるようにするのがslugです。</p>
<p>この記事ではRailsで&#8221;id + post.title&#8221;のような形のURLを作る方法を紹介します。</p>
<h4 id="id_d41d8cd98f00b204e9800998ecf8427e_header_0">方法</h4>
<p>モデルクラス内に<em>to_param</em>メソッドをオーバーライドするだけです。</p>
<p>例として</p>
<pre class="brush: ruby;">
  class Person
    def to_param
      &quot;#{id}-#{name.parameterize}&quot;
    end
  end

  #controller
  @person = Person.find(1)
  # =&gt; #&lt;Person id: 1, name: &quot;Donald E. Knuth&quot;&gt;

  #view
  &lt;%= link_to(@person.name, person_path(@person)) %&gt;
  # =&gt; &lt;a href=&quot;/person/1-donald-e-knuth&quot;&gt;Donald E. Knuth&lt;/a&gt;
</pre>
<p>上記のようにmodelクラスを修正するだけで、他の影響はないです。URL: &#8216;/person/1-kinopyo&#8217;と&#8217;/person/1&#8242;はどっちでも使えます。</p>
<p><em>parameterize</em>はRailsのビルトインのメソッドでurlに使う文字列に変換してくれるんです。<strong>しかし日本語などは完全にブランクに変換するので要注意です。</strong></p>
<p>もしurlを&#8221;/person/kinopyo&#8221;のようにperson.nameにカスタムしたい場合はこれより少し複雑になります。興味のある方は下記リンク(英語)を参照してください。 <a href="http://augustl.heroku.com/blog/styling-rails-urls">http://augustl.heroku.com/blog/styling-rails-urls</a>.</p>
</div>
<img src="http://www.kinopyo.com/blog/?ak_action=api_record_view&id=1287&type=feed" alt="" /><img src="http://feeds.feedburner.com/~r/KinopyosBlog/~4/rGsVibEiYOw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kinopyo.com/blog/rails-id-slug-name-in-url/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kinopyo.com/blog/rails-id-slug-name-in-url</feedburner:origLink></item>
	</channel>
</rss>
