Class: Slug

Inherits:
ActiveRecord::Base
  • Object
show all
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