Class: Pagify::Helper::HTML

Inherits:
Abstract show all
Extended by:
Rails
Defined in:
lib/pagify/helper/html.rb,
lib/pagify/helper/rails.rb

Instance Attribute Summary

Attributes inherited from Abstract

#pager

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Rails

default_attributes

Methods inherited from Abstract

#initialize, setting, #setting

Constructor Details

This class inherits a constructor from Pagify::Helper::Abstract

Class Method Details

.default_attributesObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/pagify/helper/html.rb', line 10

def self.default_attributes
  super.merge(
  {  :first_text => '« First',
      :last_text =>          'Last »',
      :prev_text => '< Previous',
      :next_text =>          'Next >',
    :inner_links => 4,
    :outer_links => 2,
  #        :step => 3,
    :separator   => ' ',
    :ellipsis    => '...' })
end

Instance Method Details



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/pagify/helper/html.rb', line 48

def links page
  page = normalize_page(page)
  size = pager.size
  attrs = extract_html_attributes

  prepare_links(page).map{ |i|
    if i == page
      case page
        when 1;    setting[:first_text]
        when size; setting[ :last_text]
        else;      page
      end
    else
      case i
        when 1;      "<a href=\"#{yield(i)}\"#{attrs}>#{setting[:first_text]}</a>"
        when size;   "<a href=\"#{yield(i)}\"#{attrs}>#{setting[ :last_text]}</a>"
        when Fixnum; "<a href=\"#{yield(i)}\"#{attrs}>#{i}</a>"
        else;        i.to_s
      end
    end
  }.join(setting[:separator])
end


23
24
25
26
# File 'lib/pagify/helper/html.rb', line 23

def links_full page, &block
  page = normalize_page(page)
  "#{links_navigate(page, &block)}<br />#{links(page, &block)}"
end


28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pagify/helper/html.rb', line 28

def links_navigate page
  page = normalize_page(page)
  size = pager.size
  attrs = extract_html_attributes

  prev = if page > 1 && page_exists?(page - 1, size)
           "<a href=\"#{yield(page - 1)}\"#{attrs}>#{setting[:prev_text]}</a>"
         else
           nil
         end

  post = if page < size && page_exists?(page + 1, size)
           "<a href=\"#{yield(page + 1)}\"#{attrs}>#{setting[:next_text]}</a>"
         else
           nil
         end

  [prev, post].compact.join(setting[:separator])
end