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
  permalink_langs.each do |lang|
    validates_uniqueness_of :"#{field}_#{lang}", options
  end
end


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

def permalink_field
  @_i18n_permalink_field
end


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

def permalink_for(name)
  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


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

def permalink_langs
  @_i18n_permalink_langs
end