Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/useful_string_extensions/string.rb
Instance Method Summary collapse
- #add_slash ⇒ Object
- #bstrip ⇒ Object
- #capitalize ⇒ Object
- #change_plus ⇒ Object
- #clearify ⇒ Object
- #detect_encoding ⇒ Object
- #end_stars ⇒ Object
- #generate_secret_code(len = 7) ⇒ Object (also: #generate_password)
- #get_extension ⇒ Object
- #get_id_from_url ⇒ Object
- #in_one_line ⇒ Object
- #is_valid_email? ⇒ Boolean
- #is_valid_phone? ⇒ Boolean
- #is_valid_phone_from_russia? ⇒ Boolean
- #is_valid_phone_from_sng? ⇒ Boolean
- #is_valid_phone_from_ukrain? ⇒ Boolean
- #normalize_phone ⇒ Object
- #path_to_a ⇒ Object
- #remove_extension ⇒ Object
- #remove_promo ⇒ Object
- #remove_stars ⇒ Object
- #replace_quotes ⇒ Object
- #sanitize_to_sphinx ⇒ Object
- #show? ⇒ Boolean
- #split_stars ⇒ Object
- #string_from_file ⇒ Object
- #to_clean ⇒ Object
- #to_keywords ⇒ Object
- #to_page_slug ⇒ Object
- #to_print ⇒ Object
- #to_search ⇒ Object
- #to_simple_xhtml ⇒ Object
- #to_slug ⇒ Object
- #to_widgets_array ⇒ Object
- #valide_of_email? ⇒ Boolean
Instance Method Details
#add_slash ⇒ Object
44 45 46 |
# File 'lib/useful_string_extensions/string.rb', line 44 def add_slash self == "" ? "" : (self.ends_with?("/") ? self : "#{self}/") end |
#bstrip ⇒ Object
36 37 38 |
# File 'lib/useful_string_extensions/string.rb', line 36 def bstrip self.lstrip.rstrip end |
#capitalize ⇒ Object
109 110 111 |
# File 'lib/useful_string_extensions/string.rb', line 109 def capitalize Unicode::capitalize(self) end |
#change_plus ⇒ Object
48 49 50 |
# File 'lib/useful_string_extensions/string.rb', line 48 def change_plus self.gsub("+7", "8") end |
#clearify ⇒ Object
113 114 115 |
# File 'lib/useful_string_extensions/string.rb', line 113 def clearify self.blank? ? "" : self.gsub('"', "'") end |
#detect_encoding ⇒ Object
20 21 22 |
# File 'lib/useful_string_extensions/string.rb', line 20 def detect_encoding CharDet.detect(text)['encoding'] rescue "utf-8" end |
#end_stars ⇒ Object
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_extension ⇒ Object
64 65 66 |
# File 'lib/useful_string_extensions/string.rb', line 64 def get_extension File.extname(self) end |
#get_id_from_url ⇒ Object
28 29 30 |
# File 'lib/useful_string_extensions/string.rb', line 28 def get_id_from_url self.split("-").last end |
#in_one_line ⇒ Object
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
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
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
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
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
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_phone ⇒ Object
145 146 147 |
# File 'lib/useful_string_extensions/string.rb', line 145 def normalize_phone self == "" ? "" : self.gsub(/\D+/,'') end |
#path_to_a ⇒ Object
105 106 107 |
# File 'lib/useful_string_extensions/string.rb', line 105 def path_to_a self.gsub(",", '').split(' ').compact end |
#remove_extension ⇒ Object
60 61 62 |
# File 'lib/useful_string_extensions/string.rb', line 60 def remove_extension File.basename(self, '.*') end |
#remove_promo ⇒ Object
68 69 70 |
# File 'lib/useful_string_extensions/string.rb', line 68 def remove_promo self.include?("::") ? self.split("::")[1] : self end |
#remove_stars ⇒ Object
83 84 85 |
# File 'lib/useful_string_extensions/string.rb', line 83 def remove_stars self.blank? ? "" : self.gsub('*', '') end |
#replace_quotes ⇒ Object
12 13 14 |
# File 'lib/useful_string_extensions/string.rb', line 12 def replace_quotes self == "" ? "" : self.gsub(""", '"') end |
#sanitize_to_sphinx ⇒ Object
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
16 17 18 |
# File 'lib/useful_string_extensions/string.rb', line 16 def show? self.blank? ? "Не указано" : self end |
#split_stars ⇒ Object
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_file ⇒ Object
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_clean ⇒ Object
149 150 151 152 153 154 155 156 |
# File 'lib/useful_string_extensions/string.rb', line 149 def to_clean = { :elements => %w[p a ul ol li u], :attributes => {'a' => ['href', 'title']}, :protocols => {'a' => {'href' => ['http', 'https', 'mailto']}} } self == "" ? "" : Sanitize.clean(self, ) end |
#to_keywords ⇒ Object
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_slug ⇒ Object
117 118 119 |
# File 'lib/useful_string_extensions/string.rb', line 117 def to_page_slug self.gsub(/^\//, '').gsub(".html", "") end |
#to_print ⇒ Object
32 33 34 |
# File 'lib/useful_string_extensions/string.rb', line 32 def to_print self.gsub("\t", '').gsub("\n", '').gsub("\r", '') end |
#to_search ⇒ Object
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_xhtml ⇒ Object
56 57 58 |
# File 'lib/useful_string_extensions/string.rb', line 56 def to_simple_xhtml self == '' ? '' : self.gsub("<br>", '<br />') end |
#to_slug ⇒ Object
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_array ⇒ Object
40 41 42 |
# File 'lib/useful_string_extensions/string.rb', line 40 def self.split(",").collect{|e| e.gsub("widget_",'').to_i} end |
#valide_of_email? ⇒ 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 |