Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/useful_string_extensions/string.rb

Instance Method Summary collapse

Instance Method Details

#add_slashObject



44
45
46
# File 'lib/useful_string_extensions/string.rb', line 44

def add_slash
  self == "" ? "" : (self.ends_with?("/") ? self : "#{self}/")
end

#bstripObject



36
37
38
# File 'lib/useful_string_extensions/string.rb', line 36

def bstrip
  self.lstrip.rstrip
end

#capitalizeObject



109
110
111
# File 'lib/useful_string_extensions/string.rb', line 109

def capitalize
  Unicode::capitalize(self)
end

#change_plusObject



48
49
50
# File 'lib/useful_string_extensions/string.rb', line 48

def change_plus
  self.gsub("+7", "8")
end

#clearifyObject



113
114
115
# File 'lib/useful_string_extensions/string.rb', line 113

def clearify
  self.blank? ? "" : self.gsub('"', "'")
end

#detect_encodingObject



20
21
22
# File 'lib/useful_string_extensions/string.rb', line 20

def detect_encoding
  CharDet.detect(text)['encoding'] rescue "utf-8"
end

#end_starsObject



101
102
103
# File 'lib/useful_string_extensions/string.rb', line 101

def end_stars
  self.sanitize_to_sphinx.split(" ").collect {|w| "#{w}*" if w.size > 2}.join(" ")
end

#generate_secret_code(len = 7) ⇒ Object Also known as: generate_password



87
88
89
90
# File 'lib/useful_string_extensions/string.rb', line 87

def generate_secret_code(len = 7)
  chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('1'..'9').to_a - ['o', 'O', 'i', 'I']
  return Array.new(len) { chars[rand(chars.size)] }.join
end

#get_extensionObject



64
65
66
# File 'lib/useful_string_extensions/string.rb', line 64

def get_extension
  File.extname(self)
end

#get_id_from_urlObject



28
29
30
# File 'lib/useful_string_extensions/string.rb', line 28

def get_id_from_url
  self.split("-").last
end

#in_one_lineObject



24
25
26
# File 'lib/useful_string_extensions/string.rb', line 24

def in_one_line
  self.gsub("\n",'').gsub("\r",'').gsub("\t",'')
end

#is_valid_email?Boolean

Returns:

  • (Boolean)


125
126
127
# File 'lib/useful_string_extensions/string.rb', line 125

def is_valid_email?
  !(self =~ CustomEmailValidator.email_regex).nil?
end

#is_valid_phone?Boolean

Returns:

  • (Boolean)


129
130
131
# File 'lib/useful_string_extensions/string.rb', line 129

def is_valid_phone?
  !(self =~ CustomPhoneValidator.world_phone_regex).nil?
end

#is_valid_phone_from_russia?Boolean

Returns:

  • (Boolean)


137
138
139
# File 'lib/useful_string_extensions/string.rb', line 137

def is_valid_phone_from_russia?
  !(self =~ CustomPhoneValidator.russian_phone_regex).nil?
end

#is_valid_phone_from_sng?Boolean

Returns:

  • (Boolean)


133
134
135
# File 'lib/useful_string_extensions/string.rb', line 133

def is_valid_phone_from_sng?
  !(self =~ CustomPhoneValidator.sng_phone_regex).nil?
end

#is_valid_phone_from_ukrain?Boolean

Returns:

  • (Boolean)


141
142
143
# File 'lib/useful_string_extensions/string.rb', line 141

def is_valid_phone_from_ukrain?
  !(self =~ CustomPhoneValidator.ukrainian_phone_regex).nil?
end

#normalize_phoneObject



145
146
147
# File 'lib/useful_string_extensions/string.rb', line 145

def normalize_phone
  self == "" ? "" : self.gsub(/\D+/,'')
end

#path_to_aObject



105
106
107
# File 'lib/useful_string_extensions/string.rb', line 105

def path_to_a
  self.gsub(",", '').split(' ').compact
end

#remove_extensionObject



60
61
62
# File 'lib/useful_string_extensions/string.rb', line 60

def remove_extension
  File.basename(self, '.*')
end

#remove_promoObject



68
69
70
# File 'lib/useful_string_extensions/string.rb', line 68

def remove_promo
  self.include?("::") ? self.split("::")[1] : self
end

#remove_starsObject



83
84
85
# File 'lib/useful_string_extensions/string.rb', line 83

def remove_stars
  self.blank? ? "" : self.gsub('*', '')
end

#replace_quotesObject



12
13
14
# File 'lib/useful_string_extensions/string.rb', line 12

def replace_quotes
  self == "" ? "" : self.gsub(""", '"')
end

#sanitize_to_sphinxObject



93
94
95
# File 'lib/useful_string_extensions/string.rb', line 93

def sanitize_to_sphinx
  self == "" ? "" : Unicode.downcase(self).gsub(/[^a-zа-яёЁ0-9\*]/, ' ').split("[")[0].split(" ").compact.join(" ")
end

#show?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/useful_string_extensions/string.rb', line 16

def show?
  self.blank? ? "Не указано" : self
end

#split_starsObject



97
98
99
# File 'lib/useful_string_extensions/string.rb', line 97

def split_stars
  self == "" ? "" : self.split(" ").collect {|w| "*#{w}*" if w.size > 2}.join(" ")
end

#string_from_fileObject



3
4
5
6
7
8
9
10
# File 'lib/useful_string_extensions/string.rb', line 3

def string_from_file
  data = ''
  f = File.open(self, "r")
  f.each_line do |line|
    data += line
  end
  data
end

#to_cleanObject



149
150
151
152
153
154
155
156
# File 'lib/useful_string_extensions/string.rb', line 149

def to_clean
  allowed_tags = {
    :elements => %w[p a ul ol li u],
    :attributes => {'a' => ['href', 'title']},
    :protocols => {'a' => {'href' => ['http', 'https', 'mailto']}}
  }
  self == "" ? "" : Sanitize.clean(self, allowed_tags)
end

#to_keywordsObject



52
53
54
# File 'lib/useful_string_extensions/string.rb', line 52

def to_keywords
  self == '' ? '' : self.gsub(/\(\)\,\./, '').split(" ").collect {|e| Unicode.downcase(e)}.join(", ")
end

#to_page_slugObject



117
118
119
# File 'lib/useful_string_extensions/string.rb', line 117

def to_page_slug
  self.gsub(/^\//, '').gsub(".html", "")
end

#to_printObject



32
33
34
# File 'lib/useful_string_extensions/string.rb', line 32

def to_print
  self.gsub("\t", '').gsub("\n", '').gsub("\r", '')
end

#to_searchObject



79
80
81
# File 'lib/useful_string_extensions/string.rb', line 79

def to_search
  self == "" ? "" : self.sanitize_to_sphinx.split_stars
end

#to_simple_xhtmlObject



56
57
58
# File 'lib/useful_string_extensions/string.rb', line 56

def to_simple_xhtml
  self == '' ? '' : self.gsub("<br>", '<br />')
end

#to_slugObject



72
73
74
75
76
77
# File 'lib/useful_string_extensions/string.rb', line 72

def to_slug
  Russian.translit(self).downcase.gsub(/[^a-z0-9]+/, '-').strip.chomp('-')

  # другой вариант
  # initial = Russian::translit(self.name).gsub(/[^A-Za-z0-9\s\-]/, "")[0,40].strip.gsub(/\s+/, "-").downcase
end

#to_widgets_arrayObject



40
41
42
# File 'lib/useful_string_extensions/string.rb', line 40

def to_widgets_array
  self.split(",").collect{|e| e.gsub("widget_",'').to_i}
end

#valide_of_email?Boolean

Returns:

  • (Boolean)


121
122
123
# File 'lib/useful_string_extensions/string.rb', line 121

def valide_of_email?
  self =~ /(^$)|(^[a-z0-9]+([_\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\.[a-z]{2,}$)/
end