Skip to content

Instantly share code, notes, and snippets.

@sandeep45
Created March 30, 2012 04:01
Show Gist options
  • Save sandeep45/2246379 to your computer and use it in GitHub Desktop.
Save sandeep45/2246379 to your computer and use it in GitHub Desktop.
highlight phrase in phone number
def make_phone_number_fancy(number='6615133257', str='DEALs')
puts " in TwilioHelper. got " + number.to_s
number.include? "+1"
number.gsub! "+1", ""
str.downcase!
kp = {}
kp["a"]="2"
kp["b"]="2"
kp["c"]="2"
kp["d"]="3"
kp["e"]="3"
kp["f"]="3"
kp["g"]="4"
kp["h"]="4"
kp["i"]="4"
kp["j"]="5"
kp["k"]="5"
kp["l"]="5"
kp["m"]="6"
kp["n"]="6"
kp["o"]="6"
kp["p"]="7"
kp["q"]="7"
kp["r"]="7"
kp["s"]="7"
kp["t"]="8"
kp["u"]="8"
kp["v"]="8"
kp["w"]="9"
kp["x"]="9"
kp["y"]="9"
kp["z"]="9"
kp["0"]="1"
kp["1"]="2"
kp["2"]="3"
kp["3"]="4"
kp["4"]="5"
kp["5"]="6"
kp["6"]="7"
kp["7"]="8"
kp["8"]="9"
kp["9"]="0"
number_phrase = ""
str.each_char do |c|
number_phrase += kp[c]
end
puts "looking for this phrase in numbers #{number_phrase}"
str = str.upcase
number.gsub!(number_phrase,str)
number2 = number # this is the output copy
puts "updated number is #{number2}"
str_start = number.index str
puts "phrase start #{str_start}"
str_end = str_start + str.length - 1
puts "phrase ends #{str_end}"
if str_end == 9
# phrase is at end
number2.insert(str_start,"-");
if str_start >= 3
number2.insert(3,") ");
number2.insert(0,"(");
end
puts "with dashes #{number2}"
elsif (str_end < 9 && str_start >0)
number2.insert(str_end+1,"-")
if str_start >= 3
number2.insert(3,") ");
number2.insert(0,"(");
else
number2.insert(str_start,"-")
end
elsif str_start == 0
number2.insert(str_end+1,"-")
if str_end < 9
number2.insert(7,"-")
end
else
puts "something wrong happened"
end
number2.gsub! str,"<span class=highlight>#{str}</span>".html_safe
puts number2
return number.html_safe
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment