mongoid_will_paginate 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'rails', '>= 3.1.0'
7
+ gem 'bson_ext', '~> 1.4'
8
+ end
9
+
10
+ group :test do
11
+ gem 'rspec'
12
+ gem 'rspec-rails'
13
+ end
data/README ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,19 @@
1
+ require 'will_paginate/collection'
2
+
3
+ module MongoidWillPaginate
4
+ module Criteria
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ def paginate(options = {})
9
+ page = options[:page] || 1
10
+ per_page = options[:per_page] || WillPaginate.per_page
11
+ total = options[:total_entries] || self.count
12
+
13
+ WillPaginate::Collection.create(page, per_page, total) do |pager|
14
+ pager.replace self.skip(pager.offset).limit(pager.per_page).to_a
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ module MongoidWillPaginate
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,4 @@
1
+ require 'mongoid_will_paginate/version'
2
+ require 'mongoid_will_paginate/criteria'
3
+
4
+ Mongoid::Criteria.send(:include, MongoidWillPaginate::Criteria)
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "mongoid_will_paginate/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "mongoid_will_paginate"
7
+ s.version = MongoidWillPaginate::VERSION
8
+ s.authors = ["Hck"]
9
+ s.homepage = ""
10
+ s.summary = %q{Simple native pagination extension for will_paginate}
11
+ s.description = %q{Simple native pagination extension for will_paginate using mongoid skip and limit methods}
12
+
13
+ s.rubyforge_project = "mongoid_will_paginate"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ # specify any dependencies here; for example:
21
+ s.add_development_dependency "rspec"
22
+
23
+ s.add_runtime_dependency "mongoid", [">= 2.1.0"]
24
+ s.add_runtime_dependency "will_paginate", [">= 3.0.0"]
25
+ end
@@ -0,0 +1,35 @@
1
+ require File.expand_path('./spec_helper', File.dirname(__FILE__))
2
+
3
+ describe MongoidWillPaginate::Criteria do
4
+ before :all do
5
+ class Document
6
+ include ::Mongoid::Document
7
+ field :title, type: String
8
+ end
9
+ end
10
+
11
+ describe :paginate do
12
+ context 'called in a Mongoid::Criteria' do
13
+ before :each do
14
+ @docs = 15.times.map{|i| Document.create title: 'document title'}
15
+ 15.times{Document.create title: 'document title 2'}
16
+
17
+ @criteria = Document.where(title: 'document title')
18
+ end
19
+
20
+ context '& paginate params specified' do
21
+ subject {@criteria.paginate page: 2, per_page: 5}
22
+ it {should be_a_instance_of WillPaginate::Collection}
23
+ its(:to_a) {should == @docs[5..9]}
24
+ its(:total_entries) {should == @criteria.count}
25
+ end
26
+
27
+ context '& paginate parameters not specified' do
28
+ subject {@criteria.paginate}
29
+ it {should be_a_instance_of WillPaginate::Collection}
30
+ its(:to_a) {should == @docs}
31
+ its(:total_entries) {should == @criteria.count}
32
+ end
33
+ end
34
+ end
35
+ end
data/spec/rails_app.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'action_controller/railtie'
2
+ require 'action_view/railtie'
3
+ require 'digest/md5'
4
+
5
+ app = Class.new(Rails::Application)
6
+ app.config.secret_token = Digest::MD5.hexdigest("mongoid_will_paginate")
7
+ app.config.session_store :cookie_store, :key => "_test_rails_app_session"
8
+ app.config.active_support.deprecation = :log
9
+ app.initialize!
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'rails'
5
+ require 'mongoid'
6
+ require 'will_paginate'
7
+ require 'mongoid_will_paginate'
8
+
9
+ require File.join(File.dirname(__FILE__), 'rails_app')
10
+ require 'rspec/rails'
11
+
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
13
+
14
+ RSpec.configure do |config|
15
+ config.mock_with :rspec
16
+ config.before :each do
17
+ Mongoid.master.collections.select{|c| c.name !~ /system/}.each(&:drop)
18
+ end
19
+ end
20
+
21
+ Mongoid.configure{|c| c.master = Mongo::Connection.new.db("test_mongoid_will_paginate")}
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mongoid_will_paginate
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Hck
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &14745080 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *14745080
25
+ - !ruby/object:Gem::Dependency
26
+ name: mongoid
27
+ requirement: &14741940 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *14741940
36
+ - !ruby/object:Gem::Dependency
37
+ name: will_paginate
38
+ requirement: &14741060 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 3.0.0
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *14741060
47
+ description: Simple native pagination extension for will_paginate using mongoid skip
48
+ and limit methods
49
+ email:
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - .rspec
56
+ - Gemfile
57
+ - README
58
+ - Rakefile
59
+ - lib/mongoid_will_paginate.rb
60
+ - lib/mongoid_will_paginate/criteria.rb
61
+ - lib/mongoid_will_paginate/version.rb
62
+ - mongoid_will_paginate.gemspec
63
+ - spec/mongoid_will_paginate_spec.rb
64
+ - spec/rails_app.rb
65
+ - spec/spec_helper.rb
66
+ homepage: ''
67
+ licenses: []
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubyforge_project: mongoid_will_paginate
86
+ rubygems_version: 1.8.10
87
+ signing_key:
88
+ specification_version: 3
89
+ summary: Simple native pagination extension for will_paginate
90
+ test_files: []