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
- #permalink_field ⇒ Object
- #permalink_for(name) ⇒ Object
- #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 permalink_langs.each do |lang| validates_uniqueness_of :"#{field}_#{lang}", end end |
#permalink_field ⇒ Object
37 38 39 |
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 37 def permalink_field @_i18n_permalink_field end |
#permalink_for(name) ⇒ Object
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 |
#permalink_langs ⇒ Object
41 42 43 |
# File 'lib/padrino-contrib/orm/active_record/permalink_i18n.rb', line 41 def permalink_langs @_i18n_permalink_langs end |