pagez 0.1.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 (5) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +4 -0
  3. data/lib/pagez.rb +1 -0
  4. data/lib/pagez/pagez.rb +45 -0
  5. metadata +61 -0
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDE5YWRiN2ZlZjlmZDFjYTUzZjAwZWM2MDdhZjc5M2VkNjI3YWRjNw==
5
+ data.tar.gz: !binary |-
6
+ NDA4ZjYxOWE3MmU5NmExMzUwYTRkOWM2Y2NmZDQ3ZjNmMTg1MTZlNQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NmRkMGM2MTQ3ZTAzYzMyNDE0OWU4ZjNhYzI2ZGNhNDRlMmQyNWVkYjhlOWQ3
10
+ YzI1OGU3ZWYwOTRkN2YyMTIyOWI2ZmYzYjkzZGJhMjRkMmY3MDA4OGIwMDk3
11
+ MDdhZTNhMTk3NGJkZDc3Y2EwMWZkMjYxNDNmOTMyY2Q3Yzk4ZDA=
12
+ data.tar.gz: !binary |-
13
+ ODFjNjU2ZGNiYTgyNjA3MDUyYjViNGMyNzFmMjJmOTZlYjIwZmRlNDkzYzA2
14
+ ODFmMmI4M2M2NTA0Nzg4ZmIwM2Q3NTMzNzA2YmM2ZWM2M2IyNzFiNjcxMjdh
15
+ N2U5NjNkMzJjZDgyZDA5YTZjMzkzZjliODFkYTA4YmU5OTk3OTM=
@@ -0,0 +1,4 @@
1
+ pagez
2
+ =====
3
+
4
+ Pagination for ruby
@@ -0,0 +1 @@
1
+ require 'pagez/pagez'
@@ -0,0 +1,45 @@
1
+ class Pages
2
+ attr_reader :page, :per_page
3
+
4
+ def initialize(paginatable, options = {})
5
+ @paginatable = paginatable
6
+ @page = nil
7
+ @per_page = options[:per_page] || 10
8
+ @items = []
9
+ end
10
+
11
+ def to_page(page)
12
+ page = page.to_i
13
+ page = 1 if page <= 0
14
+ if @page != page
15
+ @page = page
16
+ @items = if defined?(ActiveRecord::Base) && @paginatable.is_a?(ActiveRecord::Base)
17
+ @paginatable
18
+ .offset(@per_page * (page - 1))
19
+ .limit(@per_page)
20
+ else
21
+ @paginatable.slice((@per_page * (page - 1)), @per_page)
22
+ end
23
+ end
24
+ self
25
+ end
26
+
27
+ def total
28
+ (@paginatable.count / per_page.to_f).ceil
29
+ end
30
+
31
+ def to_h
32
+ to_page(page)
33
+ {
34
+ page: page,
35
+ per_page: per_page,
36
+ items: to_a,
37
+ total: total
38
+ }
39
+ end
40
+
41
+ def to_a
42
+ to_page(page)
43
+ @items.to_a
44
+ end
45
+ end
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pagez
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Lutsiuk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description:
28
+ email: mmaccoffe@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - README.md
34
+ - lib/pagez.rb
35
+ - lib/pagez/pagez.rb
36
+ homepage: http://github.com/mediaslave24/pagez
37
+ licenses:
38
+ - MIT
39
+ metadata: {}
40
+ post_install_message:
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: 1.9.3
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.8.11
54
+ requirements: []
55
+ rubyforge_project:
56
+ rubygems_version: 2.1.5
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: Easy pagination for everything.
60
+ test_files: []
61
+ has_rdoc: