Ruby Twitter Search by punctuations
I don't think you can do too much better. The things I would have done differently would be:


Make the helper methods private using private_class_method ...
I'm not quite sure why you are stripping out the leading # in several places. If you know that all searches are going to start with # then I would strip it out at the beginning (or expect the caller not to pass it in). 
if text[1..text.length] =~ /[[:punct:]]/ could be written as if text =~ /.[[:punct:]]/
text[1..text.length].gsub(/([[:punct:]])/){|punc| "\\#{punc}"} There are two better ways to do this (1) Using backreferences text[1..text.length].gsub(/([[:punct:]])/, '\\\1') but (2) it really looks like you are trying to duplicate RegExp.escape
phrase.match(/#{punc_text(text)}/i).nil?, I would think that phrase.downcase.include?(text.downcase) would be cleaner