pagez 0.1.0

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