Module: Padrino::Contrib::Orm::ActiveRecord::PermalinkI18n::ClassMethods

Defined in:
lib/padrino-contrib/orm/active_record/permalink_i18n.rb

Instance Method Summary collapse

Instance Method Details



18
19
20
21
22
23
24
25
26
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 18

def has_i18n_permalink(field, options={})
  include InstanceMethods
  @@_i18n_permalink_field = field
  @@_i18n_permalink_langs = options.delete(:langs)
  before_save :generate_i18n_permalinks
  i18n_permalink_langs.each do |lang|
    validates_uniqueness_of :"#{field}_#{lang}", options
  end
end


38
39
40
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 38

def i18n_permalink_field
  @@_i18n_permalink_field
end


28
29
30
31
32
33
34
35
36
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 28

def i18n_permalink_for(name)
  require 'iconv' unless defined?(Iconv)
  name = Iconv.iconv('ascii//translit//IGNORE', 'utf-8', name).to_s
  name.gsub!(/\W+/, ' ') # non-words to space
  name.strip!
  name.downcase!
  name.gsub!(/\s+/, '-') # all spaces to dashes
  name
end


42
43
44
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 42

def i18n_permalink_langs
  @@_i18n_permalink_langs
end