Class: Pagify::Helper::HTML

Inherits:
Abstract show all
Defined in:
lib/pagify/helper/html.rb

Instance Attribute Summary

Attributes inherited from Abstract

#pager

Class Method Summary collapse

Instance Method Summary collapse

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
22
23
24
25
26
# 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    => '...',
    :query_name  => :page,
    :links_type  => :links_full,
    :inactive_class => 'pagination_inactive',
    :active_class   => 'pagination_active',
    :wrapper_class  => 'pagination' })
end

Instance Method Details



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/pagify/helper/html.rb', line 53

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

  prepare_links(page).map{ |i|
    if i == page
      case page
        when 1   ; wrap_active(setting[:first_text] || i)
        when size; wrap_active(setting[ :last_text] || i)
        else     ; wrap_active(i)
      end
    else
      case i
        when 1   ; wrap_inactive(setting[:first_text] || i, a){yield(i)}
        when size; wrap_inactive(setting[ :last_text] || i, a){yield(i)}
        when Fixnum
                   wrap_inactive(i, a){yield(i)}
        else     ; i.to_s
      end
    end
  }.join(setting[:separator])
end


28
29
30
31
# File 'lib/pagify/helper/html.rb', line 28

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


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/pagify/helper/html.rb', line 33

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