will_paginate 3.0.4 → 4.0.0

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.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +7 -10
  3. data/lib/will_paginate/active_record.rb +18 -17
  4. data/lib/will_paginate/deprecation.rb +3 -3
  5. data/lib/will_paginate/i18n.rb +3 -3
  6. data/lib/will_paginate/locale/en.yml +4 -0
  7. data/lib/will_paginate/mongoid.rb +48 -0
  8. data/lib/will_paginate/page_number.rb +7 -11
  9. data/lib/will_paginate/railtie.rb +19 -13
  10. data/lib/will_paginate/version.rb +2 -2
  11. data/lib/will_paginate/view_helpers/action_view.rb +12 -5
  12. data/lib/will_paginate/view_helpers/hanami.rb +41 -0
  13. data/lib/will_paginate/view_helpers/link_renderer.rb +23 -17
  14. data/lib/will_paginate/view_helpers/link_renderer_base.rb +1 -1
  15. data/lib/will_paginate/view_helpers.rb +3 -1
  16. data/lib/will_paginate.rb +0 -12
  17. metadata +29 -58
  18. data/Rakefile +0 -25
  19. data/lib/will_paginate/data_mapper.rb +0 -95
  20. data/lib/will_paginate/view_helpers/merb.rb +0 -26
  21. data/spec/ci.rb +0 -29
  22. data/spec/collection_spec.rb +0 -139
  23. data/spec/console +0 -12
  24. data/spec/console_fixtures.rb +0 -28
  25. data/spec/database.yml +0 -22
  26. data/spec/finders/active_record_spec.rb +0 -556
  27. data/spec/finders/activerecord_test_connector.rb +0 -115
  28. data/spec/finders/data_mapper_spec.rb +0 -103
  29. data/spec/finders/data_mapper_test_connector.rb +0 -54
  30. data/spec/finders/sequel_spec.rb +0 -67
  31. data/spec/finders/sequel_test_connector.rb +0 -15
  32. data/spec/fixtures/admin.rb +0 -3
  33. data/spec/fixtures/developer.rb +0 -13
  34. data/spec/fixtures/developers_projects.yml +0 -13
  35. data/spec/fixtures/project.rb +0 -15
  36. data/spec/fixtures/projects.yml +0 -6
  37. data/spec/fixtures/replies.yml +0 -29
  38. data/spec/fixtures/reply.rb +0 -9
  39. data/spec/fixtures/schema.rb +0 -38
  40. data/spec/fixtures/topic.rb +0 -7
  41. data/spec/fixtures/topics.yml +0 -30
  42. data/spec/fixtures/user.rb +0 -2
  43. data/spec/fixtures/users.yml +0 -35
  44. data/spec/page_number_spec.rb +0 -65
  45. data/spec/per_page_spec.rb +0 -41
  46. data/spec/spec_helper.rb +0 -71
  47. data/spec/view_helpers/action_view_spec.rb +0 -423
  48. data/spec/view_helpers/base_spec.rb +0 -130
  49. data/spec/view_helpers/link_renderer_base_spec.rb +0 -87
  50. data/spec/view_helpers/view_example_group.rb +0 -121
@@ -1,121 +0,0 @@
1
- require 'active_support'
2
- begin
3
- require 'minitest/unit'
4
- rescue LoadError
5
- # Fails on Ruby 1.8, but it's OK since we only need MiniTest::Assertions
6
- # on Rails 4 which doesn't support 1.8 anyway.
7
- end
8
- require 'action_dispatch/testing/assertions'
9
- require 'will_paginate/array'
10
-
11
- module ViewExampleGroup
12
-
13
- include ActionDispatch::Assertions::SelectorAssertions
14
- include MiniTest::Assertions if defined? MiniTest
15
-
16
- def assert(value, message)
17
- raise message unless value
18
- end
19
-
20
- def paginate(collection = {}, options = {}, &block)
21
- if collection.instance_of? Hash
22
- page_options = { :page => 1, :total_entries => 11, :per_page => 4 }.merge(collection)
23
- collection = [1].paginate(page_options)
24
- end
25
-
26
- locals = { :collection => collection, :options => options }
27
-
28
- @render_output = render(locals)
29
- @html_document = nil
30
-
31
- if block_given?
32
- classname = options[:class] || WillPaginate::ViewHelpers.pagination_options[:class]
33
- assert_select("div.#{classname}", 1, 'no main DIV', &block)
34
- end
35
-
36
- @render_output
37
- end
38
-
39
- def html_document
40
- @html_document ||= HTML::Document.new(@render_output, true, false)
41
- end
42
-
43
- def response_from_page_or_rjs
44
- html_document.root
45
- end
46
-
47
- def validate_page_numbers(expected, links, param_name = :page)
48
- param_pattern = /\W#{Regexp.escape(param_name.to_s)}=([^&]*)/
49
-
50
- links.map { |el|
51
- unescape_href(el) =~ param_pattern
52
- $1 ? $1.to_i : $1
53
- }.should == expected
54
- end
55
-
56
- def assert_links_match(pattern, links = nil, numbers = nil)
57
- links ||= assert_select 'div.pagination a[href]' do |elements|
58
- elements
59
- end
60
-
61
- pages = [] if numbers
62
-
63
- links.each do |el|
64
- href = unescape_href(el)
65
- href.should =~ pattern
66
- if numbers
67
- href =~ pattern
68
- pages << ($1.nil?? nil : $1.to_i)
69
- end
70
- end
71
-
72
- pages.should == numbers if numbers
73
- end
74
-
75
- def assert_no_links_match(pattern)
76
- assert_select 'div.pagination a[href]' do |elements|
77
- elements.each do |el|
78
- unescape_href(el).should_not =~ pattern
79
- end
80
- end
81
- end
82
-
83
- def unescape_href(el)
84
- CGI.unescape CGI.unescapeHTML(el['href'])
85
- end
86
-
87
- def build_message(message, pattern, *args)
88
- built_message = pattern.dup
89
- for value in args
90
- built_message.sub! '?', value.inspect
91
- end
92
- built_message
93
- end
94
-
95
- end
96
-
97
- RSpec.configure do |config|
98
- config.include ViewExampleGroup, :type => :view, :example_group => {
99
- :file_path => %r{spec/view_helpers/}
100
- }
101
- end
102
-
103
- module HTML
104
- Node.class_eval do
105
- def inner_text
106
- children.map(&:inner_text).join('')
107
- end
108
- end
109
-
110
- Text.class_eval do
111
- def inner_text
112
- self.to_s
113
- end
114
- end
115
-
116
- Tag.class_eval do
117
- def inner_text
118
- childless?? '' : super
119
- end
120
- end
121
- end