README.md in kaminari-rspec-0.14.1.b0 vs README.md in kaminari-rspec-0.14.1.b1
- old
+ new
@@ -1,70 +1,78 @@
-Kaminari Rspec Library
-=========================
+# Kaminari Rspec Library
+[![Gem Version](https://badge.fury.io/rb/kaminari-rspec.png)](http://badge.fury.io/rb/kaminari-rspec)
+[![Build Status](https://travis-ci.org/nessche/kaminari-rspec.png)](https://travis-ci.org/nessche/kaminari-rspec)
+
+
`kaminari-rspec` is a ruby gem that aims at simplifying writing the specs for views where Kaminari is used for pagination
-Installing
-----------
+## Installing
+
Simply install the gem to your system
-`gem install kaminari-rspec`
+ gem install kaminari-rspec
or if you are using Bundler add it to your gemspec file and run `bundle install`.
-Gem Versioning
---------------
+## Gem Versioning
The gem version reflects the kaminari version that is supports. Please notice that this gem is maintained in my spare time
so delays occur between the release of a new Kaminari version and the release of a new version of this gem. Feel free
to fork this repo and update the version and the code as needed.
-Rendering views with RSpec's render_view
-----------------------------------------
+## Rendering views with RSpec's render_view
If you are rendering the views from your controller spec using render_views AND you are mocking
the data returned from the db with something along the lines of
- `Model.stub_chain(:order, :page, :per).and_return([model_mock])`
+ Model.stub_chain(:order, :page, :per).and_return([model_mock])
you may want to also stub the methods needed by the pagination partials, in order to do that, just
add the following to your `spec_helper`
- `config.include KaminariRspec::TestHelpers, :type => :controller`
+ config.include KaminariRspec::TestHelpers, :type => :controller
and then modify your controller spec to look like
- `Model.stub_chain(:order, :page, :per).and_return(stub_pagination([model_mock]))`
+ Model.stub_chain(:order, :page, :per).and_return(stub_pagination([model_mock]))
the stubs will return the values needed to set the pagination as being on the first and only page.
-If specific pagination values are needed they can be defined using a hash
+### Pagination options
- `stub_pagination(mocked_result, :total_count => 50, :current_page => 3, :per_page => 10)`
+If specific pagination values are needed they can be defined using a hash. The following values are supported:
-will create the same pagination links as a total count of 50 elements are available, with 10
-elements per page and page 3 being the current_page. Notice that `current_page` is anyway always
-set such that it respects the values passed in `total_count` and `per_page`, i.e. if you pass a
-total count of 95 and a per page value of 10, current page will be capped to 10
+* `:total_count` : the total number of elements to be paginated. It defaults to `resource.length` if resource is a collection,
+otherwise to 1
+* `:per_page` : the amount of elements per page, defaults to 25
+* `:current_page` : the current page of the pagination. Defaults to 1. Notice that `current_page` is anyway always
+ set such that it respects the values passed in `total_count` and `per_page`, i.e. if you pass a
+ total count of 95 and a per page value of 10, current page will be capped to 10
-Detecting mocking framework
----------------------------
+As an example
+ stub_pagination(resource, :total_count => 50, :current_page => 3, :per_page => 10)
+
+will create the pagination links for a total count of 50 elements, with 10
+elements per page and page 3 being the current_page.
+
+## Detecting mocking framework
+
If you are using RSpec >= 2.5.2 there is no need to explicitly pass the mocking framework you
are using to the stub_pagination method, as it is automatically detected by the TestHelpers.
For earlier versions you are required to explicitly use the same string you would pass to
`RSpec.configuration.mock_with` , so the actual method call is
- `stub_pagination(mocked_result, :mock => :rspec, :total_count => 50, :current_page => 3, :per_page => 10)`
+ stub_pagination(mocked_result, :mock => :rspec, :total_count => 50, :current_page => 3, :per_page => 10)
-Default values
---------------
+### Supported mocking frameworks
-The TestHelpers will also try to guess values so that you don't need to explicitly pass them all.
-* `:per_page` will default to 25
-* `:current_page` will default to 1
-* `:total_count` will default to 1 if the object passed as resource is not a collection, otherwise it will
- invoke get the value from resource.length
+Currently supported mocking frameworks are:
+* RSpec's built-in doubles
+* RR (Double Ruby)
+* Mocha
+* Flexmock