leaf 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,18 +1,46 @@
1
1
  = Leaf
2
2
 
3
- A _really_ simple pagination library
3
+ A _really_ simple pagination library, heavily based on the agnostic branch of
4
+ {will_paginate}[http://github.com/mislav/will_paginate/tree/agnostic].
5
+
6
+ = Description
7
+
8
+ Leaf supports pagination for collections responding to +total_pages+,
9
+ +per_page+, +previous_page+ and +total_entries+ in Sinatra views out of the box.
4
10
 
5
11
  == Installation
6
-
7
- The recommended way is that you get the gem
8
12
 
9
13
  gem install leaf
10
-
14
+
11
15
  == Example usage
12
16
 
17
+ require 'rubygems'
18
+ require 'sinatra'
19
+ require 'leaf'
20
+
21
+ include Leaf::ViewHelpers::Base
22
+
23
+ # Needed to paginate any array, you’ll probably use something else.
24
+ require 'leaf/array'
25
+
26
+ get '/' do
27
+ page = (params[:page]) ? params[:page] : 1
28
+ array = ('a'..'z').to_a
29
+
30
+ haml :index, :locals => {
31
+ :collection => array.paginate({:page => page, :per_page => 5})
32
+ }
33
+ end
34
+
35
+ __END__
36
+ @@ index
37
+ = leaf(collection)
38
+ %ul
39
+ - collection.each do |letter|
40
+ %li= letter
41
+
13
42
  == Authors and credits
14
43
 
15
- Leaf is heavily based on the agnostic branch of
16
- {will_paginate}[http://github.com/mislav/will_paginate/tree/agnostic].
17
- will_paginate was originally written by PJ Hyett, who later handed over
18
- development to Mislav Marohnić. (The library was completely rewritten since then.)
44
+ Leaf is based on {will_paginate}[http://github.com/mislav/will_paginate/] which
45
+ was originally written by PJ Hyett, who later handed over development to Mislav
46
+ Marohnić. (The library was completely rewritten since then.)
@@ -2,7 +2,7 @@ module Leaf
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 0
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,12 +1,6 @@
1
- require 'i18n'
2
1
  require 'leaf/core_ext'
3
2
  require 'leaf/view_helpers'
4
3
 
5
- # REPLACE WITH REAL CODE :)
6
- ['sv', 'en'].each do |locale|
7
- I18n.load_path << "locales/#{locale}.yml"
8
- end
9
-
10
4
  module Leaf
11
5
  module ViewHelpers
12
6
  # = The main view helpers module
@@ -63,67 +57,6 @@ module Leaf
63
57
  renderer.prepare collection, options, self
64
58
  renderer.to_html
65
59
  end
66
-
67
- # Renders a helpful message with numbers of displayed vs. total entries.
68
- # You can use this as a blueprint for your own, similar helpers.
69
- #
70
- # <%= page_entries_info @posts %>
71
- # #-> Displaying posts 6 - 10 of 26 in total
72
- #
73
- # By default, the message will use the humanized class name of objects
74
- # in collection: for instance, "project types" for ProjectType models.
75
- # Override this to your liking with the <tt>:entry_name</tt> parameter:
76
- #
77
- # <%= page_entries_info @posts, :entry_name => 'item' %>
78
- # #-> Displaying items 6 - 10 of 26 in total
79
- #
80
- # Entry name is entered in singular and pluralized with
81
- # <tt>String#pluralize</tt> method from ActiveSupport. If it isn't
82
- # loaded, specify plural with <tt>:plural_name</tt> parameter:
83
- #
84
- # <%= page_entries_info @posts, :entry_name => 'item', :plural_name => 'items' %>
85
- #
86
- # By default, this method produces HTML output. You can trigger plain
87
- # text output by passing <tt>:html => false</tt> in options.
88
- def page_entries_info(collection, options = {})
89
- entry_name = options[:entry_name] || (collection.empty?? 'entry' :
90
- collection.first.class.name.underscore.gsub('_', ' '))
91
-
92
- plural_name = if options[:plural_name]
93
- options[:plural_name]
94
- elsif entry_name == 'entry'
95
- plural_name = 'entries'
96
- elsif entry_name.respond_to? :pluralize
97
- plural_name = entry_name.pluralize
98
- else
99
- entry_name + 's'
100
- end
101
-
102
- unless options[:html] == false
103
- b = '<b>'
104
- eb = '</b>'
105
- sp = '&nbsp;'
106
- else
107
- b = eb = ''
108
- sp = ' '
109
- end
110
-
111
- if collection.total_pages < 2
112
- case collection.size
113
- when 0; I18n::t('leaf.page_entries_info.one_page.nothing', :plural_name => plural_name)
114
- when 1; I18n::t('leaf.page_entries_info.one_page.one', :b => b, :eb => eb, :entry_name => entry_name)
115
- else; I18n::t('leaf.page_entries_info.one_page.many', :b => b, :collection_size => collection.size, :eb => eb, :plural_name => plural_name)
116
- end
117
- else
118
- I18n::t('leaf.page_entries_info.default',
119
- :plural_name => plural_name,
120
- :b => b, :sp => sp, :eb => eb,
121
- :from_number => (collection.offset + 1),
122
- :to_number => (collection.offset + collection.length),
123
- :total_entries => collection.total_entries
124
- )
125
- end
126
- end
127
60
  end
128
61
  end
129
62
  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: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
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-27 00:00:00 +02:00
18
+ date: 2010-06-28 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -34,23 +34,7 @@ dependencies:
34
34
  version: 1.2.0
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: i18n
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 15
46
- segments:
47
- - 0
48
- - 4
49
- - 0
50
- version: 0.4.0
51
- type: :runtime
52
- version_requirements: *id002
53
- description: A really simple pagination library for Sinatra
37
+ description: A really simple pagination library, heavily based on the agnostic branch of will_paginate
54
38
  email: peter@c7.se
55
39
  executables: []
56
40
 
@@ -73,13 +57,11 @@ files:
73
57
  - lib/leaf/view_helpers/sinatra.rb
74
58
  - lib/leaf/view_helpers.rb
75
59
  - lib/leaf.rb
76
- - locales/en.yml
77
- - locales/sv.yml
78
60
  - MIT-LICENSE
79
61
  - Rakefile
80
62
  - README.rdoc
81
63
  has_rdoc: true
82
- homepage: http://github.com/c7/leaf
64
+ homepage: http://c7.github.com/leaf/
83
65
  licenses:
84
66
  - MIT-LICENSE
85
67
  post_install_message:
@@ -113,6 +95,6 @@ rubyforge_project: leaf
113
95
  rubygems_version: 1.3.7
114
96
  signing_key:
115
97
  specification_version: 3
116
- summary: Simple Sinatra pagination
98
+ summary: Simple pagination library
117
99
  test_files: []
118
100
 
@@ -1,11 +0,0 @@
1
- # English
2
- en:
3
- leaf:
4
- next_label: "Next &#8594;"
5
- previous_label: "&#8592; Previous"
6
- page_entries_info:
7
- one_page:
8
- nothing: "No %{plural_name} found"
9
- one: "Displaying %{b}1%{eb} %{entry_name}"
10
- many: "Displaying %{b}all %{collection_size}%{eb} %{plural_name}"
11
- default: "Displaying %{plural_name} %{b}%{from_number}%{sp}-%{sp}%{to_number}%{eb} of %{b}%{total_entries}%{eb} in total"
@@ -1,11 +0,0 @@
1
- # Swedish
2
- sv:
3
- leaf:
4
- next_label: "Nästa &#8594;"
5
- previous_label: "&#8592; Föregående"
6
- page_entries_info:
7
- one_page:
8
- nothing: "Hittade inga %{plural_name}"
9
- one: "Visar %{b}1%{eb} %{entry_name}"
10
- many: "Visar %{b}alla %{collection_size}%{eb} %{plural_name}"
11
- default: "Visar %{plural_name} %{b}%{from_number}%{sp}-%{sp}%{to_number}%{eb} av totalt %{b}%{total_entries}%{eb}"