Class: Slug
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Slug
- Defined in:
- app/models/slug.rb
Overview
text - кратко по предмету related_to - отношение к предмету
Instance Method Summary collapse
Instance Method Details
#base=(value) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/models/slug.rb', line 11 def base= value digits = value.mb_chars.downcase.to_s.gsub(/[^0-9]+/, '') words = value.gsub(/[0-9]+/, '').split(/\s+/).select do |x| x.mb_chars.downcase.to_s != x ;end .map do |x| x.mb_chars.downcase ;end firsts = words.map { |l| l[0] } self.text = if digits.size > 3 digits[0..5] elsif digits.size > 0 digits + firsts[ 0...4 - digits.size ].join elsif firsts.size > 2 firsts[ 0...5 ].join elsif firsts.size > 1 # [ firsts, words.map { |l| l[1] } ].transpose.flatten.join last = words[ 1 ].gsub( /[аеёиоуъыьэюя]+/, '' )[ 0...3 ] first = words[ 0 ][ 0...5 - last.size ] first + last else words.first[ 0..5 ] ;end;end |