rails_paginate 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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