breakout_parser 0.0.7-x86-mingw32 → 0.0.8-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
|
data/spec/parser_spec.rb
CHANGED
@@ -97,7 +97,7 @@ describe 'BreakoutParser' do
|
|
97
97
|
end
|
98
98
|
it "not confuses" do
|
99
99
|
parse("look at @this code@ and mail me at xxx@yyy.com").should ==
|
100
|
-
'look at <code>this code</code> and mail me at xxx@yyy.com'
|
100
|
+
'look at <code>this code</code> and mail me at <a href="mailto:xxx@yyy.com">xxx@yyy.com</a>'
|
101
101
|
end
|
102
102
|
it "w/o closing tag" do
|
103
103
|
parse("@smth").should == '@smth'
|
@@ -359,35 +359,99 @@ describe 'BreakoutParser' do
|
|
359
359
|
###############################################################################
|
360
360
|
|
361
361
|
describe "raw text links" do
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
"aaa bbb ccc
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
362
|
+
describe "starting with 'http://'" do
|
363
|
+
it "at the beginning" do
|
364
|
+
parse("http://asd.ru").should == "<a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a>"
|
365
|
+
end
|
366
|
+
it "in middle of other words" do
|
367
|
+
parse("aaa bbb ccc http://asd.ru ddd eee fff").should ==
|
368
|
+
"aaa bbb ccc <a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a> ddd eee fff"
|
369
|
+
end
|
370
|
+
it "in new line" do
|
371
|
+
parse("aaa bbb ccc\nhttp://asd.ru\nddd eee fff").should match(
|
372
|
+
%r"aaa bbb ccc ?<br /> ?<a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a> ?<br /> ?ddd eee fff"
|
373
|
+
)
|
374
|
+
end
|
375
|
+
it "escapes '&' in link _text_" do
|
376
|
+
parse("http://asd.ru/?a=1&b=2").should == "<a rel=\"nofollow\" href=\"http://asd.ru/?a=1&b=2\">http://asd.ru/?a=1&b=2</a>"
|
377
|
+
end
|
378
|
+
|
379
|
+
it "parses https://" do
|
380
|
+
parse("https://asd.ru").should == "<a rel=\"nofollow\" href=\"https://asd.ru\">https://asd.ru</a>"
|
381
|
+
end
|
382
|
+
|
383
|
+
%w', .'.each do |c|
|
384
|
+
it "stops parsing on \"#{c} \"" do
|
385
|
+
parse("http://asd.ru#{c}").should == "<a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a>#{c}"
|
386
|
+
parse(" http://asd.ru#{c} ").should == "<a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a>#{c}"
|
387
|
+
parse(" http://asd.ru#{c} hello!").should == "<a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a>#{c} hello!"
|
388
|
+
parse("xxx http://asd.ru#{c} hello!").should == "xxx <a rel=\"nofollow\" href=\"http://asd.ru\">http://asd.ru</a>#{c} hello!"
|
389
|
+
parse(" http://asd.ru/#{c} hello!").should == "<a rel=\"nofollow\" href=\"http://asd.ru/\">http://asd.ru/</a>#{c} hello!"
|
390
|
+
parse(" http://aaa.com#{c} http://bbb.com").should ==
|
391
|
+
"<a rel=\"nofollow\" href=\"http://aaa.com\">http://aaa.com</a>#{c} <a rel=\"nofollow\" href=\"http://bbb.com\">http://bbb.com</a>"
|
392
|
+
end
|
393
|
+
end
|
376
394
|
end
|
377
395
|
|
378
|
-
|
379
|
-
|
396
|
+
describe "starting with 'www.'" do
|
397
|
+
it "at the beginning" do
|
398
|
+
parse("www.ru").should == "<a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a>"
|
399
|
+
end
|
400
|
+
it "in middle of other words" do
|
401
|
+
parse("aaa bbb ccc www.ru ddd eee fff").should ==
|
402
|
+
"aaa bbb ccc <a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a> ddd eee fff"
|
403
|
+
end
|
404
|
+
it "in new line" do
|
405
|
+
parse("aaa bbb ccc\nwww.ru\nddd eee fff").should match(
|
406
|
+
%r"aaa bbb ccc ?<br /> ?<a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a> ?<br /> ?ddd eee fff"
|
407
|
+
)
|
408
|
+
end
|
409
|
+
it "escapes '&' in link _text_" do
|
410
|
+
parse("www.ru/?a=1&b=2").should == "<a rel=\"nofollow\" href=\"http://www.ru/?a=1&b=2\">www.ru/?a=1&b=2</a>"
|
411
|
+
end
|
412
|
+
|
413
|
+
%w', .'.each do |c|
|
414
|
+
it "stops parsing on \"#{c} \"" do
|
415
|
+
parse("www.ru#{c}").should == "<a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a>#{c}"
|
416
|
+
parse(" www.ru#{c} ").should == "<a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a>#{c}"
|
417
|
+
parse(" www.ru#{c} hello!").should == "<a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a>#{c} hello!"
|
418
|
+
parse("xxx www.ru#{c} hello!").should == "xxx <a rel=\"nofollow\" href=\"http://www.ru\">www.ru</a>#{c} hello!"
|
419
|
+
parse(" www.ru/#{c} hello!").should == "<a rel=\"nofollow\" href=\"http://www.ru/\">www.ru/</a>#{c} hello!"
|
420
|
+
parse(" www.aaa.com#{c} www.bbb.com").should ==
|
421
|
+
"<a rel=\"nofollow\" href=\"http://www.aaa.com\">www.aaa.com</a>#{c} <a rel=\"nofollow\" href=\"http://www.bbb.com\">www.bbb.com</a>"
|
422
|
+
end
|
423
|
+
end
|
380
424
|
end
|
381
425
|
|
382
|
-
|
383
|
-
it "
|
384
|
-
parse("
|
385
|
-
|
386
|
-
|
387
|
-
parse("
|
388
|
-
|
389
|
-
|
390
|
-
|
426
|
+
describe 'e-mails' do
|
427
|
+
it "at the beginning" do
|
428
|
+
parse("aaa@bbb.com").should == "<a href=\"mailto:aaa@bbb.com\">aaa@bbb.com</a>"
|
429
|
+
end
|
430
|
+
it "in middle of other words" do
|
431
|
+
parse("aaa bbb ccc xx@yy.cn ddd eee fff").should ==
|
432
|
+
"aaa bbb ccc <a href=\"mailto:xx@yy.cn\">xx@yy.cn</a> ddd eee fff"
|
433
|
+
end
|
434
|
+
it "in new line" do
|
435
|
+
parse("aaa bbb ccc\naa.bb@cc.dd.ee\nddd eee fff").should match(
|
436
|
+
%r"aaa bbb ccc ?<br /> ?<a href=\"mailto:aa.bb@cc.dd.ee\">aa.bb@cc.dd.ee</a> ?<br /> ?ddd eee fff"
|
437
|
+
)
|
438
|
+
end
|
439
|
+
|
440
|
+
%w', .'.each do |c|
|
441
|
+
it "stops parsing on \"#{c} \"" do
|
442
|
+
parse("a-b@c-d.efghjikl#{c}").should == "<a href=\"mailto:a-b@c-d.efghjikl\">a-b@c-d.efghjikl</a>#{c}"
|
443
|
+
parse(" a-b@c-d.efghjikl#{c} ").should == "<a href=\"mailto:a-b@c-d.efghjikl\">a-b@c-d.efghjikl</a>#{c}"
|
444
|
+
parse(" a-b@c-d.efghjikl#{c} hello!").should == "<a href=\"mailto:a-b@c-d.efghjikl\">a-b@c-d.efghjikl</a>#{c} hello!"
|
445
|
+
parse("xxx a-b@c-d.efghjikl#{c} hello!").should == "xxx <a href=\"mailto:a-b@c-d.efghjikl\">a-b@c-d.efghjikl</a>#{c} hello!"
|
446
|
+
parse(" a-b@c-d.efghjikl#{c} hello!").should == "<a href=\"mailto:a-b@c-d.efghjikl\">a-b@c-d.efghjikl</a>#{c} hello!"
|
447
|
+
parse(" www@aaa.com#{c} www@bbb.com").should ==
|
448
|
+
"<a href=\"mailto:www@aaa.com\">www@aaa.com</a>#{c} <a href=\"mailto:www@bbb.com\">www@bbb.com</a>"
|
449
|
+
end
|
450
|
+
end
|
451
|
+
|
452
|
+
it "not parses bad emails" do
|
453
|
+
s="a@b.c a@b a.b@c a.b@@c a@b@c.d a#b@c.d"
|
454
|
+
parse(s).should == s
|
391
455
|
end
|
392
456
|
end
|
393
457
|
end
|
@@ -693,7 +757,7 @@ describe 'BreakoutParser' do
|
|
693
757
|
parse(s).should == s
|
694
758
|
s = "[[abcd:1234]]"
|
695
759
|
parse(s).should == s
|
696
|
-
s = "[[abcd::1234]] [[abcd:1234]] [[uri:
|
760
|
+
s = "[[abcd::1234]] [[abcd:1234]] [[uri:ww.ru]]"
|
697
761
|
parse(s).should == s
|
698
762
|
end
|
699
763
|
|
@@ -718,7 +782,9 @@ describe 'BreakoutParser' do
|
|
718
782
|
###############################################################################
|
719
783
|
###############################################################################
|
720
784
|
|
721
|
-
HTML_ESCAPE
|
785
|
+
unless defined?HTML_ESCAPE
|
786
|
+
HTML_ESCAPE = { '&' => '&', '>' => '>', '<' => '<', '"' => '"' }
|
787
|
+
end
|
722
788
|
|
723
789
|
def h s
|
724
790
|
s.to_s.gsub(/[&"><]/) { |special| HTML_ESCAPE[special] }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breakout_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Andrey "Zed" Zaikin
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-03-
|
12
|
+
date: 2010-03-12 00:00:00 +05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|