alphabetical_paginate 0.2.6 → 0.2.8

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.
@@ -1,32 +1,39 @@
1
1
  class Array
2
- def alpha_paginate current_field, enumerate=false
2
+ def alpha_paginate current_field, params = {enumerate:false, default_field: "a",
3
+ paginate_all: false, numbers: true,
4
+ others: true, pagination_class: "pagination-centered"}
3
5
  output = []
4
6
  params = {}
5
7
  availableLetters = {}
6
8
  if current_field == nil
7
- current_field = self.sort[0].to_s[0]
9
+ current_field = default_field
8
10
  end
9
11
  self.each do |x|
10
- field_val = block_given? ? yield(x) : x.id.to_s
12
+ field_val = block_given? ? yield(x).to_s : x.id.to_s
11
13
  field_letter = field_val.force_encoding(Encoding::ASCII_8BIT)[0]
12
- case current_field
14
+ case field_letter
13
15
  when /[a-z]/
14
16
  availableLetters[field_letter] = true if !availableLetters.has_key? field_letter
15
- output << x if field_letter == current_field
16
- when "number"
17
- availableLetters['numbers'] = true if !availableLetters.has_key? 'numbers'
18
- output << x if field_letter =~ /[0-9]/
19
- when enumerate && /[0-9]/
20
- availableLetters[field_letter] = true if !availableLetters.has_key? field_letter
21
- output << x if field_letter == current_field
22
- when "other"
17
+ output << x if current_field =~ /[a-z]/ && field_letter == current_field
18
+ when /[0-9]/
19
+ if params[:enumerate]
20
+ availableLetters[field_letter] = true if !availableLetters.has_key? field_letter
21
+ output << x if current_field =~ /[0-9]/ && field_letter == current_field
22
+ else
23
+ availableLetters['numbers'] = true if !availableLetters.has_key? 'numbers'
24
+ output << x if current_field == "numbers"
25
+ end
26
+ else
23
27
  availableLetters['other'] = true if !availableLetters.has_key? 'other'
24
- output << x if !field_letter =~ /[0-9a-z]/
28
+ output << x if current_field == "other"
25
29
  end
26
30
  end
27
31
  params[:availableLetters] = availableLetters.collect{|k,v| k.to_s}
28
32
  params[:currentField] = current_field
29
- params[:enumerate] = enumerate
33
+ params[:paginate_all] ||= false
34
+ params[:numbers] ||= true
35
+ params[:others] ||= true
36
+ params[:pagination_class] ||= "pagination-centered"
30
37
  return output, params
31
38
  end
32
39
  end
@@ -1,3 +1,3 @@
1
1
  module AlphabeticalPaginate
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.8"
3
3
  end
@@ -1,20 +1,55 @@
1
1
  module AlphabeticalPaginate
2
2
  module ViewHelpers
3
- def alphabetical_paginate params, bootstrap=true
4
- output = javascript_include_tag 'alphabetical_paginate' + " \n"
3
+ def alphabetical_paginate params
4
+
5
+ output = javascript_include_tag 'alphabetical_paginate'
6
+
7
+ if params[:paginate_all]
8
+ range = ('a'..'z').to_a
9
+ if params[:others]
10
+ range += ["#"]
11
+ end
12
+ if params[:enumerate] && params[:numbers]
13
+ range = (0..9).to_a.map{|x| x.to_s} + range
14
+ elsif params[:numbers]
15
+ range = ["0"] + range
16
+ end
17
+ range.each.do |l|
18
+ if l == params[:currentField]
19
+ links += '<li class="active"><a href="#" data-letter="' + l + '">' + l + "</a></li>\n"
20
+ elsif params[:availableLetters].contains? l
21
+ links += '<li><a href="#" data-letter="' + l + '">' + l + "</a></li>\n"
22
+ else
23
+ links += '<li class="disabled"><a href="#" data-letter="' + l + '">' + l + "</a></li>\n"
24
+ end
25
+ else
26
+ params[:availableLetters] -= (0..9).to_a.map{|x| x.to_s} if !params[:numbers]
27
+ params[:availableLetters] -= ["#"] if !params[:others]
28
+
29
+ params[:availableLetters].each do |l|
30
+ if l == params[:currentField]
31
+ links += '<li class="active"><a href="#" data-letter="' + l + '">' + l + "</a></li>\n"
32
+ else
33
+ links += '<li><a href="#" data-letter="' + l + '">' + l + "</a></li>\n"
34
+ end
35
+ end
36
+ end
5
37
 
6
- links = ""
7
38
 
8
- params[:availableLetters].each do |l|
9
- links += '<li><a href="#" data-letter="' + l + '">' + l + "</a></li>\n"
39
+ if params[:pagination_class] != "none"
40
+ pagination = '<div class="pagination %s">\n' % params[:pagination_class]
41
+ else
42
+ pagination = '<div class="pagination">\n'
10
43
  end
11
- pagination = '<div class="pagination">\n' +
44
+ pagination +=
12
45
  "<ul>\n" +
46
+ "<li><a id='paginate-prev' href='#'>Prev</a></li>"
13
47
  "%s" % links +
14
48
  "</ul\n" +
49
+ "<li><a id='paginate-next' href='#'>Next</a></li>" +
15
50
  "</div>"
16
51
 
17
- output += pagination
52
+ output += pagination.html_safe
18
53
  end
19
54
  end
20
55
  end
@@ -26,7 +26,7 @@ module AlphabeticalPaginate
26
26
  collection, params = @list.alpha_paginate("b")
27
27
  collection.to_s.should ==
28
28
  expectedCollection.to_s
29
- params.to_s.should ==
29
+ params.to_s.should include
30
30
  expectedParams.to_s
31
31
  end
32
32
 
@@ -44,7 +44,7 @@ module AlphabeticalPaginate
44
44
  end
45
45
  collection.to_s.should ==
46
46
  expectedCollection.to_s
47
- params.to_s.should ==
47
+ params.to_s.should include
48
48
  expectedParams.to_s
49
49
  end
50
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alphabetical_paginate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-15 00:00:00.000000000 Z
12
+ date: 2013-07-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -82,29 +82,20 @@ executables: []
82
82
  extensions: []
83
83
  extra_rdoc_files: []
84
84
  files:
85
- - .alphabetical_paginate.gemspec.swp
86
85
  - .gitignore
87
86
  - Gemfile
88
87
  - LICENSE.txt
89
88
  - README.md
90
89
  - Rakefile
91
90
  - alphabetical_paginate.gemspec
92
- - lib/.alphabetical_paginate.rb.swp
93
91
  - lib/alphabetical_paginate.rb
94
- - lib/alphabetical_paginate/.array.rb.swp
95
- - lib/alphabetical_paginate/.engine.rb.swp
96
- - lib/alphabetical_paginate/.railtie.rb.swp
97
- - lib/alphabetical_paginate/.view_helpers.rb.swp
98
92
  - lib/alphabetical_paginate/array.rb
99
93
  - lib/alphabetical_paginate/engine.rb
100
94
  - lib/alphabetical_paginate/railtie.rb
101
95
  - lib/alphabetical_paginate/version.rb
102
96
  - lib/alphabetical_paginate/view_helpers.rb
103
- - spec/.alpha_example.rb.swp
104
- - spec/.alphabetical_paginate_spec.rb.swp
105
97
  - spec/alpha_example.rb
106
98
  - spec/alphabetical_paginate_spec.rb
107
- - spec/support/.helpers.rb.swp
108
99
  - spec/support/helpers.rb
109
100
  - vendor/assets/javascripts/alphabetical_paginate.js
110
101
  - vendor/assets/javascripts/index.js
@@ -134,9 +125,6 @@ signing_key:
134
125
  specification_version: 3
135
126
  summary: Pagination
136
127
  test_files:
137
- - spec/.alpha_example.rb.swp
138
- - spec/.alphabetical_paginate_spec.rb.swp
139
128
  - spec/alpha_example.rb
140
129
  - spec/alphabetical_paginate_spec.rb
141
- - spec/support/.helpers.rb.swp
142
130
  - spec/support/helpers.rb
Binary file
Binary file
Binary file
Binary file