mislav-will_paginate 2.3.2 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,10 @@
1
+ == 2.3.3, released 2008-08-29
2
+
3
+ * Ensure that paginate_by_sql doesn't change the original SQL query.
4
+ * RDoc love (now live at http://mislav.caboo.se/static/will_paginate/doc/)
5
+ * Rename :prev_label to :previous_label for consistency. old name still functions but is deprecated
6
+ * ActiveRecord 2.1: Remove :include option from count_all query when it's possible.
7
+
1
8
  == 2.3.2, released 2008-05-16
2
9
 
3
10
  * Fixed LinkRenderer#stringified_merge by removing "return" from iterator block
data/README.rdoc CHANGED
@@ -11,32 +11,11 @@ can.
11
11
 
12
12
  Some resources to get you started:
13
13
 
14
+ * {Installation instructions}[http://github.com/mislav/will_paginate/wikis/installation]
15
+ on {the wiki}[http://github.com/mislav/will_paginate/wikis]
14
16
  * Your mind reels with questions? Join our
15
17
  {Google group}[http://groups.google.com/group/will_paginate].
16
- * The will_paginate project page: http://github.com/mislav/will_paginate
17
- * How to report bugs: http://github.com/mislav/will_paginate/wikis/report-bugs
18
- * Ryan Bates made an awesome screencast[http://railscasts.com/episodes/51],
19
- check it out.
20
-
21
- == Installation
22
-
23
- The recommended way is that you get the gem:
24
-
25
- gem install mislav-will_paginate --source http://gems.github.com/
26
-
27
- After that you don't need the will_paginate <i>plugin</i> in your Rails
28
- application anymore. Just add a simple require to the end of
29
- "config/environment.rb":
30
-
31
- gem 'mislav-will_paginate', '~> 2.2'
32
- require 'will_paginate'
33
-
34
- That's it. Remember to install the gem on <b>all</b> machines that you are
35
- deploying to.
36
-
37
- <i>There are extensive
38
- {installation instructions}[http://github.com/mislav/will_paginate/wikis/installation]
39
- on {the wiki}[http://github.com/mislav/will_paginate/wikis].</i>
18
+ * {How to report bugs}[http://github.com/mislav/will_paginate/wikis/report-bugs]
40
19
 
41
20
 
42
21
  == Example usage
@@ -54,8 +33,7 @@ pagination, just stick this in:
54
33
 
55
34
  <%= will_paginate @posts %>
56
35
 
57
- You're done. (Copy and paste the example fancy CSS styles from the bottom.) You
58
- can find the option list at WillPaginate::ViewHelpers.
36
+ You're done. (You can find the option list at WillPaginate::ViewHelpers.)
59
37
 
60
38
  How does it know how much items to fetch per page? It asks your model by calling
61
39
  its <tt>per_page</tt> class method. You can define it like this:
@@ -115,16 +93,13 @@ Lourens Naudé, Rick Olson, Russell Norris, Piotr Usewicz, Chris Eppstein.
115
93
  == Usable pagination in the UI
116
94
 
117
95
  There are some CSS styles to get you started in the "examples/" directory. They
118
- are showcased in the <b>"examples/index.html"</b> file.
96
+ are {showcased online here}[http://mislav.caboo.se/static/will_paginate/].
119
97
 
120
98
  More reading about pagination as design pattern:
121
99
 
122
- * Pagination 101:
123
- http://kurafire.net/log/archive/2007/06/22/pagination-101
124
- * Pagination gallery:
125
- http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-good-practices/
126
- * Pagination on Yahoo Design Pattern Library:
127
- http://developer.yahoo.com/ypatterns/parent.php?pattern=pagination
100
+ * {Pagination 101}[http://kurafire.net/log/archive/2007/06/22/pagination-101]
101
+ * {Pagination gallery}[http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-good-practices/]
102
+ * {Pagination on Yahoo Design Pattern Library}[http://developer.yahoo.com/ypatterns/parent.php?pattern=pagination]
128
103
 
129
104
  Want to discuss, request features, ask questions? Join the
130
105
  {Google group}[http://groups.google.com/group/will_paginate].
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  begin
3
- hanna_dir = '/home/mislav/projects/hanna/lib'
3
+ hanna_dir = '/Users/mislav/Projects/Hanna/lib'
4
4
  $:.unshift hanna_dir if File.exists? hanna_dir
5
5
  require 'hanna/rdoctask'
6
6
  rescue LoadError
@@ -14,7 +14,7 @@ task :default => :test
14
14
 
15
15
  desc 'Generate RDoc documentation for the will_paginate plugin.'
16
16
  Rake::RDocTask.new(:rdoc) do |rdoc|
17
- rdoc.rdoc_files.include('README.rdoc', 'LICENSE', 'CHANGELOG').
17
+ rdoc.rdoc_files.include('README.rdoc', 'LICENSE', 'CHANGELOG.rdoc').
18
18
  include('lib/**/*.rb').
19
19
  exclude('lib/will_paginate/named_scope*').
20
20
  exclude('lib/will_paginate/array.rb').
data/lib/will_paginate.rb CHANGED
@@ -9,29 +9,29 @@ require 'active_support'
9
9
  # Happy paginating!
10
10
  module WillPaginate
11
11
  class << self
12
- # shortcut for <tt>enable_actionpack; enable_activerecord</tt>
12
+ # shortcut for <tt>enable_actionpack</tt> and <tt>enable_activerecord</tt> combined
13
13
  def enable
14
14
  enable_actionpack
15
15
  enable_activerecord
16
16
  end
17
17
 
18
- # mixes in WillPaginate::ViewHelpers in ActionView::Base
18
+ # hooks WillPaginate::ViewHelpers into ActionView::Base
19
19
  def enable_actionpack
20
20
  return if ActionView::Base.instance_methods.include? 'will_paginate'
21
21
  require 'will_paginate/view_helpers'
22
- ActionView::Base.class_eval { include ViewHelpers }
22
+ ActionView::Base.send :include, ViewHelpers
23
23
 
24
24
  if defined?(ActionController::Base) and ActionController::Base.respond_to? :rescue_responses
25
25
  ActionController::Base.rescue_responses['WillPaginate::InvalidPage'] = :not_found
26
26
  end
27
27
  end
28
28
 
29
- # mixes in WillPaginate::Finder in ActiveRecord::Base and classes that deal
29
+ # hooks WillPaginate::Finder into ActiveRecord::Base and classes that deal
30
30
  # with associations
31
31
  def enable_activerecord
32
32
  return if ActiveRecord::Base.respond_to? :paginate
33
33
  require 'will_paginate/finder'
34
- ActiveRecord::Base.class_eval { include Finder }
34
+ ActiveRecord::Base.send :include, Finder
35
35
 
36
36
  # support pagination on associations
37
37
  a = ActiveRecord::Associations
@@ -41,10 +41,8 @@ module WillPaginate
41
41
  classes << a::HasManyThroughAssociation
42
42
  end
43
43
  }.each do |klass|
44
- klass.class_eval do
45
- include Finder::ClassMethods
46
- alias_method_chain :method_missing, :paginate
47
- end
44
+ klass.send :include, Finder::ClassMethods
45
+ klass.class_eval { alias_method_chain :method_missing, :paginate }
48
46
  end
49
47
  end
50
48
 
@@ -61,13 +59,11 @@ module WillPaginate
61
59
  require 'will_paginate/named_scope'
62
60
  require 'will_paginate/named_scope_patch' if patch
63
61
 
64
- ActiveRecord::Base.class_eval do
65
- include WillPaginate::NamedScope
66
- end
62
+ ActiveRecord::Base.send :include, WillPaginate::NamedScope
67
63
  end
68
64
  end
69
65
 
70
- module Deprecation #:nodoc:
66
+ module Deprecation # :nodoc:
71
67
  extend ActiveSupport::Deprecation
72
68
 
73
69
  def self.warn(message, callstack = caller)
@@ -33,12 +33,12 @@ module WillPaginate
33
33
  #
34
34
  # If you are writing a library that provides a collection which you would like
35
35
  # to conform to this API, you don't have to copy these methods over; simply
36
- # make your plugin/gem dependant on the "will_paginate" gem:
36
+ # make your plugin/gem dependant on the "mislav-will_paginate" gem:
37
37
  #
38
- # gem 'will_paginate'
38
+ # gem 'mislav-will_paginate'
39
39
  # require 'will_paginate/collection'
40
40
  #
41
- # # now use WillPaginate::Collection directly or subclass it
41
+ # # WillPaginate::Collection is now available for use
42
42
  class Collection < Array
43
43
  attr_reader :current_page, :per_page, :total_entries, :total_pages
44
44
 
@@ -98,7 +98,7 @@ module WillPaginate
98
98
  # Current offset of the paginated collection. If we're on the first page,
99
99
  # it is always 0. If we're on the 2nd page and there are 30 entries per page,
100
100
  # the offset is 30. This property is useful if you want to render ordinals
101
- # besides your records: simply start with offset + 1.
101
+ # side by side with records in the view: simply start with offset + 1.
102
102
  def offset
103
103
  (current_page - 1) * per_page
104
104
  end
@@ -112,7 +112,8 @@ module WillPaginate
112
112
  def next_page
113
113
  current_page < total_pages ? (current_page + 1) : nil
114
114
  end
115
-
115
+
116
+ # sets the <tt>total_entries</tt> property and calculates <tt>total_pages</tt>
116
117
  def total_entries=(number)
117
118
  @total_entries = number.to_i
118
119
  @total_pages = (@total_entries / per_page.to_f).ceil
@@ -94,8 +94,8 @@ module WillPaginate
94
94
  # You can specify a starting page with <tt>:page</tt> (default is 1). Default
95
95
  # <tt>:order</tt> is <tt>"id"</tt>, override if necessary.
96
96
  #
97
- # See http://weblog.jamisbuck.org/2007/4/6/faking-cursors-in-activerecord where
98
- # Jamis Buck describes this and also uses a more efficient way for MySQL.
97
+ # See {Faking Cursors in ActiveRecord}[http://weblog.jamisbuck.org/2007/4/6/faking-cursors-in-activerecord]
98
+ # where Jamis Buck describes this and a more efficient way for MySQL.
99
99
  def paginated_each(options = {}, &block)
100
100
  options = { :order => 'id', :page => 1 }.merge options
101
101
  options[:page] = options[:page].to_i
@@ -127,7 +127,7 @@ module WillPaginate
127
127
  #
128
128
  def paginate_by_sql(sql, options)
129
129
  WillPaginate::Collection.create(*wp_parse_options(options)) do |pager|
130
- query = sanitize_sql(sql)
130
+ query = sanitize_sql(sql.dup)
131
131
  original_query = query.dup
132
132
  # add limit, offset
133
133
  add_limit! query, :offset => pager.offset, :limit => pager.per_page
@@ -184,19 +184,27 @@ module WillPaginate
184
184
  unless options[:select] and options[:select] =~ /^\s*DISTINCT\b/i
185
185
  excludees << :select # only exclude the select param if it doesn't begin with DISTINCT
186
186
  end
187
+
187
188
  # count expects (almost) the same options as find
188
189
  count_options = options.except *excludees
189
190
 
190
191
  # merge the hash found in :count
191
192
  # this allows you to specify :select, :order, or anything else just for the count query
192
193
  count_options.update options[:count] if options[:count]
194
+
195
+ # we may be in a model or an association proxy
196
+ klass = (@owner and @reflection) ? @reflection.klass : self
197
+
198
+ # forget about includes if they are irrelevant (Rails 2.1)
199
+ if count_options[:include] and
200
+ klass.private_methods.include?('references_eager_loaded_tables?') and
201
+ !klass.send(:references_eager_loaded_tables?, count_options)
202
+ count_options.delete :include
203
+ end
193
204
 
194
205
  # we may have to scope ...
195
206
  counter = Proc.new { count(count_options) }
196
207
 
197
- # we may be in a model or an association proxy!
198
- klass = (@owner and @reflection) ? @reflection.klass : self
199
-
200
208
  count = if finder.index('find_') == 0 and klass.respond_to?(scoper = finder.sub('find', 'with'))
201
209
  # scope_out adds a 'with_finder' method which acts like with_scope, if it's present
202
210
  # then execute the count with the scoping provided by the with_finder
@@ -2,7 +2,7 @@ module WillPaginate
2
2
  module VERSION
3
3
  MAJOR = 2
4
4
  MINOR = 3
5
- TINY = 2
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -3,35 +3,36 @@ require 'will_paginate/core_ext'
3
3
  module WillPaginate
4
4
  # = Will Paginate view helpers
5
5
  #
6
- # Currently there is only one view helper: +will_paginate+. It renders the
6
+ # The main view helper, #will_paginate, renders
7
7
  # pagination links for the given collection. The helper itself is lightweight
8
- # and serves only as a wrapper around link renderer instantiation; the
8
+ # and serves only as a wrapper around LinkRenderer instantiation; the
9
9
  # renderer then does all the hard work of generating the HTML.
10
10
  #
11
11
  # == Global options for helpers
12
12
  #
13
13
  # Options for pagination helpers are optional and get their default values from the
14
- # WillPaginate::ViewHelpers.pagination_options hash. You can write to this hash to
14
+ # <tt>WillPaginate::ViewHelpers.pagination_options</tt> hash. You can write to this hash to
15
15
  # override default options on the global level:
16
16
  #
17
- # WillPaginate::ViewHelpers.pagination_options[:prev_label] = 'Previous page'
17
+ # WillPaginate::ViewHelpers.pagination_options[:previous_label] = 'Previous page'
18
18
  #
19
- # By putting this into your environment.rb you can easily translate link texts to previous
19
+ # By putting this into "config/initializers/will_paginate.rb" (or simply environment.rb in
20
+ # older versions of Rails) you can easily translate link texts to previous
20
21
  # and next pages, as well as override some other defaults to your liking.
21
22
  module ViewHelpers
22
23
  # default options that can be overridden on the global level
23
24
  @@pagination_options = {
24
- :class => 'pagination',
25
- :prev_label => '&laquo; Previous',
26
- :next_label => 'Next &raquo;',
27
- :inner_window => 4, # links around the current page
28
- :outer_window => 1, # links around beginning and end
29
- :separator => ' ', # single space is friendly to spiders and non-graphic browsers
30
- :param_name => :page,
31
- :params => nil,
32
- :renderer => 'WillPaginate::LinkRenderer',
33
- :page_links => true,
34
- :container => true
25
+ :class => 'pagination',
26
+ :previous_label => '&laquo; Previous',
27
+ :next_label => 'Next &raquo;',
28
+ :inner_window => 4, # links around the current page
29
+ :outer_window => 1, # links around beginning and end
30
+ :separator => ' ', # single space is friendly to spiders and non-graphic browsers
31
+ :param_name => :page,
32
+ :params => nil,
33
+ :renderer => 'WillPaginate::LinkRenderer',
34
+ :page_links => true,
35
+ :container => true
35
36
  }
36
37
  mattr_reader :pagination_options
37
38
 
@@ -40,32 +41,37 @@ module WillPaginate
40
41
  # rendering the pagination in that case...
41
42
  #
42
43
  # ==== Options
43
- # * <tt>:class</tt> -- CSS class name for the generated DIV (default: "pagination")
44
- # * <tt>:prev_label</tt> -- default: "« Previous"
44
+ # Display options:
45
+ # * <tt>:previous_label</tt> -- default: "« Previous" (this parameter is called <tt>:prev_label</tt> in versions <b>2.3.2</b> and older!)
45
46
  # * <tt>:next_label</tt> -- default: "Next »"
47
+ # * <tt>:page_links</tt> -- when false, only previous/next links are rendered (default: true)
46
48
  # * <tt>:inner_window</tt> -- how many links are shown around the current page (default: 4)
47
49
  # * <tt>:outer_window</tt> -- how many links are around the first and the last page (default: 1)
48
50
  # * <tt>:separator</tt> -- string separator for page HTML elements (default: single space)
49
- # * <tt>:param_name</tt> -- parameter name for page number in URLs (default: <tt>:page</tt>)
50
- # * <tt>:params</tt> -- additional parameters when generating pagination links
51
- # (eg. <tt>:controller => "foo", :action => nil</tt>)
52
- # * <tt>:renderer</tt> -- class name, class or instance of a link renderer (default:
53
- # <tt>WillPaginate::LinkRenderer</tt>)
54
- # * <tt>:page_links</tt> -- when false, only previous/next links are rendered (default: true)
51
+ #
52
+ # HTML options:
53
+ # * <tt>:class</tt> -- CSS class name for the generated DIV (default: "pagination")
55
54
  # * <tt>:container</tt> -- toggles rendering of the DIV container for pagination links, set to
56
55
  # false only when you are rendering your own pagination markup (default: true)
57
56
  # * <tt>:id</tt> -- HTML ID for the container (default: nil). Pass +true+ to have the ID
58
57
  # automatically generated from the class name of objects in collection: for example, paginating
59
58
  # ArticleComment models would yield an ID of "article_comments_pagination".
60
59
  #
61
- # All options beside listed ones are passed as HTML attributes to the container
60
+ # Advanced options:
61
+ # * <tt>:param_name</tt> -- parameter name for page number in URLs (default: <tt>:page</tt>)
62
+ # * <tt>:params</tt> -- additional parameters when generating pagination links
63
+ # (eg. <tt>:controller => "foo", :action => nil</tt>)
64
+ # * <tt>:renderer</tt> -- class name, class or instance of a link renderer (default:
65
+ # <tt>WillPaginate::LinkRenderer</tt>)
66
+ #
67
+ # All options not recognized by will_paginate will become HTML attributes on the container
62
68
  # element for pagination links (the DIV). For example:
63
69
  #
64
- # <%= will_paginate @posts, :id => 'wp_posts' %>
70
+ # <%= will_paginate @posts, :style => 'font-size: small' %>
65
71
  #
66
72
  # ... will result in:
67
73
  #
68
- # <div class="pagination" id="wp_posts"> ... </div>
74
+ # <div class="pagination" style="font-size: small"> ... </div>
69
75
  #
70
76
  # ==== Using the helper without arguments
71
77
  # If the helper is called without passing in the collection object, it will
@@ -92,6 +98,10 @@ module WillPaginate
92
98
  return nil unless WillPaginate::ViewHelpers.total_pages_for_collection(collection) > 1
93
99
 
94
100
  options = options.symbolize_keys.reverse_merge WillPaginate::ViewHelpers.pagination_options
101
+ if options[:prev_label]
102
+ WillPaginate::Deprecation::warn(":prev_label view parameter is now :previous_label; the old name has been deprecated.")
103
+ options[:previous_label] = options.delete(:prev_label)
104
+ end
95
105
 
96
106
  # get the renderer instance
97
107
  renderer = case options[:renderer]
@@ -143,7 +153,7 @@ module WillPaginate
143
153
  #
144
154
  # By default, the message will use the humanized class name of objects
145
155
  # in collection: for instance, "project types" for ProjectType models.
146
- # Override this to your liking with the <tt>:entry_name</tt> parameter:
156
+ # Override this with the <tt>:entry_name</tt> parameter:
147
157
  #
148
158
  # <%= page_entries_info @posts, :entry_name => 'item' %>
149
159
  # #-> Displaying items 6 - 10 of 26 in total
@@ -183,7 +193,7 @@ module WillPaginate
183
193
  end
184
194
 
185
195
  # This class does the heavy lifting of actually building the pagination
186
- # links. It is used by +will_paginate+ helper internally.
196
+ # links. It is used by the <tt>will_paginate</tt> helper internally.
187
197
  class LinkRenderer
188
198
 
189
199
  # The gap in page links is represented by:
@@ -214,7 +224,7 @@ module WillPaginate
214
224
  def to_html
215
225
  links = @options[:page_links] ? windowed_links : []
216
226
  # previous/next buttons
217
- links.unshift page_link_or_span(@collection.previous_page, 'disabled prev_page', @options[:prev_label])
227
+ links.unshift page_link_or_span(@collection.previous_page, 'disabled prev_page', @options[:previous_label])
218
228
  links.push page_link_or_span(@collection.next_page, 'disabled next_page', @options[:next_label])
219
229
 
220
230
  html = links.join(@options[:separator])
data/test/database.yml CHANGED
@@ -9,8 +9,8 @@ sqlite2:
9
9
 
10
10
  mysql:
11
11
  adapter: mysql
12
- username: rails
13
- password: mislav
12
+ username: root
13
+ password:
14
14
  encoding: utf8
15
15
  database: will_paginate_unittest
16
16
 
data/test/finder_test.rb CHANGED
@@ -397,6 +397,15 @@ class FinderTest < ActiveRecordTestCase
397
397
  Developer.paginate(options)
398
398
  assert_equal options, options_before
399
399
  end
400
+
401
+ def test_paginate_by_sql_doesnt_change_original_query
402
+ query = 'SQL QUERY'
403
+ original_query = query.dup
404
+ Developer.expects(:find_by_sql).returns([])
405
+
406
+ Developer.paginate_by_sql query, :page => 1
407
+ assert_equal original_query, query
408
+ end
400
409
 
401
410
  def test_paginated_each
402
411
  collection = stub('collection', :size => 5, :empty? => false, :per_page => 5)
@@ -412,5 +421,23 @@ class FinderTest < ActiveRecordTestCase
412
421
 
413
422
  assert_equal 14, Developer.paginated_each(:page => '2') { }
414
423
  end
424
+
425
+ # detect ActiveRecord 2.1
426
+ if ActiveRecord::Base.private_methods.include?('references_eager_loaded_tables?')
427
+ def test_removes_irrelevant_includes_in_count
428
+ Developer.expects(:find).returns([1])
429
+ Developer.expects(:count).with({}).returns(0)
430
+
431
+ Developer.paginate :page => 1, :per_page => 1, :include => :projects
432
+ end
433
+
434
+ def test_doesnt_remove_referenced_includes_in_count
435
+ Developer.expects(:find).returns([1])
436
+ Developer.expects(:count).with({ :include => :projects, :conditions => 'projects.id > 2' }).returns(0)
437
+
438
+ Developer.paginate :page => 1, :per_page => 1,
439
+ :include => :projects, :conditions => 'projects.id > 2'
440
+ end
441
+ end
415
442
  end
416
443
  end
data/test/tasks.rake CHANGED
@@ -32,18 +32,21 @@ task :test_databases => %w(test_mysql test_sqlite3 test_postgres)
32
32
  desc %{Test everything on SQLite3, MySQL and PostgreSQL}
33
33
  task :test_full => %w(test test_mysql test_postgres)
34
34
 
35
- desc %{Test everything with Rails 1.2.x and 2.0.x gems}
35
+ desc %{Test everything with Rails 2.1.x, 2.0.x & 1.2.x gems}
36
36
  task :test_all do
37
37
  all = Rake::Task['test_full']
38
- ENV['RAILS_VERSION'] = '~>1.2.6'
39
- all.invoke
40
- # reset the invoked flag
38
+ versions = %w(2.1.0 2.0.2 1.2.6)
39
+ versions.each do |version|
40
+ ENV['RAILS_VERSION'] = "~> #{version}"
41
+ all.invoke
42
+ reset_invoked unless version == versions.last
43
+ end
44
+ end
45
+
46
+ def reset_invoked
41
47
  %w( test_full test test_mysql test_postgres ).each do |name|
42
48
  Rake::Task[name].instance_variable_set '@already_invoked', false
43
49
  end
44
- # do it again
45
- ENV['RAILS_VERSION'] = '~>2.0.2'
46
- all.invoke
47
50
  end
48
51
 
49
52
  task :rcov do
data/test/view_test.rb CHANGED
@@ -36,7 +36,7 @@ class ViewTest < WillPaginate::ViewTestCase
36
36
 
37
37
  def test_will_paginate_with_options
38
38
  paginate({ :page => 2 },
39
- :class => 'will_paginate', :prev_label => 'Prev', :next_label => 'Next') do
39
+ :class => 'will_paginate', :previous_label => 'Prev', :next_label => 'Next') do
40
40
  assert_select 'a[href]', 4 do |elements|
41
41
  validate_page_numbers [1,1,3,3], elements
42
42
  # test rel attribute values:
@@ -80,6 +80,14 @@ class ViewTest < WillPaginate::ViewTestCase
80
80
  assert_select 'a.next_page[href]:last-child'
81
81
  end
82
82
  end
83
+
84
+ def test_prev_label_deprecated
85
+ assert_deprecated ':previous_label' do
86
+ paginate({ :page => 2 }, :prev_label => 'Deprecated') do
87
+ assert_select 'a[href]:first-child', 'Deprecated'
88
+ end
89
+ end
90
+ end
83
91
 
84
92
  def test_full_output
85
93
  paginate
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mislav-will_paginate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Mislav Marohni\xC4\x87"
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2008-05-16 00:00:00 -07:00
13
+ date: 2008-08-29 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -31,9 +31,9 @@ extensions: []
31
31
  extra_rdoc_files:
32
32
  - README.rdoc
33
33
  - LICENSE
34
- - CHANGELOG
34
+ - CHANGELOG.rdoc
35
35
  files:
36
- - CHANGELOG
36
+ - CHANGELOG.rdoc
37
37
  - LICENSE
38
38
  - README.rdoc
39
39
  - Rakefile
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  requirements: []
108
108
 
109
109
  rubyforge_project:
110
- rubygems_version: 1.0.1
110
+ rubygems_version: 1.2.0
111
111
  signing_key:
112
112
  specification_version: 2
113
113
  summary: Most awesome pagination solution for Rails