diff --git a/config/environment.rb b/config/environment.rb index 811afed..53a9df3 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -75,8 +75,8 @@ Localist.callback = lambda { |l| GetText.locale= l } Tag.hierarchical = true -# string transliteration -require 'noosfero/transliterations' +# several local libraries +require 'noosfero' require 'acts_as_filesystem' require 'acts_as_searchable' diff --git a/lib/acts_as_filesystem.rb b/lib/acts_as_filesystem.rb index 45e577c..a536c77 100644 --- a/lib/acts_as_filesystem.rb +++ b/lib/acts_as_filesystem.rb @@ -104,9 +104,7 @@ module ActsAsFileSystem self[:name] = value unless self.name.blank? - # FIXME encapsulate this pattern (transliterate -> downcase -> gsub - # ...) in a String method, say, to_slug - self.slug = self.name.transliterate.downcase.gsub( /[^-a-z0-9~\s\.:;+=_]/, '').gsub(/[\s:;=_+]+/, '-').gsub(/[\-]{2,}/, '-').to_s + self.slug = self.name.to_slug end end diff --git a/lib/noosfero.rb b/lib/noosfero.rb index 0febdef..5a94a07 100644 --- a/lib/noosfero.rb +++ b/lib/noosfero.rb @@ -28,3 +28,4 @@ module Noosfero end require 'noosfero/constants' +require 'noosfero/core_ext' diff --git a/lib/noosfero/core_ext.rb b/lib/noosfero/core_ext.rb new file mode 100644 index 0000000..a09b9d1 --- /dev/null +++ b/lib/noosfero/core_ext.rb @@ -0,0 +1 @@ +require 'noosfero/core_ext/string' diff --git a/lib/noosfero/core_ext/string.rb b/lib/noosfero/core_ext/string.rb new file mode 100644 index 0000000..eb54a28 --- /dev/null +++ b/lib/noosfero/core_ext/string.rb @@ -0,0 +1,7 @@ +require 'noosfero/transliterations' + +class String + def to_slug + transliterate.downcase.gsub( /[^-a-z0-9~\s\.:;+=_]/, '').gsub(/[\s:;=_+]+/, '-').gsub(/[\-]{2,}/, '-').to_s + end +end -- libgit2 0.21.2