leaf 0.1.1 → 0.1.2
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.
- data/README.rdoc +10 -3
- data/lib/leaf.rb +1 -1
- data/lib/leaf/version.rb +1 -1
- data/lib/leaf/view_helpers/base.rb +4 -6
- data/lib/leaf/view_helpers/list_renderer.rb +39 -0
- data/lib/leaf/view_helpers/sinatra.rb +2 -1
- metadata +5 -4
data/README.rdoc
CHANGED
@@ -8,6 +8,9 @@ A _really_ simple pagination library, heavily based on the agnostic branch of
|
|
8
8
|
Leaf supports pagination for collections responding to +total_pages+,
|
9
9
|
+per_page+, +previous_page+ and +total_entries+ in Sinatra views out of the box.
|
10
10
|
|
11
|
+
It currently supports two renderers: +Leaf::ViewHelpers::LinkRenderer+
|
12
|
+
and +Leaf::ViewHelpers::ListRenderer+
|
13
|
+
|
11
14
|
== Installation
|
12
15
|
|
13
16
|
gem install leaf
|
@@ -20,7 +23,8 @@ Leaf supports pagination for collections responding to +total_pages+,
|
|
20
23
|
|
21
24
|
include Leaf::ViewHelpers::Base
|
22
25
|
|
23
|
-
# Needed to paginate any array
|
26
|
+
# Needed to paginate any array
|
27
|
+
# you’ll probably use something else.
|
24
28
|
require 'leaf/array'
|
25
29
|
|
26
30
|
get '/' do
|
@@ -28,13 +32,16 @@ Leaf supports pagination for collections responding to +total_pages+,
|
|
28
32
|
array = ('a'..'z').to_a
|
29
33
|
|
30
34
|
haml :index, :locals => {
|
31
|
-
:collection => array.paginate({
|
35
|
+
:collection => array.paginate({
|
36
|
+
:page => page,
|
37
|
+
:per_page => 5
|
38
|
+
})
|
32
39
|
}
|
33
40
|
end
|
34
41
|
|
35
42
|
__END__
|
36
43
|
@@ index
|
37
|
-
= leaf(collection)
|
44
|
+
= leaf(collection, :renderer => Leaf::ViewHelpers::ListRenderer)
|
38
45
|
%ul
|
39
46
|
- collection.each do |letter|
|
40
47
|
%li= letter
|
data/lib/leaf.rb
CHANGED
data/lib/leaf/version.rb
CHANGED
@@ -46,13 +46,11 @@ module Leaf
|
|
46
46
|
|
47
47
|
# get the renderer instance
|
48
48
|
renderer = case options[:renderer]
|
49
|
-
|
50
|
-
options[:renderer].
|
51
|
-
|
52
|
-
options[:renderer].new
|
53
|
-
else
|
54
|
-
options[:renderer]
|
49
|
+
when String then options[:renderer].constantize.new
|
50
|
+
when Class then options[:renderer].new
|
51
|
+
else options[:renderer]
|
55
52
|
end
|
53
|
+
|
56
54
|
# render HTML for pagination
|
57
55
|
renderer.prepare collection, options, self
|
58
56
|
renderer.to_html
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'leaf/view_helpers/link_renderer'
|
2
|
+
|
3
|
+
module Leaf
|
4
|
+
module ViewHelpers
|
5
|
+
class ListRenderer < LinkRenderer
|
6
|
+
def to_html
|
7
|
+
html = pagination.map do |item|
|
8
|
+
"\n " + tag(:li, (item.is_a?(Fixnum) ?
|
9
|
+
page_number(item) :
|
10
|
+
send(item)))
|
11
|
+
end.join(@options[:separator])
|
12
|
+
|
13
|
+
@options[:container] ? html_container(html) : html
|
14
|
+
end
|
15
|
+
|
16
|
+
def previous_or_next_page(page, text, classname)
|
17
|
+
if page
|
18
|
+
link(tag(:span, text), page, :class => classname)
|
19
|
+
else
|
20
|
+
tag(:span, tag(:span, text), :class => classname + ' disabled')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def html_container(html)
|
25
|
+
tag(:div, "\n " +
|
26
|
+
tag(:ul, html + "\n ") + "\n", container_attributes) + "\n"
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def page_number(page)
|
31
|
+
unless page == current_page
|
32
|
+
link(tag(:span, page), page, :rel => rel_value(page))
|
33
|
+
else
|
34
|
+
tag(:em, tag(:span, page))
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'leaf/view_helpers/base'
|
2
2
|
require 'leaf/view_helpers/link_renderer'
|
3
|
+
require 'leaf/view_helpers/list_renderer'
|
3
4
|
|
4
5
|
Leaf::ViewHelpers::LinkRenderer.class_eval do
|
5
6
|
protected
|
@@ -16,4 +17,4 @@ Leaf::ViewHelpers::LinkRenderer.class_eval do
|
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
19
|
-
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leaf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Peter Hellberg
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-06-
|
18
|
+
date: 2010-06-29 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- lib/leaf/view_helpers/base.rb
|
55
55
|
- lib/leaf/view_helpers/link_renderer.rb
|
56
56
|
- lib/leaf/view_helpers/link_renderer_base.rb
|
57
|
+
- lib/leaf/view_helpers/list_renderer.rb
|
57
58
|
- lib/leaf/view_helpers/sinatra.rb
|
58
59
|
- lib/leaf/view_helpers.rb
|
59
60
|
- lib/leaf.rb
|