nokogiri-maglev- 1.5.0.1

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.
Files changed (225) hide show
  1. data/.autotest +26 -0
  2. data/.gemtest +0 -0
  3. data/CHANGELOG.ja.rdoc +544 -0
  4. data/CHANGELOG.rdoc +532 -0
  5. data/Manifest.txt +283 -0
  6. data/README.ja.rdoc +106 -0
  7. data/README.rdoc +174 -0
  8. data/Rakefile +171 -0
  9. data/bin/nokogiri +53 -0
  10. data/ext/nokogiri/depend +358 -0
  11. data/ext/nokogiri/extconf.rb +124 -0
  12. data/ext/nokogiri/html_document.c +154 -0
  13. data/ext/nokogiri/html_document.h +10 -0
  14. data/ext/nokogiri/html_element_description.c +276 -0
  15. data/ext/nokogiri/html_element_description.h +10 -0
  16. data/ext/nokogiri/html_entity_lookup.c +32 -0
  17. data/ext/nokogiri/html_entity_lookup.h +8 -0
  18. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  19. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  20. data/ext/nokogiri/nokogiri.c +115 -0
  21. data/ext/nokogiri/nokogiri.h +160 -0
  22. data/ext/nokogiri/st.c +576 -0
  23. data/ext/nokogiri/xml_attr.c +94 -0
  24. data/ext/nokogiri/xml_attr.h +9 -0
  25. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  26. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  27. data/ext/nokogiri/xml_cdata.c +56 -0
  28. data/ext/nokogiri/xml_cdata.h +9 -0
  29. data/ext/nokogiri/xml_comment.c +54 -0
  30. data/ext/nokogiri/xml_comment.h +9 -0
  31. data/ext/nokogiri/xml_document.c +478 -0
  32. data/ext/nokogiri/xml_document.h +23 -0
  33. data/ext/nokogiri/xml_document_fragment.c +48 -0
  34. data/ext/nokogiri/xml_document_fragment.h +10 -0
  35. data/ext/nokogiri/xml_dtd.c +202 -0
  36. data/ext/nokogiri/xml_dtd.h +10 -0
  37. data/ext/nokogiri/xml_element_content.c +123 -0
  38. data/ext/nokogiri/xml_element_content.h +10 -0
  39. data/ext/nokogiri/xml_element_decl.c +69 -0
  40. data/ext/nokogiri/xml_element_decl.h +9 -0
  41. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  42. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  43. data/ext/nokogiri/xml_entity_decl.c +110 -0
  44. data/ext/nokogiri/xml_entity_decl.h +10 -0
  45. data/ext/nokogiri/xml_entity_reference.c +52 -0
  46. data/ext/nokogiri/xml_entity_reference.h +9 -0
  47. data/ext/nokogiri/xml_io.c +56 -0
  48. data/ext/nokogiri/xml_io.h +11 -0
  49. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  50. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  51. data/ext/nokogiri/xml_namespace.c +84 -0
  52. data/ext/nokogiri/xml_namespace.h +13 -0
  53. data/ext/nokogiri/xml_node.c +1397 -0
  54. data/ext/nokogiri/xml_node.h +13 -0
  55. data/ext/nokogiri/xml_node_set.c +418 -0
  56. data/ext/nokogiri/xml_node_set.h +9 -0
  57. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  58. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  59. data/ext/nokogiri/xml_reader.c +684 -0
  60. data/ext/nokogiri/xml_reader.h +10 -0
  61. data/ext/nokogiri/xml_relax_ng.c +162 -0
  62. data/ext/nokogiri/xml_relax_ng.h +9 -0
  63. data/ext/nokogiri/xml_sax_parser.c +293 -0
  64. data/ext/nokogiri/xml_sax_parser.h +39 -0
  65. data/ext/nokogiri/xml_sax_parser_context.c +199 -0
  66. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  67. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  68. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  69. data/ext/nokogiri/xml_schema.c +205 -0
  70. data/ext/nokogiri/xml_schema.h +9 -0
  71. data/ext/nokogiri/xml_syntax_error.c +58 -0
  72. data/ext/nokogiri/xml_syntax_error.h +13 -0
  73. data/ext/nokogiri/xml_text.c +50 -0
  74. data/ext/nokogiri/xml_text.h +9 -0
  75. data/ext/nokogiri/xml_xpath_context.c +315 -0
  76. data/ext/nokogiri/xml_xpath_context.h +9 -0
  77. data/ext/nokogiri/xslt_stylesheet.c +265 -0
  78. data/ext/nokogiri/xslt_stylesheet.h +9 -0
  79. data/lib/nokogiri.rb +127 -0
  80. data/lib/nokogiri/css.rb +27 -0
  81. data/lib/nokogiri/css/node.rb +99 -0
  82. data/lib/nokogiri/css/parser.rb +677 -0
  83. data/lib/nokogiri/css/parser.y +237 -0
  84. data/lib/nokogiri/css/parser_extras.rb +91 -0
  85. data/lib/nokogiri/css/syntax_error.rb +7 -0
  86. data/lib/nokogiri/css/tokenizer.rb +152 -0
  87. data/lib/nokogiri/css/tokenizer.rex +55 -0
  88. data/lib/nokogiri/css/xpath_visitor.rb +171 -0
  89. data/lib/nokogiri/decorators/slop.rb +35 -0
  90. data/lib/nokogiri/html.rb +36 -0
  91. data/lib/nokogiri/html/builder.rb +35 -0
  92. data/lib/nokogiri/html/document.rb +213 -0
  93. data/lib/nokogiri/html/document_fragment.rb +41 -0
  94. data/lib/nokogiri/html/element_description.rb +23 -0
  95. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  96. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  97. data/lib/nokogiri/html/sax/parser.rb +52 -0
  98. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  99. data/lib/nokogiri/syntax_error.rb +4 -0
  100. data/lib/nokogiri/version.rb +88 -0
  101. data/lib/nokogiri/xml.rb +67 -0
  102. data/lib/nokogiri/xml/attr.rb +14 -0
  103. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  104. data/lib/nokogiri/xml/builder.rb +426 -0
  105. data/lib/nokogiri/xml/cdata.rb +11 -0
  106. data/lib/nokogiri/xml/character_data.rb +7 -0
  107. data/lib/nokogiri/xml/document.rb +234 -0
  108. data/lib/nokogiri/xml/document_fragment.rb +98 -0
  109. data/lib/nokogiri/xml/dtd.rb +22 -0
  110. data/lib/nokogiri/xml/element_content.rb +36 -0
  111. data/lib/nokogiri/xml/element_decl.rb +13 -0
  112. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  113. data/lib/nokogiri/xml/namespace.rb +13 -0
  114. data/lib/nokogiri/xml/node.rb +915 -0
  115. data/lib/nokogiri/xml/node/save_options.rb +61 -0
  116. data/lib/nokogiri/xml/node_set.rb +357 -0
  117. data/lib/nokogiri/xml/notation.rb +6 -0
  118. data/lib/nokogiri/xml/parse_options.rb +93 -0
  119. data/lib/nokogiri/xml/pp.rb +2 -0
  120. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  121. data/lib/nokogiri/xml/pp/node.rb +56 -0
  122. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  123. data/lib/nokogiri/xml/reader.rb +112 -0
  124. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  125. data/lib/nokogiri/xml/sax.rb +4 -0
  126. data/lib/nokogiri/xml/sax/document.rb +164 -0
  127. data/lib/nokogiri/xml/sax/parser.rb +115 -0
  128. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  129. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  130. data/lib/nokogiri/xml/schema.rb +63 -0
  131. data/lib/nokogiri/xml/syntax_error.rb +47 -0
  132. data/lib/nokogiri/xml/text.rb +9 -0
  133. data/lib/nokogiri/xml/xpath.rb +10 -0
  134. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  135. data/lib/nokogiri/xml/xpath_context.rb +16 -0
  136. data/lib/nokogiri/xslt.rb +52 -0
  137. data/lib/nokogiri/xslt/stylesheet.rb +25 -0
  138. data/lib/xsd/xmlparser/nokogiri.rb +90 -0
  139. data/nokogiri_help_responses.md +40 -0
  140. data/tasks/cross_compile.rb +152 -0
  141. data/tasks/nokogiri.org.rb +18 -0
  142. data/tasks/test.rb +94 -0
  143. data/test/css/test_nthiness.rb +159 -0
  144. data/test/css/test_parser.rb +303 -0
  145. data/test/css/test_tokenizer.rb +198 -0
  146. data/test/css/test_xpath_visitor.rb +85 -0
  147. data/test/decorators/test_slop.rb +16 -0
  148. data/test/files/2ch.html +108 -0
  149. data/test/files/address_book.rlx +12 -0
  150. data/test/files/address_book.xml +10 -0
  151. data/test/files/bar/bar.xsd +4 -0
  152. data/test/files/dont_hurt_em_why.xml +422 -0
  153. data/test/files/encoding.html +82 -0
  154. data/test/files/encoding.xhtml +84 -0
  155. data/test/files/exslt.xml +8 -0
  156. data/test/files/exslt.xslt +35 -0
  157. data/test/files/foo/foo.xsd +4 -0
  158. data/test/files/metacharset.html +10 -0
  159. data/test/files/noencoding.html +47 -0
  160. data/test/files/po.xml +32 -0
  161. data/test/files/po.xsd +66 -0
  162. data/test/files/shift_jis.html +10 -0
  163. data/test/files/shift_jis.xml +5 -0
  164. data/test/files/snuggles.xml +3 -0
  165. data/test/files/staff.dtd +10 -0
  166. data/test/files/staff.xml +59 -0
  167. data/test/files/staff.xslt +32 -0
  168. data/test/files/tlm.html +850 -0
  169. data/test/files/valid_bar.xml +2 -0
  170. data/test/helper.rb +173 -0
  171. data/test/html/sax/test_parser.rb +139 -0
  172. data/test/html/sax/test_parser_context.rb +48 -0
  173. data/test/html/test_builder.rb +165 -0
  174. data/test/html/test_document.rb +472 -0
  175. data/test/html/test_document_encoding.rb +138 -0
  176. data/test/html/test_document_fragment.rb +255 -0
  177. data/test/html/test_element_description.rb +101 -0
  178. data/test/html/test_named_characters.rb +14 -0
  179. data/test/html/test_node.rb +193 -0
  180. data/test/html/test_node_encoding.rb +27 -0
  181. data/test/test_convert_xpath.rb +135 -0
  182. data/test/test_css_cache.rb +45 -0
  183. data/test/test_encoding_handler.rb +46 -0
  184. data/test/test_memory_leak.rb +72 -0
  185. data/test/test_nokogiri.rb +133 -0
  186. data/test/test_reader.rb +425 -0
  187. data/test/test_soap4r_sax.rb +52 -0
  188. data/test/test_xslt_transforms.rb +193 -0
  189. data/test/xml/node/test_save_options.rb +28 -0
  190. data/test/xml/node/test_subclass.rb +44 -0
  191. data/test/xml/sax/test_parser.rb +338 -0
  192. data/test/xml/sax/test_parser_context.rb +113 -0
  193. data/test/xml/sax/test_push_parser.rb +156 -0
  194. data/test/xml/test_attr.rb +65 -0
  195. data/test/xml/test_attribute_decl.rb +86 -0
  196. data/test/xml/test_builder.rb +227 -0
  197. data/test/xml/test_cdata.rb +50 -0
  198. data/test/xml/test_comment.rb +29 -0
  199. data/test/xml/test_document.rb +697 -0
  200. data/test/xml/test_document_encoding.rb +26 -0
  201. data/test/xml/test_document_fragment.rb +192 -0
  202. data/test/xml/test_dtd.rb +107 -0
  203. data/test/xml/test_dtd_encoding.rb +33 -0
  204. data/test/xml/test_element_content.rb +56 -0
  205. data/test/xml/test_element_decl.rb +73 -0
  206. data/test/xml/test_entity_decl.rb +122 -0
  207. data/test/xml/test_entity_reference.rb +21 -0
  208. data/test/xml/test_namespace.rb +70 -0
  209. data/test/xml/test_node.rb +917 -0
  210. data/test/xml/test_node_attributes.rb +34 -0
  211. data/test/xml/test_node_encoding.rb +107 -0
  212. data/test/xml/test_node_reparenting.rb +334 -0
  213. data/test/xml/test_node_set.rb +742 -0
  214. data/test/xml/test_parse_options.rb +52 -0
  215. data/test/xml/test_processing_instruction.rb +30 -0
  216. data/test/xml/test_reader_encoding.rb +126 -0
  217. data/test/xml/test_relax_ng.rb +60 -0
  218. data/test/xml/test_schema.rb +94 -0
  219. data/test/xml/test_syntax_error.rb +12 -0
  220. data/test/xml/test_text.rb +47 -0
  221. data/test/xml/test_unparented_node.rb +381 -0
  222. data/test/xml/test_xpath.rb +237 -0
  223. data/test/xslt/test_custom_functions.rb +94 -0
  224. data/test/xslt/test_exception_handling.rb +37 -0
  225. metadata +548 -0
@@ -0,0 +1,198 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require "helper"
4
+
5
+ module Nokogiri
6
+ module CSS
7
+ class Tokenizer
8
+ alias :scan :scan_setup
9
+ end
10
+ end
11
+ end
12
+
13
+ module Nokogiri
14
+ module CSS
15
+ class TestTokenizer < Nokogiri::TestCase
16
+ def setup
17
+ super
18
+ @scanner = Nokogiri::CSS::Tokenizer.new
19
+ end
20
+
21
+ def test_has
22
+ @scanner.scan("a:has(b)")
23
+ assert_tokens(
24
+ [[:IDENT, "a"], [":", ":"], [:HAS, "has("], [:IDENT, "b"], [:RPAREN, ")"]],
25
+ @scanner)
26
+ end
27
+
28
+ def test_unicode
29
+ @scanner.scan("a日本語")
30
+ assert_tokens([[:IDENT, 'a日本語']], @scanner)
31
+ end
32
+
33
+ def test_tokenize_bad_single_quote
34
+ @scanner.scan("'")
35
+ assert_tokens([["'", "'"]], @scanner)
36
+ end
37
+
38
+ def test_not_equal
39
+ @scanner.scan("h1[a!='Tender Lovemaking']")
40
+ assert_tokens([ [:IDENT, 'h1'],
41
+ [:LSQUARE, '['],
42
+ [:IDENT, 'a'],
43
+ [:NOT_EQUAL, '!='],
44
+ [:STRING, "'Tender Lovemaking'"],
45
+ [:RSQUARE, ']'],
46
+ ], @scanner)
47
+ end
48
+
49
+ def test_negation
50
+ @scanner.scan("p:not(.a)")
51
+ assert_tokens([ [:IDENT, 'p'],
52
+ [:NOT, ':not('],
53
+ ['.', '.'],
54
+ [:IDENT, 'a'],
55
+ [:RPAREN, ')'],
56
+ ], @scanner)
57
+ end
58
+
59
+ def test_function
60
+ @scanner.scan("script comment()")
61
+ assert_tokens([ [:IDENT, 'script'],
62
+ [:S, ' '],
63
+ [:FUNCTION, 'comment('],
64
+ [:RPAREN, ')'],
65
+ ], @scanner)
66
+ end
67
+
68
+ def test_preceding_selector
69
+ @scanner.scan("E ~ F")
70
+ assert_tokens([ [:IDENT, 'E'],
71
+ [:TILDE, ' ~ '],
72
+ [:IDENT, 'F'],
73
+ ], @scanner)
74
+ end
75
+
76
+ def test_scan_attribute_string
77
+ @scanner.scan("h1[a='Tender Lovemaking']")
78
+ assert_tokens([ [:IDENT, 'h1'],
79
+ [:LSQUARE, '['],
80
+ [:IDENT, 'a'],
81
+ [:EQUAL, '='],
82
+ [:STRING, "'Tender Lovemaking'"],
83
+ [:RSQUARE, ']'],
84
+ ], @scanner)
85
+ @scanner.scan('h1[a="Tender Lovemaking"]')
86
+ assert_tokens([ [:IDENT, 'h1'],
87
+ [:LSQUARE, '['],
88
+ [:IDENT, 'a'],
89
+ [:EQUAL, '='],
90
+ [:STRING, '"Tender Lovemaking"'],
91
+ [:RSQUARE, ']'],
92
+ ], @scanner)
93
+ end
94
+
95
+ def test_scan_id
96
+ @scanner.scan('#foo')
97
+ assert_tokens([ [:HASH, '#foo'] ], @scanner)
98
+ end
99
+
100
+ def test_scan_pseudo
101
+ @scanner.scan('a:visited')
102
+ assert_tokens([ [:IDENT, 'a'],
103
+ [':', ':'],
104
+ [:IDENT, 'visited']
105
+ ], @scanner)
106
+ end
107
+
108
+ def test_scan_star
109
+ @scanner.scan('*')
110
+ assert_tokens([ ['*', '*'], ], @scanner)
111
+ end
112
+
113
+ def test_scan_class
114
+ @scanner.scan('x.awesome')
115
+ assert_tokens([ [:IDENT, 'x'],
116
+ ['.', '.'],
117
+ [:IDENT, 'awesome'],
118
+ ], @scanner)
119
+ end
120
+
121
+ def test_scan_greater
122
+ @scanner.scan('x > y')
123
+ assert_tokens([ [:IDENT, 'x'],
124
+ [:GREATER, ' > '],
125
+ [:IDENT, 'y']
126
+ ], @scanner)
127
+ end
128
+
129
+ def test_scan_slash
130
+ @scanner.scan('x/y')
131
+ assert_tokens([ [:IDENT, 'x'],
132
+ [:SLASH, '/'],
133
+ [:IDENT, 'y']
134
+ ], @scanner)
135
+ end
136
+
137
+ def test_scan_doubleslash
138
+ @scanner.scan('x//y')
139
+ assert_tokens([ [:IDENT, 'x'],
140
+ [:DOUBLESLASH, '//'],
141
+ [:IDENT, 'y']
142
+ ], @scanner)
143
+ end
144
+
145
+ def test_scan_function_selector
146
+ @scanner.scan('x:eq(0)')
147
+ assert_tokens([ [:IDENT, 'x'],
148
+ [':', ':'],
149
+ [:FUNCTION, 'eq('],
150
+ [:NUMBER, "0"],
151
+ [:RPAREN, ')'],
152
+ ], @scanner)
153
+ end
154
+
155
+ def test_scan_an_plus_b
156
+ @scanner.scan('x:nth-child(5n+3)')
157
+ assert_tokens([ [:IDENT, 'x'],
158
+ [':', ':'],
159
+ [:FUNCTION, 'nth-child('],
160
+ [:NUMBER, '5'],
161
+ [:IDENT, 'n'],
162
+ [:PLUS, '+'],
163
+ [:NUMBER, '3'],
164
+ [:RPAREN, ')'],
165
+ ], @scanner)
166
+
167
+ @scanner.scan('x:nth-child(-1n+3)')
168
+ assert_tokens([ [:IDENT, 'x'],
169
+ [':', ':'],
170
+ [:FUNCTION, 'nth-child('],
171
+ [:NUMBER, '-1'],
172
+ [:IDENT, 'n'],
173
+ [:PLUS, '+'],
174
+ [:NUMBER, '3'],
175
+ [:RPAREN, ')'],
176
+ ], @scanner)
177
+
178
+ @scanner.scan('x:nth-child(-n+3)')
179
+ assert_tokens([ [:IDENT, 'x'],
180
+ [':', ':'],
181
+ [:FUNCTION, 'nth-child('],
182
+ [:IDENT, '-n'],
183
+ [:PLUS, '+'],
184
+ [:NUMBER, '3'],
185
+ [:RPAREN, ')'],
186
+ ], @scanner)
187
+ end
188
+
189
+ def assert_tokens(tokens, scanner)
190
+ toks = []
191
+ while tok = @scanner.next_token
192
+ toks << tok
193
+ end
194
+ assert_equal(tokens, toks)
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,85 @@
1
+ require "helper"
2
+
3
+ module Nokogiri
4
+ module CSS
5
+ class TestXPathVisitor < Nokogiri::TestCase
6
+ def setup
7
+ super
8
+ @parser = Nokogiri::CSS::Parser.new
9
+ end
10
+
11
+ def test_not_simple_selector
12
+ assert_xpath('//ol/*[not(self::li)]', @parser.parse('ol > *:not(li)'))
13
+ end
14
+
15
+ def test_not_last_child
16
+ assert_xpath('//ol/*[not(position() = last())]',
17
+ @parser.parse('ol > *:not(:last-child)'))
18
+ end
19
+
20
+ def test_function_calls_allow_at_params
21
+ assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
22
+ assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
23
+ assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
24
+ end
25
+
26
+ def test_namespace_conversion
27
+ assert_xpath("//aaron:a", @parser.parse('aaron|a'))
28
+ assert_xpath("//a", @parser.parse('|a'))
29
+ end
30
+
31
+ def test_unknown_psuedo_classes_get_pushed_down
32
+ assert_xpath("//a[aaron(.)]", @parser.parse('a:aaron'))
33
+ end
34
+
35
+ def test_unknown_functions_get_dot_plus_args
36
+ assert_xpath("//a[aaron(.)]", @parser.parse('a:aaron()'))
37
+ assert_xpath("//a[aaron(., 12)]", @parser.parse('a:aaron(12)'))
38
+ assert_xpath("//a[aaron(., 12, 1)]", @parser.parse('a:aaron(12, 1)'))
39
+ end
40
+
41
+ def test_class_selectors
42
+ assert_xpath "//*[contains(concat(' ', @class, ' '), ' red ')]",
43
+ @parser.parse(".red")
44
+ end
45
+
46
+ def test_pipe
47
+ assert_xpath "//a[@id = 'Boing' or starts-with(@id, concat('Boing', '-'))]",
48
+ @parser.parse("a[id|='Boing']")
49
+ end
50
+
51
+ def test_custom_functions
52
+ visitor = Class.new(XPathVisitor) do
53
+ attr_accessor :awesome
54
+ def visit_function_aaron node
55
+ @awesome = true
56
+ 'aaron() = 1'
57
+ end
58
+ end.new
59
+ ast = @parser.parse('a:aaron()').first
60
+ assert_equal 'a[aaron() = 1]', visitor.accept(ast)
61
+ assert visitor.awesome
62
+ end
63
+
64
+ def test_custom_psuedo_classes
65
+ visitor = Class.new(XPathVisitor) do
66
+ attr_accessor :awesome
67
+ def visit_pseudo_class_aaron node
68
+ @awesome = true
69
+ 'aaron() = 1'
70
+ end
71
+ end.new
72
+ ast = @parser.parse('a:aaron').first
73
+ assert_equal 'a[aaron() = 1]', visitor.accept(ast)
74
+ assert visitor.awesome
75
+ end
76
+
77
+ def assert_xpath expecteds, asts
78
+ expecteds = [expecteds].flatten
79
+ expecteds.zip(asts).each do |expected, actual|
80
+ assert_equal expected, actual.to_xpath
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,16 @@
1
+ require "helper"
2
+
3
+ module Nokogiri
4
+ class TestSlop < Nokogiri::TestCase
5
+ def test_description_tag
6
+ doc = Nokogiri.Slop(<<-eoxml)
7
+ <item>
8
+ <title>foo</title>
9
+ <description>this is the foo thing</description>
10
+ </item>
11
+ eoxml
12
+ assert doc.item.title
13
+ assert doc.item._description, 'should have description'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,108 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
5
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
6
+ <meta http-equiv="Content-Style-Type" content="text/css" />
7
+ <meta name="Description" CONTENT="�u�n�b�L���O�v����u���ӂ̂������v�܂ł���L���J�o�[���鋐��f���ŒQ�w�Q�����˂�x�ւ悤�����I">
8
+ <meta name="KeyWords" CONTENT="�Q�����˂�, �f����, 2ch, BBS">
9
+ <meta name="Author" CONTENT="�Q�����˂�">
10
+ <meta name="verify-v1" content="hMevVuWJIPYrUj9ItfRJByoLNIpyhnrWaywiH+IFocU=" />
11
+ <title>�Q�����˂�f���‚ւ悤����</title>
12
+ <style type="text/css" media="all">
13
+ @import url(2ch_top.css);
14
+ </style>
15
+ <script>
16
+ <!--
17
+ function fcs(){document.f.STR.focus();}
18
+ -->
19
+ </script>
20
+ </head>
21
+
22
+ <body onLoad="document.f.STR.focus()">
23
+
24
+ <div id="wrapper">
25
+ <div id="header">
26
+ <div id="header_inside">
27
+ <div class="header_left">
28
+ <a href="http://www2.2ch.net/2ch.html"><img src="images/2ch_logo.gif" width="151" height="40" alt="�Q�����˂�" align="middle" border="0" /><a href="http://www2.2ch.net/2ch.html">�f����</a>�b
29
+ <a href="http://c.2ch.net/">imode</a>�b<a href="http://orz.2ch.io/top.html">�g��orz</a>�b<a href="http://p2.2ch.net/">�r���[�Ap2</a>
30
+ </div>
31
+
32
+ <div class="senna_banner">
33
+
34
+ <a href="http://razil.jp/product/senna/"><img src="images/senna88x31.gif" width="88" height="31" alt="Senna" align="middle" border="0" /></a>
35
+ </div>
36
+ <div class="header_right">
37
+ <!---find 2ch form --->
38
+ <form method=GET name=f action="http://find.2ch.net/" style="margin:0px">
39
+ <input size=25 name=STR value="" class="form_input">
40
+ <select name="TYPE" class="form_select">
41
+ <option value="BODY">�{��</option>
42
+
43
+ <option value="TITLE" selected>�X���b�h�^�C�g��</option>
44
+ <option value="POSTERS">���e��</option>
45
+ </select>
46
+ <input type="image" src="images/search_button.gif" alt="����" class="form_button"><br />
47
+ <input type=hidden name=BBS value=ALL>
48
+
49
+ <input type=hidden name=ENCODING value=SJIS>
50
+ <input type=hidden name=COUNT value=50>
51
+ <div class="caption">�{�������⌟���ݒ��<a href="http://find.2ch.net/moritapo/notlogin.php">���O�C��</a><a href="http://find.2ch.net/moritapo/welcome/">&raquo;�ڍ�</a></div>
52
+
53
+ </form>
54
+ </div>
55
+ </div><!--- header_inside --->
56
+ </div><!--- end of header--->
57
+
58
+ <div id="under_header">
59
+ <a href="http://newsnavi.2ch.net/">�j���[�X</a>�b<a href="http://headline.2ch.net/bbynews/">�w�b�h���C��</a>�b<a href="http://epg.2ch.net/">�e���r��</a>�b<a href="http://www.2ch.net/kakolog.html">�ߋ����O�q��</a>
60
+
61
+ </div><!--- end of under header--->
62
+
63
+ <div id="main">
64
+ <iframe src="http://cast.texpo.jp/2chtop/main_frame.html" width="100%" height="550" scrolling="no" border="0" frameborder="0"></iframe>
65
+ </div><!--- end of main--->
66
+
67
+ <div id="footer_menu">
68
+ <div class="guide">
69
+ <a href="http://info.2ch.net/guide/">�g����������</a>�b<a href="http://info.2ch.net/guide/adv.html#saku_guide">�폜�K�C�h���C��</a>�b<a href="http://www2.2ch.net/2ch2.html">�g���Ń��j���[</a>�b<a href="http://info.2ch.net/blog.html">�Ђ�䂫���L</a>�b<a href="http://www.2ch.net/ad.html">�L���̂��ē�</a>
70
+
71
+ </div>
72
+
73
+ <div class="service">
74
+ <iframe src="http://cast.texpo.jp/2chtop/moritapo_frame.html" width="100%" height="50" scrolling="no" border="0" frameborder="0"></iframe>
75
+ </div>
76
+
77
+ <div class="banner">
78
+ <a href=http://livede55.com/ target="_blank"><img
79
+ src="http://www2.livede55.com/2ch_468_60_13.gif"
80
+ width="468" height="60" border="0" alt=���C�u�`���b�g></a><br>
81
+ <br>
82
+ <A href="http://www.bb-chat.tv/" target=_blank><IMG height=60 src="http://img.bbchat.tv/images/bannar/46860-3.gif" width=468 border=0></A><br>
83
+ </div>
84
+
85
+ <div class="condition">
86
+ �Q�����˂�̂����p�͗��p�Ҋe�ʂ̂����f�ɂ��C�����Ă��܂��b<a href="precautions.html">2ch�̃f�[�^���p�ɂ‚���</a>
87
+
88
+ </div>
89
+ </div><!--- end of footer_menu--->
90
+
91
+
92
+ <div id="footer">
93
+ <div class="footer_left">
94
+ <a href="http://www.bunka.go.jp/jiyuriyo/" target="_blank">
95
+ <img src="http://www.dd.iij4u.or.jp/~cap/y_3copyok.jpg" width="184" height="31" border="0" alt="���R���p�}�[�N" /></a>
96
+ </div>
97
+
98
+ <div class="footer_right">
99
+ <a href="http://count.2ch.net/?index" target="_blank">
100
+ <img src="http://count.2ch.net/ct.php/index" width="88" height="31" border="0" alt="���������J�E���^�["></a>
101
+
102
+
103
+ </div>
104
+ </div><!---end of footer--->
105
+
106
+ </div><!--- end of wrapper--->
107
+ </body>
108
+ </html>
@@ -0,0 +1,12 @@
1
+ <element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
2
+ <oneOrMore>
3
+ <element name="card">
4
+ <element name="name">
5
+ <text/>
6
+ </element>
7
+ <element name="email">
8
+ <text/>
9
+ </element>
10
+ </element>
11
+ </oneOrMore>
12
+ </element>
@@ -0,0 +1,10 @@
1
+ <addressBook>
2
+ <card>
3
+ <name>John Smith</name>
4
+ <email>js@example.com</email>
5
+ </card>
6
+ <card>
7
+ <name>Fred Bloggs</name>
8
+ <email>fb@example.net</email>
9
+ </card>
10
+ </addressBook>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <xsd:element name="bar"/>
4
+ </xsd:schema>
@@ -0,0 +1,422 @@
1
+ <statuses type="array">
2
+ <status>
3
+ <created_at>Sat Aug 09 05:38:12 +0000 2008</created_at>
4
+ <id>882281424</id>
5
+ <text>I so just thought the guy lighting the Olympic torch was falling when he began to run on the wall. Wow that would have been catastrophic.</text>
6
+ <source>web</source>
7
+ <truncated>false</truncated>
8
+ <in_reply_to_status_id></in_reply_to_status_id>
9
+ <in_reply_to_user_id></in_reply_to_user_id>
10
+ <favorited></favorited>
11
+ <user>
12
+ <id>4243</id>
13
+ <name>John Nunemaker</name>
14
+ <screen_name>jnunemaker</screen_name>
15
+ <location>Mishawaka, IN, US</location>
16
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
17
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
18
+ <url>http://addictedtonew.com</url>
19
+ <protected>false</protected>
20
+ <followers_count>486</followers_count>
21
+ </user>
22
+ </status>
23
+ <status>
24
+ <created_at>Sat Aug 09 02:04:56 +0000 2008</created_at>
25
+ <id>882145663</id>
26
+ <text>@ijonas - wow that stuff sounds sweet</text>
27
+ <source>web</source>
28
+ <truncated>false</truncated>
29
+ <in_reply_to_status_id>882005142</in_reply_to_status_id>
30
+ <in_reply_to_user_id>1000471</in_reply_to_user_id>
31
+ <favorited></favorited>
32
+ <user>
33
+ <id>4243</id>
34
+ <name>John Nunemaker</name>
35
+ <screen_name>jnunemaker</screen_name>
36
+ <location>Mishawaka, IN, US</location>
37
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
38
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
39
+ <url>http://addictedtonew.com</url>
40
+ <protected>false</protected>
41
+ <followers_count>486</followers_count>
42
+ </user>
43
+ </status>
44
+ <status>
45
+ <created_at>Sat Aug 09 01:36:41 +0000 2008</created_at>
46
+ <id>882126691</id>
47
+ <text>Steph is driving Sally for the first time. I'm proud of her.</text>
48
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
49
+ <truncated>false</truncated>
50
+ <in_reply_to_status_id></in_reply_to_status_id>
51
+ <in_reply_to_user_id></in_reply_to_user_id>
52
+ <favorited></favorited>
53
+ <user>
54
+ <id>4243</id>
55
+ <name>John Nunemaker</name>
56
+ <screen_name>jnunemaker</screen_name>
57
+ <location>Mishawaka, IN, US</location>
58
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
59
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
60
+ <url>http://addictedtonew.com</url>
61
+ <protected>false</protected>
62
+ <followers_count>486</followers_count>
63
+ </user>
64
+ </status>
65
+ <status>
66
+ <created_at>Fri Aug 08 22:21:21 +0000 2008</created_at>
67
+ <id>881987762</id>
68
+ <text>@ijonas - what are you making with couchdb, ruby and httparty?</text>
69
+ <source>web</source>
70
+ <truncated>false</truncated>
71
+ <in_reply_to_status_id>881947237</in_reply_to_status_id>
72
+ <in_reply_to_user_id>1000471</in_reply_to_user_id>
73
+ <favorited></favorited>
74
+ <user>
75
+ <id>4243</id>
76
+ <name>John Nunemaker</name>
77
+ <screen_name>jnunemaker</screen_name>
78
+ <location>Mishawaka, IN, US</location>
79
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
80
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
81
+ <url>http://addictedtonew.com</url>
82
+ <protected>false</protected>
83
+ <followers_count>486</followers_count>
84
+ </user>
85
+ </status>
86
+ <status>
87
+ <created_at>Fri Aug 08 14:20:14 +0000 2008</created_at>
88
+ <id>881535796</id>
89
+ <text>@oaknd1 - delete it off phone and iTunes.</text>
90
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
91
+ <truncated>false</truncated>
92
+ <in_reply_to_status_id>881526234</in_reply_to_status_id>
93
+ <in_reply_to_user_id>3038211</in_reply_to_user_id>
94
+ <favorited></favorited>
95
+ <user>
96
+ <id>4243</id>
97
+ <name>John Nunemaker</name>
98
+ <screen_name>jnunemaker</screen_name>
99
+ <location>Mishawaka, IN, US</location>
100
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
101
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
102
+ <url>http://addictedtonew.com</url>
103
+ <protected>false</protected>
104
+ <followers_count>486</followers_count>
105
+ </user>
106
+ </status>
107
+ <status>
108
+ <created_at>Fri Aug 08 14:07:29 +0000 2008</created_at>
109
+ <id>881522394</id>
110
+ <text>Listening to U2 "beautiful day" in honor of it being such a beautiful day.</text>
111
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
112
+ <truncated>false</truncated>
113
+ <in_reply_to_status_id></in_reply_to_status_id>
114
+ <in_reply_to_user_id></in_reply_to_user_id>
115
+ <favorited></favorited>
116
+ <user>
117
+ <id>4243</id>
118
+ <name>John Nunemaker</name>
119
+ <screen_name>jnunemaker</screen_name>
120
+ <location>Mishawaka, IN, US</location>
121
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
122
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
123
+ <url>http://addictedtonew.com</url>
124
+ <protected>false</protected>
125
+ <followers_count>486</followers_count>
126
+ </user>
127
+ </status>
128
+ <status>
129
+ <created_at>Fri Aug 08 14:06:44 +0000 2008</created_at>
130
+ <id>881521592</id>
131
+ <text>@lizsmc1 - hi! (just passed her on the road)</text>
132
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
133
+ <truncated>false</truncated>
134
+ <in_reply_to_status_id>881519558</in_reply_to_status_id>
135
+ <in_reply_to_user_id>11485452</in_reply_to_user_id>
136
+ <favorited></favorited>
137
+ <user>
138
+ <id>4243</id>
139
+ <name>John Nunemaker</name>
140
+ <screen_name>jnunemaker</screen_name>
141
+ <location>Mishawaka, IN, US</location>
142
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
143
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
144
+ <url>http://addictedtonew.com</url>
145
+ <protected>false</protected>
146
+ <followers_count>486</followers_count>
147
+ </user>
148
+ </status>
149
+ <status>
150
+ <created_at>Fri Aug 08 13:59:35 +0000 2008</created_at>
151
+ <id>881514030</id>
152
+ <text>Beautiful day for a motorcycle ride.</text>
153
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
154
+ <truncated>false</truncated>
155
+ <in_reply_to_status_id></in_reply_to_status_id>
156
+ <in_reply_to_user_id></in_reply_to_user_id>
157
+ <favorited></favorited>
158
+ <user>
159
+ <id>4243</id>
160
+ <name>John Nunemaker</name>
161
+ <screen_name>jnunemaker</screen_name>
162
+ <location>Mishawaka, IN, US</location>
163
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
164
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
165
+ <url>http://addictedtonew.com</url>
166
+ <protected>false</protected>
167
+ <followers_count>486</followers_count>
168
+ </user>
169
+ </status>
170
+ <status>
171
+ <created_at>Fri Aug 08 13:45:21 +0000 2008</created_at>
172
+ <id>881499439</id>
173
+ <text>@lizamc1 - no way! Politos will be missed. I remember eating a whole garlic pizza there with Joe.</text>
174
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
175
+ <truncated>false</truncated>
176
+ <in_reply_to_status_id></in_reply_to_status_id>
177
+ <in_reply_to_user_id></in_reply_to_user_id>
178
+ <favorited></favorited>
179
+ <user>
180
+ <id>4243</id>
181
+ <name>John Nunemaker</name>
182
+ <screen_name>jnunemaker</screen_name>
183
+ <location>Mishawaka, IN, US</location>
184
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
185
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
186
+ <url>http://addictedtonew.com</url>
187
+ <protected>false</protected>
188
+ <followers_count>486</followers_count>
189
+ </user>
190
+ </status>
191
+ <status>
192
+ <created_at>Fri Aug 08 13:41:50 +0000 2008</created_at>
193
+ <id>881496024</id>
194
+ <text>Riding my motorcyle to campus. Using the library basement for a meeting.</text>
195
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
196
+ <truncated>false</truncated>
197
+ <in_reply_to_status_id></in_reply_to_status_id>
198
+ <in_reply_to_user_id></in_reply_to_user_id>
199
+ <favorited></favorited>
200
+ <user>
201
+ <id>4243</id>
202
+ <name>John Nunemaker</name>
203
+ <screen_name>jnunemaker</screen_name>
204
+ <location>Mishawaka, IN, US</location>
205
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
206
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
207
+ <url>http://addictedtonew.com</url>
208
+ <protected>false</protected>
209
+ <followers_count>486</followers_count>
210
+ </user>
211
+ </status>
212
+ <status>
213
+ <created_at>Thu Aug 07 22:52:20 +0000 2008</created_at>
214
+ <id>880896190</id>
215
+ <text>Scraping super glue off my finger with a knife.</text>
216
+ <source>web</source>
217
+ <truncated>false</truncated>
218
+ <in_reply_to_status_id></in_reply_to_status_id>
219
+ <in_reply_to_user_id></in_reply_to_user_id>
220
+ <favorited></favorited>
221
+ <user>
222
+ <id>4243</id>
223
+ <name>John Nunemaker</name>
224
+ <screen_name>jnunemaker</screen_name>
225
+ <location>Mishawaka, IN, US</location>
226
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
227
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
228
+ <url>http://addictedtonew.com</url>
229
+ <protected>false</protected>
230
+ <followers_count>486</followers_count>
231
+ </user>
232
+ </status>
233
+ <status>
234
+ <created_at>Thu Aug 07 22:14:35 +0000 2008</created_at>
235
+ <id>880866160</id>
236
+ <text>So cold...Starbucks north side, you win the day, but I shall bring a sweatshirt to our next battle!</text>
237
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
238
+ <truncated>false</truncated>
239
+ <in_reply_to_status_id></in_reply_to_status_id>
240
+ <in_reply_to_user_id></in_reply_to_user_id>
241
+ <favorited></favorited>
242
+ <user>
243
+ <id>4243</id>
244
+ <name>John Nunemaker</name>
245
+ <screen_name>jnunemaker</screen_name>
246
+ <location>Mishawaka, IN, US</location>
247
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
248
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
249
+ <url>http://addictedtonew.com</url>
250
+ <protected>false</protected>
251
+ <followers_count>486</followers_count>
252
+ </user>
253
+ </status>
254
+ <status>
255
+ <created_at>Thu Aug 07 17:25:40 +0000 2008</created_at>
256
+ <id>880610064</id>
257
+ <text>Headed home for a bit to get my headphones and then to the north side to meet @orderedlist.</text>
258
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
259
+ <truncated>false</truncated>
260
+ <in_reply_to_status_id></in_reply_to_status_id>
261
+ <in_reply_to_user_id></in_reply_to_user_id>
262
+ <favorited></favorited>
263
+ <user>
264
+ <id>4243</id>
265
+ <name>John Nunemaker</name>
266
+ <screen_name>jnunemaker</screen_name>
267
+ <location>Mishawaka, IN, US</location>
268
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
269
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
270
+ <url>http://addictedtonew.com</url>
271
+ <protected>false</protected>
272
+ <followers_count>485</followers_count>
273
+ </user>
274
+ </status>
275
+ <status>
276
+ <created_at>Thu Aug 07 17:15:59 +0000 2008</created_at>
277
+ <id>880600278</id>
278
+ <text>Panera wifi, why do you hate me?</text>
279
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
280
+ <truncated>false</truncated>
281
+ <in_reply_to_status_id></in_reply_to_status_id>
282
+ <in_reply_to_user_id></in_reply_to_user_id>
283
+ <favorited></favorited>
284
+ <user>
285
+ <id>4243</id>
286
+ <name>John Nunemaker</name>
287
+ <screen_name>jnunemaker</screen_name>
288
+ <location>Mishawaka, IN, US</location>
289
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
290
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
291
+ <url>http://addictedtonew.com</url>
292
+ <protected>false</protected>
293
+ <followers_count>485</followers_count>
294
+ </user>
295
+ </status>
296
+ <status>
297
+ <created_at>Thu Aug 07 15:46:25 +0000 2008</created_at>
298
+ <id>880509577</id>
299
+ <text>At panera. Turned my alarm off this morning and woke up late. Oh well.</text>
300
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
301
+ <truncated>false</truncated>
302
+ <in_reply_to_status_id></in_reply_to_status_id>
303
+ <in_reply_to_user_id></in_reply_to_user_id>
304
+ <favorited></favorited>
305
+ <user>
306
+ <id>4243</id>
307
+ <name>John Nunemaker</name>
308
+ <screen_name>jnunemaker</screen_name>
309
+ <location>Mishawaka, IN, US</location>
310
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
311
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
312
+ <url>http://addictedtonew.com</url>
313
+ <protected>false</protected>
314
+ <followers_count>485</followers_count>
315
+ </user>
316
+ </status>
317
+ <status>
318
+ <created_at>Thu Aug 07 15:01:35 +0000 2008</created_at>
319
+ <id>880463746</id>
320
+ <text>@kloh I remember days like that. Exhausting. Also, NullRiver said to sync again, uninstall app from phone and then resync app. Evidently ...</text>
321
+ <source>web</source>
322
+ <truncated>true</truncated>
323
+ <in_reply_to_status_id>880432701</in_reply_to_status_id>
324
+ <in_reply_to_user_id>10193732</in_reply_to_user_id>
325
+ <favorited></favorited>
326
+ <user>
327
+ <id>4243</id>
328
+ <name>John Nunemaker</name>
329
+ <screen_name>jnunemaker</screen_name>
330
+ <location>Mishawaka, IN, US</location>
331
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
332
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
333
+ <url>http://addictedtonew.com</url>
334
+ <protected>false</protected>
335
+ <followers_count>485</followers_count>
336
+ </user>
337
+ </status>
338
+ <status>
339
+ <created_at>Thu Aug 07 02:52:38 +0000 2008</created_at>
340
+ <id>879986739</id>
341
+ <text>@kloh - I haven't updated my OS so I'm wondering how apple could have made the app stop working. I did contact NullRiver support just no ...</text>
342
+ <source>web</source>
343
+ <truncated>true</truncated>
344
+ <in_reply_to_status_id>879980813</in_reply_to_status_id>
345
+ <in_reply_to_user_id>10193732</in_reply_to_user_id>
346
+ <favorited></favorited>
347
+ <user>
348
+ <id>4243</id>
349
+ <name>John Nunemaker</name>
350
+ <screen_name>jnunemaker</screen_name>
351
+ <location>Mishawaka, IN, US</location>
352
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
353
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
354
+ <url>http://addictedtonew.com</url>
355
+ <protected>false</protected>
356
+ <followers_count>486</followers_count>
357
+ </user>
358
+ </status>
359
+ <status>
360
+ <created_at>Thu Aug 07 02:38:58 +0000 2008</created_at>
361
+ <id>879976045</id>
362
+ <text>@jerry - i went with the pdf download.</text>
363
+ <source>web</source>
364
+ <truncated>false</truncated>
365
+ <in_reply_to_status_id>879878196</in_reply_to_status_id>
366
+ <in_reply_to_user_id>613</in_reply_to_user_id>
367
+ <favorited></favorited>
368
+ <user>
369
+ <id>4243</id>
370
+ <name>John Nunemaker</name>
371
+ <screen_name>jnunemaker</screen_name>
372
+ <location>Mishawaka, IN, US</location>
373
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
374
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
375
+ <url>http://addictedtonew.com</url>
376
+ <protected>false</protected>
377
+ <followers_count>486</followers_count>
378
+ </user>
379
+ </status>
380
+ <status>
381
+ <created_at>Thu Aug 07 02:31:26 +0000 2008</created_at>
382
+ <id>879969851</id>
383
+ <text>@kloh - it worked at home for multiple tests and just stopped when I acyltually needed it.</text>
384
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
385
+ <truncated>false</truncated>
386
+ <in_reply_to_status_id>879968483</in_reply_to_status_id>
387
+ <in_reply_to_user_id>10193732</in_reply_to_user_id>
388
+ <favorited></favorited>
389
+ <user>
390
+ <id>4243</id>
391
+ <name>John Nunemaker</name>
392
+ <screen_name>jnunemaker</screen_name>
393
+ <location>Mishawaka, IN, US</location>
394
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
395
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
396
+ <url>http://addictedtonew.com</url>
397
+ <protected>false</protected>
398
+ <followers_count>486</followers_count>
399
+ </user>
400
+ </status>
401
+ <status>
402
+ <created_at>Thu Aug 07 01:18:28 +0000 2008</created_at>
403
+ <id>879913748</id>
404
+ <text>Netshare will no longer start up for me. Of course it borks the first time I actually want to use it.</text>
405
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
406
+ <truncated>false</truncated>
407
+ <in_reply_to_status_id></in_reply_to_status_id>
408
+ <in_reply_to_user_id></in_reply_to_user_id>
409
+ <favorited></favorited>
410
+ <user>
411
+ <id>4243</id>
412
+ <name>John Nunemaker</name>
413
+ <screen_name>jnunemaker</screen_name>
414
+ <location>Mishawaka, IN, US</location>
415
+ <description>Loves his wife, ruby, notre dame football and iu basketball</description>
416
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53781608/Photo_75_normal.jpg</profile_image_url>
417
+ <url>http://addictedtonew.com</url>
418
+ <protected>false</protected>
419
+ <followers_count>486</followers_count>
420
+ </user>
421
+ </status>
422
+ </statuses>