rails_paginate 0.0.2 → 0.0.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.
Files changed (36) hide show
  1. data/VERSION +1 -1
  2. data/lib/rails_paginate/collection.rb +6 -1
  3. data/lib/rails_paginate/helpers/action_view.rb +34 -0
  4. data/lib/rails_paginate/helpers/active_record.rb +10 -0
  5. data/lib/rails_paginate/helpers/array.rb +10 -0
  6. data/lib/rails_paginate/helpers.rb +8 -0
  7. data/lib/rails_paginate/pagers/base.rb +21 -0
  8. data/lib/rails_paginate/pagers/slider.rb +51 -0
  9. data/lib/rails_paginate/pagers.rb +7 -0
  10. data/lib/rails_paginate/renderers/base.rb +68 -0
  11. data/lib/rails_paginate/renderers/html_default.rb +46 -0
  12. data/lib/rails_paginate/renderers.rb +8 -0
  13. data/lib/rails_paginate.rb +28 -22
  14. data/rails_paginate.gemspec +26 -18
  15. data/spec/helpers/action_view_spec.rb +38 -0
  16. data/spec/helpers/active_record_spec.rb +11 -0
  17. data/spec/helpers/array_spec.rb +11 -0
  18. data/spec/rails_paginate_spec.rb +8 -18
  19. data/spec/renderers/base_spec.rb +12 -0
  20. data/spec/renderers/html_default_spec.rb +12 -0
  21. data/spec/spec_helper.rb +32 -0
  22. data/spec/support/{10_activerecord.rb → 10_active_record.rb} +6 -1
  23. data/spec/support/20_action_controller.rb +4 -0
  24. metadata +27 -19
  25. data/lib/rails_paginate/core_ext/active_record.rb +0 -9
  26. data/lib/rails_paginate/core_ext/array.rb +0 -8
  27. data/lib/rails_paginate/method/base.rb +0 -5
  28. data/lib/rails_paginate/method/jumping.rb +0 -6
  29. data/lib/rails_paginate/method/sliding.rb +0 -6
  30. data/lib/rails_paginate/method.rb +0 -8
  31. data/lib/rails_paginate/renderer/base.rb +0 -5
  32. data/lib/rails_paginate/renderer/html_default.rb +0 -6
  33. data/lib/rails_paginate/renderer/html_list.rb +0 -6
  34. data/lib/rails_paginate/renderer.rb +0 -8
  35. data/spec/db/migrate/20110215200000_create_items.rb +0 -7
  36. data/spec/renderer_html_default_spec.rb +0 -5
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -13,11 +13,16 @@ module RailsPaginate
13
13
  @array_or_relation = array_or_relation
14
14
 
15
15
  # save meta data
16
- @per_page = per_page || RailsPaginate.per_page
16
+ @per_page = per_page || relation_per_page || RailsPaginate.per_page
17
17
 
18
18
  # load page with result
19
19
  load_page(page) unless page.nil?
20
20
  end
21
+
22
+ # check if the relation has a per_page
23
+ def relation_per_page
24
+ (array_or_relation.respond_to?(:per_page) ? array_or_relation.per_page : nil) unless array_or_relation.is_a? Array
25
+ end
21
26
 
22
27
  # switch page
23
28
  def load_page(page)
@@ -0,0 +1,34 @@
1
+ module RailsPaginate::Helpers
2
+ module ActionView
3
+ # view_helper for paginate
4
+ #
5
+ # == Options
6
+ # :id
7
+ # :class
8
+ def paginate(*args)
9
+ options = args.extract_options!
10
+
11
+ raise ArgumentError, "first argument muss be a RailsPaginate::Collection" unless args.first.is_a? RailsPaginate::Collection
12
+
13
+ collection = args.first
14
+ # p @controller
15
+ # p url_for(:action => :index, :controller => :dummy)
16
+
17
+ # renderer
18
+ renderer = options[:renderer] || RailsPaginate.default_renderer
19
+ pager = options[:pager] || RailsPaginate.default_pager
20
+
21
+ attributes = {}
22
+ attributes[:class] = "pagination #{options[:class]}".strip
23
+ attributes[:id] = options[:id] unless options[:id].blank?
24
+
25
+ # load classes
26
+ renderer = RailsPaginate.renderer(renderer)
27
+ pager = RailsPaginate.pager(pager)
28
+
29
+ content_tag :div, attributes do
30
+ renderer.new(self, collection, pager.new(collection), options).render
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,10 @@
1
+ module RailsPaginate::Helpers
2
+ module ActiveRecord
3
+ def paginate(*args)
4
+ options = args.extract_options!
5
+ per_page = options.delete(:per_page)
6
+ page = options.delete(:page) || 1
7
+ ::RailsPaginate::Collection.new(self, page, per_page)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module RailsPaginate::Helpers
2
+ module Array
3
+ def paginate(*args)
4
+ options = args.extract_options!
5
+ per_page = options.delete(:per_page)
6
+ page = options.delete(:page) || 1
7
+ ::RailsPaginate::Collection.new(self, args.first || page, per_page)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ module RailsPaginate
2
+ # helpers modules
3
+ module Helpers
4
+ autoload :ActionView, 'rails_paginate/helpers/action_view'
5
+ autoload :ActiveRecord, 'rails_paginate/helpers/active_record'
6
+ autoload :Array, 'rails_paginate/helpers/array'
7
+ end
8
+ end
@@ -0,0 +1,21 @@
1
+ module RailsPaginate::Pagers
2
+ # base method
3
+ class Base
4
+ attr_reader :collection
5
+ def initialize(collection)
6
+ @collection = collection
7
+ end
8
+
9
+ def current_page
10
+ collection.current_page
11
+ end
12
+
13
+ def pages
14
+ collection.pages
15
+ end
16
+
17
+ def visible_pages
18
+ raise StandardError, "render is not implemented"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,51 @@
1
+ module RailsPaginate::Pagers
2
+ # slider method
3
+ class Slider < Base
4
+ cattr_reader :inner, :outer
5
+ @@inner = 2
6
+ @@outer = 2
7
+
8
+ def visible_pages
9
+ visible = []
10
+ last_inserted = 0
11
+ splited = false
12
+ (1..pages).each do |page|
13
+ # insert
14
+ if visible? page
15
+ visible << page
16
+ last_inserted = page
17
+ splited = false
18
+ else
19
+ # need splitter
20
+ if not splited and outer > 0 and last_inserted < page
21
+ visible << nil
22
+ splited = true
23
+ end
24
+ end
25
+ end
26
+ visible
27
+ end
28
+
29
+ def inner_range
30
+ @inner_range ||= (current_page - inner)..(current_page + inner)
31
+ end
32
+
33
+ # looks should this page visible
34
+ def visible?(page)
35
+ # outer
36
+ if outer > 0
37
+ return true if outer >= page
38
+ return true if (pages - outer) < page
39
+ end
40
+
41
+ # current page
42
+ return true if current_page == page
43
+
44
+ # inner
45
+ return true if inner_range.include? page
46
+
47
+ false
48
+ end
49
+
50
+ end
51
+ end
@@ -0,0 +1,7 @@
1
+ module RailsPaginate
2
+ # pagers modules
3
+ module Pagers
4
+ autoload :Base, 'rails_paginate/pagers/base'
5
+ autoload :Slider, 'rails_paginate/pagers/slider'
6
+ end
7
+ end
@@ -0,0 +1,68 @@
1
+ module RailsPaginate::Renderers
2
+ # base method
3
+ class Base
4
+ attr_reader :view, :collection, :options, :pager
5
+
6
+ def initialize(view, collection, pager, options = {})
7
+ raise ArgumentError, "first argument muss be a RailsPaginate::Collection" unless collection.is_a? RailsPaginate::Collection
8
+ raise ArgumentError, "second argument muss be a Hash" unless options.is_a? Hash
9
+ raise ArgumentError, "third argument muss be an instance of RailsPaginate::Pagers::Base" unless pager.is_a? RailsPaginate::Pagers::Base
10
+ @options = options
11
+ @collection = collection
12
+ @view = view
13
+ @pager = pager
14
+ end
15
+
16
+ def url_for_page(page)
17
+ # todo: fix url_for so did't neet fallback
18
+ begin
19
+ view.url_for(view.default_url_options.merge({:page => page}))
20
+ rescue
21
+ "?page=#{page}"
22
+ end
23
+ end
24
+
25
+ def render
26
+ raise StandardError, "render is not implemented"
27
+ end
28
+
29
+ protected
30
+
31
+ def link_to_page(page, key, options = {})
32
+ css_class = "#{options[:class]} #{page == current_page ? 'current' : ''}"
33
+ if key.nil?
34
+ content_tag :span, "..", :class => "spacer"
35
+ elsif page.nil?
36
+ content_tag :span, t(key), :class => "#{css_class} unavailable"
37
+ else
38
+ link_to t(key, :page => page), url_for_page(page), :class => css_class, :alt => view.strip_tags(t(key, :page => page))
39
+ end
40
+ end
41
+
42
+ # helper
43
+ def current_page
44
+ collection.current_page
45
+ end
46
+
47
+ def content_tag(*args, &block)
48
+ view.content_tag(*args, &block)
49
+ end
50
+
51
+ def link_to(*args, &block)
52
+ view.link_to(*args, &block)
53
+ end
54
+
55
+ def t(*args)
56
+ view.t(*args)
57
+ end
58
+
59
+ def inner_window
60
+ self.class.inner_window
61
+ end
62
+
63
+ def outer_window
64
+ self.class.outer_window
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,46 @@
1
+ module RailsPaginate::Renderers
2
+ # normale renderer
3
+ class HtmlDefault < Base
4
+
5
+
6
+ def render
7
+ view.content_tag(:ul) do
8
+ html = "\n"
9
+ html += content_tag(:li, :class => "first_page") do
10
+ link_to_page collection.first_page, 'paginate.first_page_label'
11
+ end
12
+ html += "\n"
13
+ html += content_tag(:li, :class => "previous_page") do
14
+ link_to_page collection.previous_page, 'paginate.previous_page_label'
15
+ end
16
+
17
+ html += render_pages
18
+
19
+ html += "\n"
20
+ html += content_tag(:li, :class => "next_page") do
21
+ link_to_page collection.next_page, 'paginate.next_page_label'
22
+ end
23
+ html += "\n"
24
+ html += content_tag(:li, :class => "last_page") do
25
+ link_to_page collection.last_page, 'paginate.last_page_label'
26
+ end
27
+ html += "\n"
28
+ html.html_safe
29
+ end
30
+ end
31
+
32
+ def render_pages
33
+ html = ""
34
+
35
+ pager.visible_pages.each do |page|
36
+ html += "\n"
37
+ html += content_tag(:li, :class => "pager") do
38
+ link_to_page page, page.nil? ? nil : 'paginate.pager'
39
+ end
40
+ end
41
+ html += "\n"
42
+ html.html_safe
43
+ end
44
+
45
+ end
46
+ end
@@ -0,0 +1,8 @@
1
+ module RailsPaginate
2
+ # renderer modules
3
+ module Renderers
4
+ autoload :Base, 'rails_paginate/renderers/base'
5
+ autoload :HtmlDefault, 'rails_paginate/renderers/html_default'
6
+ autoload :HtmlList, 'rails_paginate/renderers/html_list'
7
+ end
8
+ end
@@ -2,8 +2,10 @@ require 'active_support/all'
2
2
 
3
3
  # nice rails paginate plugin
4
4
  module RailsPaginate
5
- autoload :Renderer, 'rails_paginate/renderer'
5
+ autoload :Renderers, 'rails_paginate/renderers'
6
6
  autoload :Collection, 'rails_paginate/collection'
7
+ autoload :Helpers, 'rails_paginate/helpers'
8
+ autoload :Pagers, 'rails_paginate/pagers'
7
9
 
8
10
  # page_param
9
11
  mattr_accessor :page_param
@@ -13,9 +15,13 @@ module RailsPaginate
13
15
  mattr_accessor :per_page
14
16
  @@per_page = 20
15
17
 
16
- # method: :jumping or :sliding
17
- mattr_accessor :method
18
- @@method = :sliding
18
+ # default_renderer
19
+ mattr_accessor :default_renderer
20
+ @@default_renderer = :html_default
21
+
22
+ # default_pager
23
+ mattr_accessor :default_pager
24
+ @@default_pager = :slider
19
25
 
20
26
  class << self
21
27
  # to configure rails_paginate
@@ -24,28 +30,28 @@ module RailsPaginate
24
30
  yield self
25
31
  end
26
32
 
27
- # renderer
28
- def renderer(renderer = nil, &block)
29
- if renderer.nil?
30
- @renderer
31
- else
32
- renderer = renderer.to_s if renderer.is_a? Symbol
33
- if renderer.is_a? String
34
- renderer = "rails_paginate/renderer/#{renderer}".camelize.constantize
35
- end
36
-
37
- if block_given?
38
- @renderer = renderer.new &block
39
- else
40
- @renderer = renderer.new
41
- end
42
- end
33
+ # return renderer
34
+ def renderer(renderer)
35
+ raise ArgumentError, "renderer #{renderer} is not valid" unless (renderer.is_a? Symbol or renderer.is_a? String or renderer.is_a? Class)
36
+ renderer = renderer.to_s if renderer.is_a? Symbol
37
+ renderer = "rails_paginate/renderers/#{renderer}".camelize.constantize if renderer.is_a? String
38
+ renderer
39
+ end
40
+
41
+ # return pager
42
+ def pager(pager)
43
+ raise ArgumentError, "pager #{pager} is not valid" unless (pager.is_a? Symbol or pager.is_a? String or pager.is_a? Class)
44
+ pager = pager.to_s if pager.is_a? Symbol
45
+ pager = "rails_paginate/pagers/#{pager}".camelize.constantize if pager.is_a? String
46
+ pager
43
47
  end
44
48
 
45
49
  # init rails paginate
46
50
  def init
47
- require 'rails_paginate/core_ext/active_record'
48
- require 'rails_paginate/core_ext/array'
51
+ ::Array.send(:include, Helpers::Array)
52
+ ::ActiveRecord::Base.send(:extend, Helpers::ActiveRecord) if defined?(::ActiveRecord::Base)
53
+ ::ActiveRecord::Relation.send(:include, Helpers::ActiveRecord) if defined?(::ActiveRecord::Relation)
54
+ ::ActionView::Base.send(:include, Helpers::ActionView) if defined?(::ActionView::Base)
49
55
 
50
56
  # set default method
51
57
  renderer :html_default
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rails_paginate}
8
- s.version = "0.0.2"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marco Scholl"]
12
- s.date = %q{2011-02-16}
12
+ s.date = %q{2011-02-17}
13
13
  s.description = %q{a new rails 3 paginate plugin as will_paginate replacement}
14
14
  s.email = %q{develop@marco-scholl.de}
15
15
  s.extra_rdoc_files = [
@@ -29,22 +29,26 @@ Gem::Specification.new do |s|
29
29
  "init.rb",
30
30
  "lib/rails_paginate.rb",
31
31
  "lib/rails_paginate/collection.rb",
32
- "lib/rails_paginate/core_ext/active_record.rb",
33
- "lib/rails_paginate/core_ext/array.rb",
34
- "lib/rails_paginate/method.rb",
35
- "lib/rails_paginate/method/base.rb",
36
- "lib/rails_paginate/method/jumping.rb",
37
- "lib/rails_paginate/method/sliding.rb",
38
- "lib/rails_paginate/renderer.rb",
39
- "lib/rails_paginate/renderer/base.rb",
40
- "lib/rails_paginate/renderer/html_default.rb",
41
- "lib/rails_paginate/renderer/html_list.rb",
32
+ "lib/rails_paginate/helpers.rb",
33
+ "lib/rails_paginate/helpers/action_view.rb",
34
+ "lib/rails_paginate/helpers/active_record.rb",
35
+ "lib/rails_paginate/helpers/array.rb",
36
+ "lib/rails_paginate/pagers.rb",
37
+ "lib/rails_paginate/pagers/base.rb",
38
+ "lib/rails_paginate/pagers/slider.rb",
39
+ "lib/rails_paginate/renderers.rb",
40
+ "lib/rails_paginate/renderers/base.rb",
41
+ "lib/rails_paginate/renderers/html_default.rb",
42
42
  "rails_paginate.gemspec",
43
- "spec/db/migrate/20110215200000_create_items.rb",
43
+ "spec/helpers/action_view_spec.rb",
44
+ "spec/helpers/active_record_spec.rb",
45
+ "spec/helpers/array_spec.rb",
44
46
  "spec/rails_paginate_spec.rb",
45
- "spec/renderer_html_default_spec.rb",
47
+ "spec/renderers/base_spec.rb",
48
+ "spec/renderers/html_default_spec.rb",
46
49
  "spec/spec_helper.rb",
47
- "spec/support/10_activerecord.rb"
50
+ "spec/support/10_active_record.rb",
51
+ "spec/support/20_action_controller.rb"
48
52
  ]
49
53
  s.homepage = %q{http://github.com/phatworx/rails_paginate}
50
54
  s.licenses = ["MIT"]
@@ -52,11 +56,15 @@ Gem::Specification.new do |s|
52
56
  s.rubygems_version = %q{1.5.0}
53
57
  s.summary = %q{a new rails 3 paginate plugin}
54
58
  s.test_files = [
55
- "spec/db/migrate/20110215200000_create_items.rb",
59
+ "spec/helpers/action_view_spec.rb",
60
+ "spec/helpers/active_record_spec.rb",
61
+ "spec/helpers/array_spec.rb",
56
62
  "spec/rails_paginate_spec.rb",
57
- "spec/renderer_html_default_spec.rb",
63
+ "spec/renderers/base_spec.rb",
64
+ "spec/renderers/html_default_spec.rb",
58
65
  "spec/spec_helper.rb",
59
- "spec/support/10_activerecord.rb"
66
+ "spec/support/10_active_record.rb",
67
+ "spec/support/20_action_controller.rb"
60
68
  ]
61
69
 
62
70
  if s.respond_to? :specification_version then
@@ -0,0 +1,38 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RailsPaginate::Helpers::ActionView do
4
+ context "ActionView::Base.new" do
5
+ let(:collection) { (1..55).to_a.paginate }
6
+ subject { action_view }
7
+ specify { should respond_to :paginate }
8
+
9
+ it "#paginate should raise an error when no collection given" do
10
+ lambda { subject.paginate }.should raise_error(ArgumentError)
11
+ end
12
+
13
+ [
14
+ {:items => 100, :page => 1, :per_page => 15},
15
+ {:items => 300, :page => 2, :per_page => 50},
16
+ {:items => 11, :page => 5, :per_page => 15},
17
+ {:items => 0, :page => 1, :per_page => 15},
18
+ {:items => 12, :page => 1, :per_page => 15}
19
+ ].each do |config|
20
+ context "#paginate an Array with #{config[:items]} items, page #{config[:page]}, per_page #{config[:per_page]}" do
21
+ before do
22
+ @collection = (1..config[:items]).to_a.paginate :page => config[:page], :per_page => config[:per_page]
23
+ @pagination = action_view.paginate @collection
24
+ end
25
+ subject { @pagination }
26
+ it("return should be a kind of String") { should be_a String }
27
+ end
28
+ end
29
+
30
+ context "#paginate with class => dummy" do
31
+ before { @pagination = action_view.paginate collection, :class => "dummy" }
32
+ subject { @pagination }
33
+
34
+ it { subject.should match(/^<div class="pagination dummy">(.*)<\/div>$/) }
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,11 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RailsPaginate::Helpers::ActiveRecord do
4
+ subject { Item }
5
+ specify { should respond_to :paginate }
6
+
7
+ describe "return of #paginate" do
8
+ subject { Item.paginate }
9
+ it { should be_a RailsPaginate::Collection }
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RailsPaginate::Helpers::Array do
4
+ subject { Array.new }
5
+ specify { should respond_to :paginate }
6
+
7
+ describe "return of #paginate" do
8
+ subject { Array.new.paginate }
9
+ it { should be_a RailsPaginate::Collection }
10
+ end
11
+ end
@@ -14,24 +14,14 @@ describe RailsPaginate do
14
14
  before { subject.page_param = :p }
15
15
  its(:page_param) { should be :p }
16
16
  end
17
+ end
18
+ end
17
19
 
18
- describe :renderer, "set to :html_default" do
19
- before { subject.renderer :html_default }
20
- its(:renderer) { should be_a RailsPaginate::Renderer::HtmlDefault }
21
- end
22
-
23
- describe :renderer, "set to :html_list" do
24
- before { subject.renderer :html_list }
25
- its(:renderer) { should be_a RailsPaginate::Renderer::HtmlList }
26
- end
27
-
28
- describe :renderer, "set with block" do
29
- setup.renderer :html_list do |renderer_setup|
30
- subject { renderer_setup }
31
- its(:renderer) { should be_a RailsPaginate::Renderer::HtmlDefault }
32
- end
33
- end
34
-
20
+ describe :renderer do
21
+ context ":html_default" do
22
+ before { @renderer = RailsPaginate.renderer :html_default }
23
+ subject { @renderer }
24
+ it { should eq RailsPaginate::Renderers::HtmlDefault }
35
25
  end
36
26
  end
37
27
  end
@@ -45,7 +35,7 @@ describe RailsPaginate::Collection do
45
35
 
46
36
  describe Item, "with 561 items" do
47
37
  before(:all) do
48
- 561.times { |x| Item.create! :dummy => "Item #{x}" }
38
+ 561.times { |x| Item.create! :dummy => "Item #{x}" }
49
39
  end
50
40
  subject { Item }
51
41
  specify { should respond_to :paginate }
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RailsPaginate::Renderers::Base do
4
+ let(:collection) { [].paginate }
5
+ subject { RailsPaginate::Renderers::Base.new action_view, collection, RailsPaginate.pager(:slider).new(collection) }
6
+ specify { should respond_to :render }
7
+
8
+ it "#render should raise StandardError" do
9
+ lambda { subject.render }.should raise_error(StandardError)
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RailsPaginate::Renderers::HtmlDefault do
4
+ let(:collection) { [].paginate }
5
+ subject { RailsPaginate::Renderers::HtmlDefault.new action_view, collection, RailsPaginate.pager(:slider).new(collection) }
6
+ specify { should respond_to :render }
7
+
8
+ it "#render should not raise StandardError" do
9
+ lambda { subject.render }.should_not raise_error(StandardError)
10
+ end
11
+
12
+ end
data/spec/spec_helper.rb CHANGED
@@ -6,6 +6,13 @@ unless defined? JRUBY_VERSION
6
6
  end
7
7
 
8
8
  require 'rspec'
9
+ require 'active_record'
10
+ require 'action_view'
11
+ require 'active_support'
12
+ require 'active_support/test_case'
13
+ require 'action_controller'
14
+ require 'action_controller/test_case'
15
+ require 'action_dispatch'
9
16
  require 'rails_paginate'
10
17
 
11
18
  # Requires supporting files with custom matchers and macros, etc,
@@ -13,5 +20,30 @@ require 'rails_paginate'
13
20
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
14
21
 
15
22
  RSpec.configure do |config|
23
+ def action_view
24
+ x = ActionView::Base.new
25
+ x.controller = action_controller
26
+ x.request = action_controller.request
27
+ x
28
+ end
29
+
30
+ def action_controller
31
+ x = DummyController.new
32
+ x.request = test_request
33
+ x.response = test_response
34
+ x
35
+ end
36
+
37
+ def routes
38
+ ActionDispatch::Routing::RouteSet.new.draw { root :to => "index#dummy" }
39
+ end
40
+
41
+ def test_request
42
+ ActionController::TestRequest.new
43
+ end
44
+
45
+ def test_response
46
+ ActionController::TestResponse.new
47
+ end
16
48
 
17
49
  end
@@ -2,7 +2,12 @@ ActiveRecord::Base.establish_connection({
2
2
  :adapter => (defined?(JRUBY_VERSION) ? 'jdbcsqlite3' : 'sqlite3'),
3
3
  :database => ":memory:"
4
4
  })
5
- ActiveRecord::Migrator.up(File.join(File.dirname(__FILE__), '..', 'db', 'migrate'))
5
+
6
+ ActiveRecord::Schema.define(:version => 0) do
7
+ create_table :items, :force => true do |t|
8
+ t.column :dummy, :string
9
+ end
10
+ end
6
11
 
7
12
  class Item < ActiveRecord::Base
8
13
  scope :reverse_sort, order("dummy DESC")
@@ -0,0 +1,4 @@
1
+ class DummyController < ActionController::Base
2
+ def index
3
+ end
4
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rails_paginate
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marco Scholl
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-16 00:00:00 +01:00
13
+ date: 2011-02-17 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -123,22 +123,26 @@ files:
123
123
  - init.rb
124
124
  - lib/rails_paginate.rb
125
125
  - lib/rails_paginate/collection.rb
126
- - lib/rails_paginate/core_ext/active_record.rb
127
- - lib/rails_paginate/core_ext/array.rb
128
- - lib/rails_paginate/method.rb
129
- - lib/rails_paginate/method/base.rb
130
- - lib/rails_paginate/method/jumping.rb
131
- - lib/rails_paginate/method/sliding.rb
132
- - lib/rails_paginate/renderer.rb
133
- - lib/rails_paginate/renderer/base.rb
134
- - lib/rails_paginate/renderer/html_default.rb
135
- - lib/rails_paginate/renderer/html_list.rb
126
+ - lib/rails_paginate/helpers.rb
127
+ - lib/rails_paginate/helpers/action_view.rb
128
+ - lib/rails_paginate/helpers/active_record.rb
129
+ - lib/rails_paginate/helpers/array.rb
130
+ - lib/rails_paginate/pagers.rb
131
+ - lib/rails_paginate/pagers/base.rb
132
+ - lib/rails_paginate/pagers/slider.rb
133
+ - lib/rails_paginate/renderers.rb
134
+ - lib/rails_paginate/renderers/base.rb
135
+ - lib/rails_paginate/renderers/html_default.rb
136
136
  - rails_paginate.gemspec
137
- - spec/db/migrate/20110215200000_create_items.rb
137
+ - spec/helpers/action_view_spec.rb
138
+ - spec/helpers/active_record_spec.rb
139
+ - spec/helpers/array_spec.rb
138
140
  - spec/rails_paginate_spec.rb
139
- - spec/renderer_html_default_spec.rb
141
+ - spec/renderers/base_spec.rb
142
+ - spec/renderers/html_default_spec.rb
140
143
  - spec/spec_helper.rb
141
- - spec/support/10_activerecord.rb
144
+ - spec/support/10_active_record.rb
145
+ - spec/support/20_action_controller.rb
142
146
  has_rdoc: true
143
147
  homepage: http://github.com/phatworx/rails_paginate
144
148
  licenses:
@@ -153,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
157
  requirements:
154
158
  - - ">="
155
159
  - !ruby/object:Gem::Version
156
- hash: -3849386219473513286
160
+ hash: -622289539687505724
157
161
  segments:
158
162
  - 0
159
163
  version: "0"
@@ -171,8 +175,12 @@ signing_key:
171
175
  specification_version: 3
172
176
  summary: a new rails 3 paginate plugin
173
177
  test_files:
174
- - spec/db/migrate/20110215200000_create_items.rb
178
+ - spec/helpers/action_view_spec.rb
179
+ - spec/helpers/active_record_spec.rb
180
+ - spec/helpers/array_spec.rb
175
181
  - spec/rails_paginate_spec.rb
176
- - spec/renderer_html_default_spec.rb
182
+ - spec/renderers/base_spec.rb
183
+ - spec/renderers/html_default_spec.rb
177
184
  - spec/spec_helper.rb
178
- - spec/support/10_activerecord.rb
185
+ - spec/support/10_active_record.rb
186
+ - spec/support/20_action_controller.rb
@@ -1,9 +0,0 @@
1
- require 'active_record'
2
- class ActiveRecord::Base
3
- def self.paginate(*args)
4
- options = args.extract_options!
5
- per_page = options.delete(:per_page) || RailsPaginate.per_page
6
- page = options.delete(:page) || 1
7
- RailsPaginate::Collection.new(self, page, per_page)
8
- end
9
- end
@@ -1,8 +0,0 @@
1
- class Array
2
- def paginate(*args)
3
- options = args.extract_options!
4
- per_page = options.delete(:per_page) || RailsPaginate.per_page
5
- page = options.delete(:page) || 1
6
- RailsPaginate::Collection.new(self, args.first || page, per_page)
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module RailsPaginate::Method
2
- # base method
3
- class Base
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- module RailsPaginate::Method
2
- # jumping method
3
- class Jumping < Base
4
-
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- module RailsPaginate::Method
2
- # sliding method
3
- class Sliding < Base
4
-
5
- end
6
- end
@@ -1,8 +0,0 @@
1
- module RailsPaginate
2
- # method modules
3
- module Method
4
- autoload :Base, 'rails_paginate/method/base'
5
- autoload :Jumping, 'rails_paginate/method/jumping'
6
- autoload :Sliding, 'rails_paginate/method/sliding'
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module RailsPaginate::Renderer
2
- # base method
3
- class Base
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- module RailsPaginate::Renderer
2
- # normale renderer
3
- class HtmlDefault < Base
4
-
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- module RailsPaginate::Renderer
2
- # normale renderer
3
- class HtmlList < Base
4
-
5
- end
6
- end
@@ -1,8 +0,0 @@
1
- module RailsPaginate
2
- # renderer modules
3
- module Renderer
4
- autoload :Base, 'rails_paginate/renderer/base'
5
- autoload :HtmlDefault, 'rails_paginate/renderer/html_default'
6
- autoload :HtmlList, 'rails_paginate/renderer/html_list'
7
- end
8
- end
@@ -1,7 +0,0 @@
1
- class CreateItems < ActiveRecord::Migration
2
- def self.up
3
- create_table :items do |t|
4
- t.string :dummy
5
- end
6
- end
7
- end
@@ -1,5 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe RailsPaginate::Renderer::HtmlDefault do
4
-
5
- end