module Permalink::InstanceMethods
Private Instance Methods
create_permalink()
click to toggle source
# File lib/permalink_mongo_mapper.rb, line 27 def create_permalink self.permalink = String.new(read_attribute(self.class.source_key)) || "" remove_special_chars random_permalink if permalink.blank? create_unique_permalink end
create_unique_permalink()
click to toggle source
# File lib/permalink_mongo_mapper.rb, line 63 def create_unique_permalink permalink_src = permalink i = 1 while is_unique(permalink_src)==false do permalink_src = permalink+i.to_s i = i+1 end self.permalink = permalink_src end
is_unique(current_permalink)
click to toggle source
# File lib/permalink_mongo_mapper.rb, line 78 def is_unique(current_permalink) self.class.find_by_permalink(current_permalink)==self || self.class.find_by_permalink(current_permalink)==nil end
random_permalink()
click to toggle source
# File lib/permalink_mongo_mapper.rb, line 73 def random_permalink #self.permalink = Digest::SHA1.hexdigest("#{Time.now}") self.permalink = Time.now.to_s end
remove_special_chars()
click to toggle source
# File lib/permalink_mongo_mapper.rb, line 34 def remove_special_chars permalink.gsub!(/[áàảãạAÁÀẢÃẠ]/, 'a') permalink.gsub!(/[ăắẵằẳặĂẮẰẲẴẶ]/, 'a') permalink.gsub!(/[âấầẩẫậÂẤẦẨẪẬ]/, 'a') permalink.gsub!(/[éèẽẻẹÉÈẺẼẸ]/, 'e') permalink.gsub!(/[êếềểễệÊẾỀỂỄỆ]/, 'e') permalink.gsub!(/[íìỉĩịIÍÌỈĨỊ]/, 'i') permalink.gsub!(/[óòỏõọOÓÒỎÕỌ]/, 'o') permalink.gsub!(/[ôốồổỗộÔỐỒỔỖỘ]/, 'o') permalink.gsub!(/[ơớờởỡợƠỚỜỞỠỢ]/, 'o') permalink.gsub!(/[úùủũụUÚÙỦŨỤ]/, 'u') permalink.gsub!(/[ưứừửữựƯỨỪỬỮỰ]/, 'u') permalink.gsub!(/[ỷỹýỳ]/, 'y') permalink.gsub!(/[đĐ]/, 'd') permalink.gsub!(/[àáâãäå]/i,'a') permalink.gsub!(/[èéêë]/i,'e') permalink.gsub!(/[íìîï]/i,'i') permalink.gsub!(/[óòôöõ]/i,'o') permalink.gsub!(/[úùûü]/i,'u') permalink.gsub!(/æ/i,'ae') permalink.gsub!(/ç/i, 'c') permalink.gsub!(/ñ/i, 'n') permalink.gsub!(/[^\x00-\x7F]+/, '') # Remove anything non-ASCII entirely (e.g. diacritics). permalink.gsub!(/[^\w_ \-]+/i, '') # Remove unwanted chars. permalink.gsub!(/[ \-]+/i, '-') # No more than one of the separator in a row. permalink.gsub!(/^\-|\-$/i, '') # Remove leading/trailing separator. permalink.downcase! end