class AlphabeticalPaginate::Language

Constants

APPROXIMATIONS

Attributes

code[R]

Public Class Methods

new(code) click to toggle source
# File lib/alphabetical_paginate/language.rb, line 11
def initialize(code)
  @code = code
end

Public Instance Methods

all_field() click to toggle source

used in view_helper

# File lib/alphabetical_paginate/language.rb, line 52
def all_field
  russian? ? 'Все' : "All"
end
default_letter() click to toggle source
# File lib/alphabetical_paginate/language.rb, line 27
def default_letter
  russian? ? "а" : "a" # First 'a' is russian, second - english
end
letters_range() click to toggle source

used in view_helper

# File lib/alphabetical_paginate/language.rb, line 32
def letters_range
  if russian?
    ["А","Б","В","Г","Д","Е","Ж","З","И","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Э","Ю","Я"]
  else
    ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
  end
end
letters_regexp() click to toggle source
# File lib/alphabetical_paginate/language.rb, line 19
def letters_regexp
  russian? ? /[а-яА-Я]/ : /[a-zA-Z]/
end
output_letter(l) click to toggle source

used in view_helper

# File lib/alphabetical_paginate/language.rb, line 47
def output_letter(l)
  (l == "All") ? all_field : l
end
russian?() click to toggle source
# File lib/alphabetical_paginate/language.rb, line 15
def russian?
  defined?(I18n) && I18n.locale == :ru && code == :ru
end
slugged_letters() click to toggle source
# File lib/alphabetical_paginate/language.rb, line 40
def slugged_letters
  hash = { "All" => "all" }
  letters_range.each{ |x| hash[x] = normalize(x) }
  hash
end
slugged_regexp() click to toggle source
# File lib/alphabetical_paginate/language.rb, line 23
def slugged_regexp
  /^(#{slugged_letters.values.join("|")})$/
end

Private Instance Methods

normalize(letter) click to toggle source
# File lib/alphabetical_paginate/language.rb, line 58
def normalize(letter)
  if russian?
    APPROXIMATIONS[letter] || letter.to_s.to_slug.normalize(transliterations: :russian).to_s
  else
    letter.to_s.to_slug.normalize.to_s
  end
end