amatsuda/kaminari — pull request #179 by udzura (2011-11-22 05:09:40+00:00)
Title: kaminari and its helpers works well around Sinatra(and also Padrino) with least dependency

こんにちは。

twitter 等でお世話になりました。近藤うちお(@udzura)です。

このたび、 「最低限の依存」で kaminari gem とそのヘルパーを Sinatra で動かせるようになりました。 (super thanks to #161 & #174)

主な仕様は以下のとおりです。

* `gem 'kaminari', :require => 'kaminari/sinatra'` で Sinatra でも pagination scopes が利用可能になる
* Kaminari::Hooks は良いアイデアだと思ったのでマージ
* activesupport actionpack railties に依存(たとえSinatraでも)
* Sinatra での link_to_next_page ヘルパーは、ブロックをとらず :placeholder オプションを取る

（素の ERB, Erubis では

```erb
<%= link_to_next_page @users, 'Next Page' do %>
No More Pages
<% end %>
```

がSyntaxErrorになってしまうためです。。）

* Sinatra::Base を継承したクラスで `register Kaminari::Helpers::SinatraHelpers` を宣言すれば、ヘルパーが使用可能になる。ただし、 padrino-helper がロード可能な状態でないと警告が出て何もしない。
* テストあります

既存のテストは壊していないことを確認しています。

よろしければマージしていただければ、嬉しく思います。ご確認ください。

---- locale :en

Hi, Matsuda-san.

I am Uchio Kondo (@udzura), thank you for mentions on twitter.

This request is a patch to make kaminari and its helpers work well with Sinatra with "least" dependency (super thanks to #161 & #174)

Major specifications are below:

* With `gem 'kaminari', :require => 'kaminari/sinatra'`, pagination scopes are abailable for Sinatra.
* Kaminari::Hooks is a good idea, then merged.
* Dependent on %{activesupport actionpack railties} if they use Sinatra.
* link_to_next_page helper method takes a :placeholder option, not a block for Sinatra.

( This is because below causes a Syntax Error:

```erb
<%= link_to_next_page @users, 'Next Page' do %>
No More Pages
<% end %>
```

for a naive ERB and Erubis. )

* You can `register Kaminari::Helpers::SinatraHelpers`, but if padrino-helper wouldn't be loadable it'd do nothing with warnings.
* With basic tests.

And existing tests doesn't seem to be broken.

I'm happy if you accept the request, so would you check it out?