Class: String

Inherits:
Object show all
Defined in:
lib/marfa/helpers/classes/string.rb

Overview

Additional String functionality

Constant Summary collapse

BLANK_RE =
/\A[[:space:]]*\z/

Instance Method Summary collapse

Instance Method Details

#blank?true, false

Returns:

  • (true, false)


55
56
57
# File 'lib/marfa/helpers/classes/string.rb', line 55

def blank?
  empty? || BLANK_RE.match?(self)
end

#present?true, false

Object isn’t blank

Returns:

  • (true, false)


61
62
63
# File 'lib/marfa/helpers/classes/string.rb', line 61

def present?
  !blank?
end

#strip_tags!String

Remove tags

Examples:

"<a>some/path</a>".strip_tags!

Returns:



38
39
40
# File 'lib/marfa/helpers/classes/string.rb', line 38

def strip_tags!
  self.gsub(/<\/?[^>]*>/, '') # unless self.nil?
end

#to_class_nameString

Convert string like ‘category/list’ to CamelCase

Examples:

"some/path".to_class_name

Returns:



17
18
19
20
21
# File 'lib/marfa/helpers/classes/string.rb', line 17

def to_class_name
  parts = downcase.split('/')
  parts.each(&:capitalize!)
  parts.join('').gsub(%r{-}, '')
end

#to_price!String

Convert string price to preferred view

Examples:

"1042.42".to_price!

Returns:



46
47
48
49
50
51
52
# File 'lib/marfa/helpers/classes/string.rb', line 46

def to_price!
  # self.split('.') divides string into substring with '.' delimiter and returning array of this substrings
  # .first returns the first element of the array
  # .reverse returns a new string with the characters from str in reverse order
  # .gsub(pattern, replacement) returns a copy of str with the all occurrences of pattern substituted for the second argument
  self.split('.').first.reverse.gsub(/...(?=.)/, '\&;psniht&').reverse
end

#to_underscoreString

Replaces all ‘/’ to ‘_’

Examples:

"some/path".to_underscore

Returns:



9
10
11
# File 'lib/marfa/helpers/classes/string.rb', line 9

def to_underscore
  downcase.gsub(%r{/}, '_')
end

#to_urlString

Convert string to url part

Examples:

"some/path".to_url

Returns:



27
28
29
30
31
32
# File 'lib/marfa/helpers/classes/string.rb', line 27

def to_url
  val = self.strip_tags!
  val = val.gsub(/[ —_\/]/, '-')#TODO: длинный пробел не работает
  val = val.gsub(/[+.,!?@#$%^&*()\[\]{}:;\/\\|<>"']/, '') #TODO: больше символов!
  val.downcase
end