Module: Furltility::ActiveRecord::ActMacro

Defined in:
lib/furltility.rb

Instance Method Summary collapse

Instance Method Details

#furltility(furl_field_met = :furl_field, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/furltility.rb', line 8

def furltility(furl_field_met = :furl_field, options = {})

  define_method :to_param do
    param = id.to_i.to_s
    if respond_to?(furl_field_met) && furl_field = send(furl_field_met)
      furl_field = furl_field.force_encoding('utf-8').encode

      # symbols & pics
      regex = /[\u{1f300}-\u{1f5ff}]/
      furl_field = furl_field.gsub regex, ''

      # enclosed chars
      regex = /[\u{2500}-\u{2BEF}]/ # I changed this to exclude chinese char
      furl_field = furl_field.gsub regex, ""

      # emoticons
      regex = /[\u{1f600}-\u{1f64f}]/
      furl_field = furl_field.gsub regex, ""

      #dingbats
      regex = /[\u{2702}-\u{27b0}]/
      furl_field = furl_field.gsub regex, ""

      furl_field = furl_field.to_slug.normalize.to_s
      param << "-#{furl_field}" unless furl_field.blank?
    end
    param
  end
end