6
Bir regex kullanarak metnin yerleştirilmesiyle ilgili birkaç ileti var. En popüler is this post.Dizelerdeki Ruby'ler için Ruby fontfy
describe TextFormatter do
def l(input)
TextFormatter.gsub_links!(input){|link| "!!#{link}!!"}
end
it "should detect simple links" do
l("http://www.cnn.com").should == "!!http://www.cnn.com!!"
end
it "should detect multi links" do
l("http://www.cnn.com http://boats.com?help.asp").should == "!!http://www.cnn.com!! !!http://boats.com?help.asp!!"
end
it "should compensate for parans properly" do
l("(http://this.is?hello_world)").should == "(!!http://this.is?hello_world!!)"
end
it "should ignore existing links" do
s = "<A HREF='http://sam.com'> http://sam.com </A>"
l(s.dup).should == s
end
it "should allow parans" do
l("http://sam.com.au?(red)").should == "!!http://sam.com.au?(red)!!"
end
end
Herhangi fikirleri nasıl kıllı Regex uygulamak için:
: Şimdiye kadar neredebudur (o 2 testleri başarısız) benim Spec biraz daha karmaşıktır Ancak
def gsub_links!(input)
regex = /https?\:\/\/[\-\w+&@#\/%?=~\(\)\|!:,.;]*[\-\w+&@#\/%=~_\(\)|]/
input.gsub!(regex) { |link|
yield link
}
end
yerp, oto bağlantı, uygulamada başarısız olmasının –
bunu işaret için ... teşekkürler tüm testleri geçmek görünüyor? Bir hata alıyorum "yanlış argüman sayısı (2 için 1) dosya: tag_helper.rb location: tag_options çizgi: 113" bunu yapmaya çalışırken. Konsolda mükemmel çalışır, ancak – Arty
'auto_link' 3.1'den beri Rails'den çıktı. Güncellenmiş bir cevap için http://stackoverflow.com/questions/6418710/replacing-the-auto-link-method-in-ruby-on-rails-3-1 adresini ziyaret edin. – Thilo