linky 0.0.2 → 0.0.3
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.
- data/README.markdown +2 -2
- data/lib/linky/linky.rb +7 -3
- data/spec/linky_spec.rb +6 -0
- metadata +4 -4
data/README.markdown
CHANGED
@@ -11,9 +11,9 @@ A simple gem for safely linking keywords within HTML (i.e., it's more than a `gs
|
|
11
11
|
Call the `Linky.link` method:
|
12
12
|
|
13
13
|
require 'linky'
|
14
|
-
html = "<p>link
|
14
|
+
html = "<p>link the first occurance of the word "more."</p><div>some more text</div>"
|
15
15
|
Linky.link "more", "http://more.com", html, :class => "linky"
|
16
|
-
# returns "<p>link the word "<a href="http://more.com" class="linky">more</a>."</p><div>some
|
16
|
+
# returns "<p>link the first occurance of the word "<a href="http://more.com" class="linky">more</a>."</p><div>some more text</div>"
|
17
17
|
|
18
18
|
## Docs
|
19
19
|
|
data/lib/linky/linky.rb
CHANGED
@@ -28,15 +28,19 @@ class Linky
|
|
28
28
|
|
29
29
|
# call the block to determine what we'll replace the needle with
|
30
30
|
new_needle = block.call match[1]
|
31
|
+
|
32
|
+
|
31
33
|
|
32
34
|
# break the string into three parts
|
33
35
|
prefix, keyword, postfix = break_on_boundary match[1], haystack.to_s
|
34
|
-
|
36
|
+
|
35
37
|
haystack.content = prefix
|
36
38
|
haystack.add_next_sibling Nokogiri::HTML::DocumentFragment.parse(new_needle)
|
37
39
|
if !postfix.nil? and !postfix.empty?
|
38
|
-
|
39
|
-
|
40
|
+
if postfix_content = Nokogiri::HTML::DocumentFragment.parse(postfix)
|
41
|
+
postfix_content.content = postfix
|
42
|
+
haystack.next_sibling.add_next_sibling postfix_content
|
43
|
+
end
|
40
44
|
end
|
41
45
|
true
|
42
46
|
elsif haystack.name != "a" && haystack.respond_to?(:children)
|
data/spec/linky_spec.rb
CHANGED
@@ -24,4 +24,10 @@ describe Linky, "#link" do
|
|
24
24
|
new_html = Linky.link "he", "#he", html
|
25
25
|
new_html.should == "hi there, <a href=\"#he\">he</a> is funny and he is a he.<div>more he stuff.</div>"
|
26
26
|
end
|
27
|
+
|
28
|
+
it "should not remove links" do
|
29
|
+
html = "<p>California <a href=\"topics/cabernet-sauvignon\">Cabernet Sauvignon</a></p>"
|
30
|
+
new_html = Linky.link "California", "topics/california", html
|
31
|
+
new_html.should == "<p><a href=\"topics/california\">California</a> <a href=\"topics/cabernet-sauvignon\">Cabernet Sauvignon</a></p>"
|
32
|
+
end
|
27
33
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Parker
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-07 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|