Module: Padrino::Contrib::Orm::ActiveRecord::PermalinkI18n::ClassMethods
- Defined in:
- lib/padrino-contrib/orm/active_record/permalink_i18n.rb
Instance Method Summary collapse
- #has_i18n_permalink(field, options = {}) ⇒ Object
- #i18n_permalink_field ⇒ Object
- #i18n_permalink_for(name) ⇒ Object
- #i18n_permalink_langs ⇒ Object
Instance Method Details
#has_i18n_permalink(field, options = {}) ⇒ Object
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, ={}) include InstanceMethods @@_i18n_permalink_field = field @@_i18n_permalink_langs = .delete(:langs) before_save :generate_i18n_permalinks i18n_permalink_langs.each do |lang| validates_uniqueness_of :"#{field}_#{lang}", end end |
#i18n_permalink_field ⇒ Object
38 39 40 |
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 38 def i18n_permalink_field @@_i18n_permalink_field end |
#i18n_permalink_for(name) ⇒ Object
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 |
#i18n_permalink_langs ⇒ Object
42 43 44 |
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 42 def i18n_permalink_langs @@_i18n_permalink_langs end |