hpricot 0.6-mswin32 → 0.6.164-mswin32
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/Rakefile +117 -68
- data/ext/fast_xs/FastXsService.java +1018 -0
- data/ext/fast_xs/extconf.rb +4 -0
- data/ext/fast_xs/fast_xs.c +194 -0
- data/ext/hpricot_scan/HpricotScanService.java +768 -807
- data/ext/hpricot_scan/hpricot_gram.c +882 -0
- data/ext/hpricot_scan/hpricot_gram.h +9 -0
- data/ext/hpricot_scan/hpricot_scan.c +2871 -2586
- data/ext/hpricot_scan/hpricot_scan.java.rl +31 -25
- data/ext/hpricot_scan/hpricot_scan.rl +28 -22
- data/ext/hpricot_scan/test.rb +5 -0
- data/lib/fast_xs.so +0 -0
- data/lib/hpricot/builder.rb +20 -5
- data/lib/hpricot/elements.rb +7 -7
- data/lib/hpricot/parse.rb +6 -5
- data/lib/hpricot/tag.rb +6 -2
- data/lib/hpricot/traverse.rb +17 -6
- data/lib/hpricot_scan.so +0 -0
- data/test/test_alter.rb +12 -0
- data/test/test_builder.rb +13 -0
- data/test/test_parser.rb +7 -0
- data/test/test_paths.rb +9 -0
- metadata +72 -60
- data/lib/i686-linux/hpricot_scan.so +0 -0
data/lib/hpricot/traverse.rb
CHANGED
@@ -20,6 +20,16 @@ module Hpricot
|
|
20
20
|
# Is this object a stranded end tag?
|
21
21
|
def bogusetag?() BogusETag::Trav === self end
|
22
22
|
|
23
|
+
# Parses an HTML string, making an HTML fragment based on
|
24
|
+
# the options used to create the container document.
|
25
|
+
def make(input = nil, &blk)
|
26
|
+
if parent and parent.respond_to? :make
|
27
|
+
parent.make(input, &blk)
|
28
|
+
else
|
29
|
+
Hpricot.make(input, &blk)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
23
33
|
# Builds an HTML string from this node and its contents.
|
24
34
|
# If you need to write to a stream, try calling <tt>output(io)</tt>
|
25
35
|
# as a method on this object.
|
@@ -109,12 +119,12 @@ module Hpricot
|
|
109
119
|
|
110
120
|
# Adds elements immediately after this element, contained in the +html+ string.
|
111
121
|
def after(html = nil, &blk)
|
112
|
-
parent.insert_after(
|
122
|
+
parent.insert_after(make(html, &blk), self)
|
113
123
|
end
|
114
124
|
|
115
125
|
# Adds elements immediately before this element, contained in the +html+ string.
|
116
126
|
def before(html = nil, &blk)
|
117
|
-
parent.insert_before(
|
127
|
+
parent.insert_before(make(html, &blk), self)
|
118
128
|
end
|
119
129
|
|
120
130
|
|
@@ -122,7 +132,7 @@ module Hpricot
|
|
122
132
|
# in the +html+ string.
|
123
133
|
def swap(html = nil, &blk)
|
124
134
|
parent.altered!
|
125
|
-
parent.replace_child(self,
|
135
|
+
parent.replace_child(self, make(html, &blk))
|
126
136
|
end
|
127
137
|
|
128
138
|
def get_subnode(*indexes)
|
@@ -158,7 +168,7 @@ module Hpricot
|
|
158
168
|
when Array
|
159
169
|
self.children = inner
|
160
170
|
else
|
161
|
-
self.children =
|
171
|
+
self.children = make(inner, &blk)
|
162
172
|
end
|
163
173
|
reparent self.children
|
164
174
|
else
|
@@ -513,8 +523,9 @@ module Hpricot
|
|
513
523
|
|
514
524
|
def get_elements_by_tag_name(*a)
|
515
525
|
list = Elements[]
|
526
|
+
a.delete("*")
|
516
527
|
traverse_element(*a.map { |tag| [tag, "{http://www.w3.org/1999/xhtml}#{tag}"] }.flatten) do |e|
|
517
|
-
|
528
|
+
list << e if e.elem?
|
518
529
|
end
|
519
530
|
list
|
520
531
|
end
|
@@ -806,7 +817,7 @@ module Hpricot
|
|
806
817
|
def set_attribute(name, val)
|
807
818
|
altered!
|
808
819
|
self.raw_attributes ||= {}
|
809
|
-
self.raw_attributes[name.to_s] =
|
820
|
+
self.raw_attributes[name.to_s] = val.fast_xs
|
810
821
|
end
|
811
822
|
alias_method :[]=, :set_attribute
|
812
823
|
def remove_attribute(name)
|
data/lib/hpricot_scan.so
ADDED
Binary file
|
data/test/test_alter.rb
CHANGED
@@ -58,6 +58,18 @@ class TestAlter < Test::Unit::TestCase
|
|
58
58
|
assert_changed(@basic, "p[@class]", all_c2) { |p| p['class'].nil? }
|
59
59
|
end
|
60
60
|
|
61
|
+
def test_xml_casing
|
62
|
+
doc = Hpricot.XML("<root><wildCat>text</wildCat></root>")
|
63
|
+
(doc/:root/:wildCat).after("<beanPole>gravity</beanPole>")
|
64
|
+
assert_equal doc.to_s, "<root><wildCat>text</wildCat><beanPole>gravity</beanPole></root>"
|
65
|
+
|
66
|
+
frag = Hpricot.XML do
|
67
|
+
b { i "A bit of HTML" }
|
68
|
+
end
|
69
|
+
(frag/:b).after("<beanPole>gravity</beanPole>")
|
70
|
+
assert_equal frag.to_s, "<b><i>A bit of HTML</i></b><beanPole>gravity</beanPole>"
|
71
|
+
end
|
72
|
+
|
61
73
|
def assert_changed original, selector, set, &block
|
62
74
|
assert set.all?(&block)
|
63
75
|
assert Hpricot(original.to_html).search(selector).all?(&block)
|
data/test/test_builder.rb
CHANGED
@@ -21,4 +21,17 @@ class TestBuilder < Test::Unit::TestCase
|
|
21
21
|
assert_equal "<b>ۥ</b>", doc.to_html
|
22
22
|
assert_equal "\342\202\254\342\200\242", doc.at("text()").to_s
|
23
23
|
end
|
24
|
+
|
25
|
+
def test_escaping_attrs
|
26
|
+
text = "<span style='font-family:\"MS Mincho\"'>Some text</span>"
|
27
|
+
assert_equal "<span style=\"font-family:\\\"MS Mincho\\\"\">Some text</span>",
|
28
|
+
Hpricot(text).to_html
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_korean_utf8_entities
|
32
|
+
# a = '한글'
|
33
|
+
a = "\xed\x95\x9c\xea\xb8\x80"
|
34
|
+
doc = Hpricot() { b a }
|
35
|
+
assert_equal "<b>한글</b>", doc.to_html
|
36
|
+
end
|
24
37
|
end
|
data/test/test_parser.rb
CHANGED
@@ -47,6 +47,13 @@ class TestParser < Test::Unit::TestCase
|
|
47
47
|
assert_equal 'link1', @basic.get_elements_by_tag_name('a')[0].get_attribute('id')
|
48
48
|
assert_equal 'link1', @basic.get_elements_by_tag_name('body')[0].get_element_by_id('link1').get_attribute('id')
|
49
49
|
end
|
50
|
+
|
51
|
+
def test_get_elements_by_tag_name_star
|
52
|
+
simple = Hpricot.parse("<div><p id='first'>First</p><p id='second'>Second</p></div>")
|
53
|
+
assert_equal 3, simple.get_elements_by_tag_name("*").size
|
54
|
+
assert_equal 1, simple.get_elements_by_tag_name("div").size
|
55
|
+
assert_equal 2, simple.get_elements_by_tag_name("p").size
|
56
|
+
end
|
50
57
|
|
51
58
|
def test_output_basic
|
52
59
|
@basic = Hpricot.parse(TestFiles::BASIC)
|
data/test/test_paths.rb
CHANGED
@@ -13,4 +13,13 @@ class TestParser < Test::Unit::TestCase
|
|
13
13
|
assert_equal ele, @basic.at(ele.xpath)
|
14
14
|
end
|
15
15
|
end
|
16
|
+
def test_attr_brackets
|
17
|
+
doc = Hpricot('<input name="vendor[porkpies]"/>')
|
18
|
+
assert_equal 1, (doc/'input[@name^="vendor[porkpies]"]').length
|
19
|
+
assert_equal 1, (doc/'input[@name="vendor[porkpies]"]').length
|
20
|
+
assert_equal 0, (doc/'input[@name$="]]]]]"]').length
|
21
|
+
|
22
|
+
doc = Hpricot('<input name="vendor[porkpies][meaty]"/>')
|
23
|
+
assert_equal 1, (doc/'input[@name^="vendor[porkpies][meaty]"]').length
|
24
|
+
end
|
16
25
|
end
|
metadata
CHANGED
@@ -1,82 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
3
|
-
specification_version: 1
|
4
2
|
name: hpricot
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
7
|
-
date: 2007-06-15 00:00:00 -07:00
|
8
|
-
summary: a swift, liberal HTML parser with a fantastic library
|
9
|
-
require_paths:
|
10
|
-
- lib/i686-linux
|
11
|
-
- lib
|
12
|
-
email: why@ruby-lang.org
|
13
|
-
homepage: http://code.whytheluckystiff.net/hpricot/
|
14
|
-
rubyforge_project:
|
15
|
-
description: a swift, liberal HTML parser with a fantastic library
|
16
|
-
autorequire:
|
17
|
-
default_executable:
|
18
|
-
bindir: bin
|
19
|
-
has_rdoc: true
|
20
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
21
|
-
requirements:
|
22
|
-
- - ">"
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 0.0.0
|
25
|
-
version:
|
4
|
+
version: 0.6.164
|
26
5
|
platform: mswin32
|
27
|
-
signing_key:
|
28
|
-
cert_chain:
|
29
|
-
post_install_message:
|
30
6
|
authors:
|
31
7
|
- why the lucky stiff
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-10-30 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: a swift, liberal HTML parser with a fantastic library
|
17
|
+
email: why@ruby-lang.org
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README
|
24
|
+
- CHANGELOG
|
25
|
+
- COPYING
|
32
26
|
files:
|
33
27
|
- CHANGELOG
|
34
28
|
- COPYING
|
35
29
|
- README
|
36
30
|
- Rakefile
|
37
|
-
- test/files
|
38
|
-
- test/test_preserved.rb
|
39
31
|
- test/test_paths.rb
|
40
|
-
- test/
|
41
|
-
- test/test_xml.rb
|
32
|
+
- test/test_preserved.rb
|
42
33
|
- test/test_parser.rb
|
43
|
-
- test/
|
44
|
-
- test/
|
45
|
-
- test/files/
|
34
|
+
- test/files
|
35
|
+
- test/files/cy0.html
|
36
|
+
- test/files/pace_application.html
|
37
|
+
- test/files/basic.xhtml
|
38
|
+
- test/files/utf8.html
|
46
39
|
- test/files/boingboing.html
|
47
|
-
- test/files/uswebgen.html
|
48
|
-
- test/files/immob.html
|
49
40
|
- test/files/week9.html
|
50
|
-
- test/files/utf8.html
|
51
|
-
- test/files/basic.xhtml
|
52
|
-
- test/files/cy0.html
|
53
41
|
- test/files/tenderlove.html
|
54
|
-
- test/files/
|
42
|
+
- test/files/immob.html
|
43
|
+
- test/files/why.xml
|
44
|
+
- test/files/uswebgen.html
|
45
|
+
- test/load_files.rb
|
46
|
+
- test/test_builder.rb
|
47
|
+
- test/test_xml.rb
|
48
|
+
- test/test_alter.rb
|
55
49
|
- lib/hpricot
|
56
|
-
- lib/hpricot.rb
|
57
|
-
- lib/i686-linux
|
50
|
+
- lib/hpricot/tags.rb
|
58
51
|
- lib/hpricot/builder.rb
|
59
|
-
- lib/hpricot/htmlinfo.rb
|
60
|
-
- lib/hpricot/xchar.rb
|
61
|
-
- lib/hpricot/inspect.rb
|
62
|
-
- lib/hpricot/modules.rb
|
63
|
-
- lib/hpricot/parse.rb
|
64
|
-
- lib/hpricot/tag.rb
|
65
52
|
- lib/hpricot/traverse.rb
|
66
53
|
- lib/hpricot/elements.rb
|
67
|
-
- lib/hpricot/
|
54
|
+
- lib/hpricot/modules.rb
|
55
|
+
- lib/hpricot/inspect.rb
|
56
|
+
- lib/hpricot/tag.rb
|
68
57
|
- lib/hpricot/blankslate.rb
|
58
|
+
- lib/hpricot/xchar.rb
|
59
|
+
- lib/hpricot/htmlinfo.rb
|
60
|
+
- lib/hpricot/parse.rb
|
61
|
+
- lib/hpricot.rb
|
69
62
|
- extras/mingw-rbconfig.rb
|
70
63
|
- ext/hpricot_scan/hpricot_scan.h
|
64
|
+
- ext/hpricot_scan/hpricot_gram.h
|
71
65
|
- ext/hpricot_scan/HpricotScanService.java
|
66
|
+
- ext/fast_xs/FastXsService.java
|
72
67
|
- ext/hpricot_scan/hpricot_scan.c
|
68
|
+
- ext/hpricot_scan/hpricot_gram.c
|
69
|
+
- ext/fast_xs/fast_xs.c
|
70
|
+
- ext/hpricot_scan/test.rb
|
73
71
|
- ext/hpricot_scan/extconf.rb
|
74
|
-
- ext/
|
72
|
+
- ext/fast_xs/extconf.rb
|
75
73
|
- ext/hpricot_scan/hpricot_scan.rl
|
76
74
|
- ext/hpricot_scan/hpricot_scan.java.rl
|
77
|
-
-
|
78
|
-
|
79
|
-
|
75
|
+
- ext/hpricot_scan/hpricot_common.rl
|
76
|
+
- lib/hpricot_scan.so
|
77
|
+
- lib/fast_xs.so
|
78
|
+
has_rdoc: true
|
79
|
+
homepage: http://code.whytheluckystiff.net/hpricot/
|
80
|
+
post_install_message:
|
80
81
|
rdoc_options:
|
81
82
|
- --quiet
|
82
83
|
- --title
|
@@ -84,15 +85,26 @@ rdoc_options:
|
|
84
85
|
- --main
|
85
86
|
- README
|
86
87
|
- --inline-source
|
87
|
-
|
88
|
-
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: "0"
|
95
|
+
version:
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: "0"
|
101
|
+
version:
|
95
102
|
requirements: []
|
96
103
|
|
97
|
-
|
104
|
+
rubyforge_project: hobix
|
105
|
+
rubygems_version: 1.3.0
|
106
|
+
signing_key:
|
107
|
+
specification_version: 2
|
108
|
+
summary: a swift, liberal HTML parser with a fantastic library
|
109
|
+
test_files: []
|
98
110
|
|
Binary file
|