xamplr-pp 1.0.0 → 1.1.4
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/.document +5 -0
- data/.gitignore +7 -0
- data/Makefile +12 -0
- data/VERSION.yml +3 -2
- data/lapidary-tests/TC_EventTypes.rb +212 -0
- data/lapidary-tests/TC_Features.rb +56 -0
- data/lapidary-tests/TC_Input.rb +240 -0
- data/lapidary-tests/TC_Input000.data +1 -0
- data/lapidary-tests/TC_Input001.data +1 -0
- data/lapidary-tests/TC_Misc.rb +36 -0
- data/lapidary-tests/TC_Namespace.rb +197 -0
- data/lapidary-tests/TC_Parse.rb +655 -0
- data/lapidary-tests/TC_Parse000.data +6 -0
- data/lapidary-tests/TS_xpp.rb +45 -0
- data/lib/xamplr-pp-18x.rb +991 -0
- data/lib/xamplr-pp.rb +183 -126
- data/xamplr-pp.gemspec +74 -0
- metadata +23 -9
- data/test/test_helper.rb +0 -10
- data/test/xamplr_pp_gem_test.rb +0 -7
data/lib/xamplr-pp.rb
CHANGED
@@ -32,54 +32,63 @@ class Xampl_PP
|
|
32
32
|
DOCTYPE = 'DOCTYPE'
|
33
33
|
UNDECIDED_TYPE = 'UNDECIDED_TYPE'
|
34
34
|
|
35
|
+
def first_byte(str)
|
36
|
+
if "9" == RUBY_VERSION[2..2] then
|
37
|
+
str.bytes.first
|
38
|
+
else
|
39
|
+
str[0]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
35
43
|
# 'Features', acutally just processing options
|
36
|
-
|
37
|
-
|
38
|
-
|
44
|
+
attr_accessor :processNamespace #1.9.1 , true
|
45
|
+
attr_accessor :reportNamespaceAttributes #1.9.1 , true
|
46
|
+
attr_accessor :utf8encode #1.9.1 , true
|
39
47
|
|
40
48
|
# the entities that we will recognise
|
41
|
-
|
42
|
-
|
43
|
-
|
49
|
+
attr_accessor :entityMap #1.9.1 , true
|
50
|
+
attr_accessor :unresolvedEntity
|
51
|
+
attr_accessor :resolver #1.9.1 , true
|
44
52
|
|
45
53
|
# some information about where we are
|
46
|
-
|
47
|
-
|
54
|
+
attr_accessor :line
|
55
|
+
attr_accessor :column
|
48
56
|
|
49
57
|
# element information
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
attr_accessor :type
|
59
|
+
attr_accessor :emptyElement
|
60
|
+
attr_accessor :name
|
61
|
+
attr_accessor :qname
|
62
|
+
attr_accessor :namespace
|
63
|
+
attr_accessor :prefix
|
64
|
+
attr_accessor :attributeName
|
65
|
+
attr_accessor :attributeQName
|
66
|
+
attr_accessor :attributeNamespace
|
67
|
+
attr_accessor :attributePrefix
|
68
|
+
attr_accessor :attributeValue
|
69
|
+
|
70
|
+
attr_accessor :text
|
63
71
|
|
64
72
|
# These are not intended for general use (they are not part of the api)
|
65
73
|
|
66
74
|
# open element information
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
75
|
+
attr_accessor :elementName
|
76
|
+
attr_accessor :elementQName
|
77
|
+
attr_accessor :elementNamespace
|
78
|
+
attr_accessor :elementPrefix
|
71
79
|
|
72
80
|
# some pre-compiled patterns
|
73
|
-
|
74
|
-
|
81
|
+
attr_accessor :namePattern #1.9.1 , true
|
82
|
+
attr_accessor :skipWhitespacePattern #1.9.1 , true
|
83
|
+
|
84
|
+
attr_accessor :elementNamespacePrefixStack
|
85
|
+
attr_accessor :elementNamespaceValueStack
|
86
|
+
attr_accessor :elementNamespaceDefaultStack
|
75
87
|
|
76
|
-
|
77
|
-
attr :elementNamespaceValueStack
|
78
|
-
attr :elementNamespaceDefaultStack
|
88
|
+
attr_accessor :standalone
|
79
89
|
|
80
|
-
|
90
|
+
public
|
81
91
|
|
82
|
-
public
|
83
92
|
def startDocument?
|
84
93
|
@type.equal? START_DOCUMENT
|
85
94
|
end
|
@@ -128,18 +137,18 @@ public
|
|
128
137
|
@type.equal? DOCTYPE
|
129
138
|
end
|
130
139
|
|
131
|
-
|
132
|
-
|
133
|
-
|
140
|
+
def resolve(name)
|
141
|
+
raise sprintf("unresolved entity '%s'", name)
|
142
|
+
end
|
134
143
|
|
135
144
|
def input=(v)
|
136
|
-
|
137
|
-
|
145
|
+
setInput(v)
|
146
|
+
end
|
138
147
|
|
139
148
|
def setInput(v)
|
140
|
-
|
141
|
-
|
142
|
-
|
149
|
+
if (defined? @input) and (nil != @input) then
|
150
|
+
@input.close
|
151
|
+
end
|
143
152
|
if nil == v then
|
144
153
|
@input = nil
|
145
154
|
@inputBuffer = nil
|
@@ -187,7 +196,7 @@ public
|
|
187
196
|
|
188
197
|
@emptyElement = false
|
189
198
|
|
190
|
-
|
199
|
+
@errorMessage = nil
|
191
200
|
|
192
201
|
initInput
|
193
202
|
end
|
@@ -198,18 +207,18 @@ public
|
|
198
207
|
|
199
208
|
def nextEvent
|
200
209
|
begin
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
210
|
+
@type = END_DOCUMENT
|
211
|
+
if (nil == @inputBuffer) and (nil == @input) then
|
212
|
+
return @type
|
213
|
+
end
|
205
214
|
|
206
|
-
|
215
|
+
@unresolvedEntity = false
|
207
216
|
|
208
|
-
|
217
|
+
@text = nil
|
209
218
|
|
210
|
-
|
219
|
+
parseNextEvent
|
211
220
|
|
212
|
-
|
221
|
+
return @type
|
213
222
|
rescue Exception => message
|
214
223
|
print message.backtrace.join("\n")
|
215
224
|
if nil != @inputBuffer then
|
@@ -227,11 +236,12 @@ public
|
|
227
236
|
end
|
228
237
|
end
|
229
238
|
|
230
|
-
|
231
|
-
|
232
|
-
|
239
|
+
def depth
|
240
|
+
return @elementName.length
|
241
|
+
end
|
242
|
+
|
243
|
+
private
|
233
244
|
|
234
|
-
private
|
235
245
|
def initialize
|
236
246
|
self.processNamespace = true
|
237
247
|
self.reportNamespaceAttributes = false
|
@@ -247,7 +257,7 @@ private
|
|
247
257
|
self.namePattern = /[^0-9\x00-\x20=\/>\`\.\-\~\!\@\#\$\%\^\&\*\(\)\+\=\]\[\{\}\\\|\;\'\"\,\<\>\/\?][^\x00-\x20=\/>\`\!\@\#\$\%\^\&\*\(\)\+\=\]\[\{\}\\\|\;\'\"\,\<\>\/\?]*/u
|
248
258
|
self.skipWhitespacePattern = /[^\n\r\t ]+/u
|
249
259
|
|
250
|
-
|
260
|
+
#pre ruby 1.8 needs the Regex.new syntax
|
251
261
|
#self.namePattern = Regexp.new(/[^0-9\x00-\x20=\/>\`\.\-\~\!\@\#\$\%\^\&\*\(\)\+\=\]\[\{\}\\\|\;\'\"\,\<\>\/\?][^\x00-\x20=\/>\`\!\@\#\$\%\^\&\*\(\)\+\=\]\[\{\}\\\|\;\'\"\,\<\>\/\?]*/, nil, 'u')
|
252
262
|
#old junk... self.skipWhitespacePattern = Regexp.new(/[^\n\r\t ]+|\x00/, nil, 'u')
|
253
263
|
#self.skipWhitespacePattern = Regexp.new(/[^\n\r\t ]+/, nil, 'u')
|
@@ -264,6 +274,7 @@ private
|
|
264
274
|
@inputBuffer = @nextInputBuffer
|
265
275
|
if nil == @inputBuffer then
|
266
276
|
@inputBuffer = @input.gets
|
277
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } MORE INPUT: #{ @inputBuffer }"
|
267
278
|
@column = 0
|
268
279
|
if nil == @inputBuffer then
|
269
280
|
@inputBufferLength = -1
|
@@ -272,6 +283,7 @@ private
|
|
272
283
|
end
|
273
284
|
@inputBufferLength = @inputBuffer.length
|
274
285
|
@nextInputBuffer = @input.gets
|
286
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } NEXT INPUT: #{ @nextInputBuffer }"
|
275
287
|
end
|
276
288
|
|
277
289
|
def expectold(e)
|
@@ -286,17 +298,35 @@ private
|
|
286
298
|
def expect(e)
|
287
299
|
if (nil == @inputBuffer) or (@inputBufferLength <= @column) then
|
288
300
|
getMoreInput
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
301
|
+
if nil == @inputBuffer then
|
302
|
+
msg = sprintf("unexpectedChar:: expect '%s' got EOF in %s", (''<<e), caller[0])
|
303
|
+
raise msg
|
304
|
+
end
|
293
305
|
end
|
294
306
|
|
295
307
|
c = @inputBuffer[@column]
|
308
|
+
if c.instance_of?(String) then
|
309
|
+
if "9" == RUBY_VERSION[2..2] then
|
310
|
+
c = c.bytes.first
|
311
|
+
else
|
312
|
+
c = c[0]
|
313
|
+
end
|
314
|
+
end
|
315
|
+
if e.instance_of?(String) then
|
316
|
+
if "9" == RUBY_VERSION[2..2] then
|
317
|
+
e = e.bytes.first
|
318
|
+
else
|
319
|
+
e = e[0]
|
320
|
+
end
|
321
|
+
end
|
296
322
|
@column += 1
|
297
|
-
|
298
|
-
|
299
|
-
|
323
|
+
if c == e then
|
324
|
+
return c
|
325
|
+
end
|
326
|
+
|
327
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } EXPECT CLASS: #{ e.class.name }"
|
328
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } GOT CLASS: #{ c.class.name }"
|
329
|
+
|
300
330
|
|
301
331
|
msg = sprintf("unexpectedChar:: expect '%s' got '%s' in %s", (''<<e), (''<<c), caller[0])
|
302
332
|
raise msg
|
@@ -305,12 +335,18 @@ private
|
|
305
335
|
def read
|
306
336
|
if (nil == @inputBuffer) or (@inputBufferLength <= @column) then
|
307
337
|
getMoreInput
|
308
|
-
|
309
|
-
|
310
|
-
|
338
|
+
if nil == @inputBuffer then
|
339
|
+
return nil
|
340
|
+
end
|
311
341
|
end
|
312
342
|
|
313
|
-
|
343
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } READ COLUMN #{ @column } FROM: #{ @inputBuffer }"
|
344
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } READ: #{ @inputBuffer[@column] }"
|
345
|
+
if "9" == RUBY_VERSION[2..2] then
|
346
|
+
c = @inputBuffer[@column].bytes.first # 1.9.1 fixup
|
347
|
+
else
|
348
|
+
c = @inputBuffer[@column]
|
349
|
+
end
|
314
350
|
@column += 1
|
315
351
|
return c
|
316
352
|
end
|
@@ -412,11 +448,11 @@ private
|
|
412
448
|
@textBuffer = ''
|
413
449
|
|
414
450
|
c = read
|
415
|
-
if
|
451
|
+
if first_byte("?") == c then
|
416
452
|
result = PROCESSING_INSTRUCTION
|
417
453
|
demand = nil
|
418
454
|
delimiter = ??
|
419
|
-
elsif
|
455
|
+
elsif first_byte("!") == c then
|
420
456
|
cc = peekAt0
|
421
457
|
if ?- == cc then
|
422
458
|
result = COMMENT
|
@@ -438,8 +474,7 @@ private
|
|
438
474
|
end
|
439
475
|
|
440
476
|
if nil != demand then
|
441
|
-
demand.each_byte do
|
442
|
-
| d |
|
477
|
+
demand.each_byte do | d |
|
443
478
|
expect d
|
444
479
|
end
|
445
480
|
end
|
@@ -465,20 +500,20 @@ private
|
|
465
500
|
return result
|
466
501
|
end
|
467
502
|
|
468
|
-
|
469
|
-
|
470
|
-
|
503
|
+
def parseXMLDecl
|
504
|
+
return nil != @text.index(/^xml/u)
|
505
|
+
end
|
471
506
|
|
472
507
|
def parseDoctype
|
473
508
|
depth = 1
|
474
509
|
quoted = false
|
475
510
|
delimiter = nil
|
476
511
|
entityDefinitionText = ''
|
477
|
-
|
478
|
-
|
512
|
+
havePiece = false
|
513
|
+
internalSubset = false
|
479
514
|
|
480
515
|
@text = ''
|
481
|
-
|
516
|
+
|
482
517
|
while true do
|
483
518
|
c = read
|
484
519
|
case c
|
@@ -522,31 +557,31 @@ private
|
|
522
557
|
if not quoted then
|
523
558
|
depth -= 1
|
524
559
|
#check right here for an entity definition!!!
|
525
|
-
|
560
|
+
havePiece = true
|
526
561
|
#entityDefinitionText = ''
|
527
562
|
if 0 == depth then
|
528
563
|
return
|
529
564
|
end
|
530
565
|
end
|
531
|
-
|
566
|
+
when ?[
|
532
567
|
if not quoted then
|
533
|
-
|
534
|
-
|
568
|
+
internalSubset = true
|
569
|
+
end
|
535
570
|
when nil
|
536
571
|
raise sprintf("unexpected EOF in DOCTYPE (depth: %d, quoted: %s)", depth, quoted)
|
537
572
|
end
|
538
573
|
@text << c
|
539
574
|
entityDefinitionText << c
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
575
|
+
if havePiece then
|
576
|
+
parseDefinition(entityDefinitionText, internalSubset)
|
577
|
+
entityDefinitionText = ''
|
578
|
+
end
|
579
|
+
havePiece = false
|
545
580
|
end
|
546
581
|
end
|
547
582
|
|
548
|
-
|
549
|
-
|
583
|
+
def parseDefinition(defn, internal)
|
584
|
+
end
|
550
585
|
|
551
586
|
def peekType
|
552
587
|
c = peekAt0
|
@@ -590,18 +625,18 @@ private
|
|
590
625
|
# end
|
591
626
|
if c < 0x80 then
|
592
627
|
@textBuffer << c
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
628
|
+
elsif c < 0x0800
|
629
|
+
@textBuffer << ((c >> 6) | 0xC0)
|
630
|
+
@textBuffer << ((c & 0x3F) | 0x80)
|
631
|
+
elsif c < 0x10000
|
632
|
+
@textBuffer << ((c >> 12) | 0xE0)
|
633
|
+
@textBuffer << (((c >> 6) & 0x3F) | 0x80)
|
634
|
+
@textBuffer << ((c & 0x3F) | 0x80)
|
635
|
+
else
|
636
|
+
@textBuffer << ((c >> 18) | 0xF0)
|
637
|
+
@textBuffer << (((c >> 12) & 0x3F) | 0x80)
|
638
|
+
@textBuffer << (((c >> 6) & 0x3F) | 0x80)
|
639
|
+
@textBuffer << ((c & 0x3F) | 0x80)
|
605
640
|
end
|
606
641
|
else
|
607
642
|
@textBuffer << c
|
@@ -614,7 +649,9 @@ private
|
|
614
649
|
@name = ''
|
615
650
|
while true do
|
616
651
|
c = read
|
617
|
-
|
652
|
+
#puts "#{ __FILE__ }:#{ __LINE__ } CLASS OF C: #{ c.class.name }"
|
653
|
+
if first_byte(";") == c then
|
654
|
+
#if ?; == c then # 1.9.1
|
618
655
|
break
|
619
656
|
end
|
620
657
|
if nil == c then
|
@@ -637,7 +674,7 @@ private
|
|
637
674
|
else
|
638
675
|
if nil != @resolver then
|
639
676
|
value = @resolver.resolve(@name)
|
640
|
-
|
677
|
+
else
|
641
678
|
value = resolve(@name)
|
642
679
|
end
|
643
680
|
|
@@ -656,7 +693,7 @@ private
|
|
656
693
|
@qname = readName
|
657
694
|
@textBuffer = ''
|
658
695
|
|
659
|
-
|
696
|
+
multiple = false
|
660
697
|
while true do
|
661
698
|
hasWhitespace = skipWhitespace
|
662
699
|
|
@@ -678,10 +715,10 @@ private
|
|
678
715
|
break
|
679
716
|
end
|
680
717
|
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
718
|
+
if multiple and !hasWhitespace then
|
719
|
+
raise "whitespace is required between attributes"
|
720
|
+
end
|
721
|
+
multiple = true
|
685
722
|
|
686
723
|
aName = readName
|
687
724
|
@textBuffer = ''
|
@@ -689,19 +726,39 @@ private
|
|
689
726
|
raise "name expected (start element)"
|
690
727
|
end
|
691
728
|
|
692
|
-
|
729
|
+
skipWhitespace
|
693
730
|
expect ?=
|
694
|
-
|
731
|
+
skipWhitespace
|
695
732
|
|
696
733
|
delimiter = read
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
734
|
+
#TODO optimise this
|
735
|
+
if "9" == RUBY_VERSION[2..2] then
|
736
|
+
if "'".bytes.first == delimiter then # for vim: '
|
737
|
+
value = parseText(?', true) # for vim: '
|
738
|
+
elsif '"'.bytes.first == delimiter then # for vim: "
|
739
|
+
value = parseText(?", true) # for vim: "
|
740
|
+
else
|
741
|
+
raise "invalidDelimiter"
|
742
|
+
end
|
701
743
|
else
|
702
|
-
|
744
|
+
if ?' == delimiter then # for vim: '
|
745
|
+
value = parseText(?', true) # for vim: '
|
746
|
+
elsif ?" == delimiter then # for vim: "
|
747
|
+
value = parseText(?", true) # for vim: "
|
748
|
+
else
|
749
|
+
raise "invalidDelimiter: '#{ delimiter }'"
|
750
|
+
end
|
703
751
|
end
|
704
752
|
|
753
|
+
# replaced with above for 1.9.1
|
754
|
+
#if ?' == delimiter then # for vim: '
|
755
|
+
# value = parseText(?', true) # for vim: '
|
756
|
+
#elsif ?" == delimiter then # for vim: "
|
757
|
+
# value = parseText(?", true) # for vim: "
|
758
|
+
#else
|
759
|
+
# raise "invalidDelimiter"
|
760
|
+
#end
|
761
|
+
|
705
762
|
@textBuffer = ''
|
706
763
|
|
707
764
|
# skip the end delimiter
|
@@ -763,8 +820,8 @@ private
|
|
763
820
|
def readName
|
764
821
|
@textBuffer = ''
|
765
822
|
if @column != @inputBuffer.index(@namePattern, @column) then
|
766
|
-
|
767
|
-
|
823
|
+
raise "invalid name"
|
824
|
+
end
|
768
825
|
if nil != $& then
|
769
826
|
@textBuffer = $&
|
770
827
|
@column += $&.length
|
@@ -865,7 +922,7 @@ private
|
|
865
922
|
@elementNamespacePrefixStack.push prefixList
|
866
923
|
@elementNamespaceValueStack.push valueList
|
867
924
|
@elementNamespaceDefaultStack.push defaultNamespace
|
868
|
-
|
925
|
+
|
869
926
|
if anyQualifiedAttributes then
|
870
927
|
# run over the attributes and make sure we have them qualified
|
871
928
|
for i in 0..(@attributeName.length-1) do
|
@@ -894,10 +951,10 @@ private
|
|
894
951
|
if nil == prefix then
|
895
952
|
raise "illegalPrefix"
|
896
953
|
end
|
897
|
-
if'xml' == prefix then
|
954
|
+
if 'xml' == prefix then
|
898
955
|
return 'http://www.w3.org/XML/1998/namespace'
|
899
956
|
end
|
900
|
-
if'xmlns' == prefix then
|
957
|
+
if 'xmlns' == prefix then
|
901
958
|
return 'http://www.w3.org/2000/xmlns/'
|
902
959
|
end
|
903
960
|
|
@@ -918,9 +975,9 @@ private
|
|
918
975
|
regex = /[#{s}|<]/u
|
919
976
|
c = findOneOfThese regex
|
920
977
|
while (nil != c) and (delimiter != c) do
|
921
|
-
|
922
|
-
|
923
|
-
|
978
|
+
if ?< == c then
|
979
|
+
raise "illegal character '<'"
|
980
|
+
end
|
924
981
|
if ?& == c then
|
925
982
|
if !resolve then
|
926
983
|
break
|
@@ -948,12 +1005,12 @@ private
|
|
948
1005
|
p = @inputBuffer.index(@skipWhitespacePattern, @column)
|
949
1006
|
|
950
1007
|
if nil != p then
|
951
|
-
|
952
|
-
|
953
|
-
|
1008
|
+
foundSome = (foundSome or (@column != p))
|
1009
|
+
@column = p
|
1010
|
+
return foundSome
|
954
1011
|
end
|
955
1012
|
getMoreInput
|
956
|
-
|
1013
|
+
foundSome = true
|
957
1014
|
end
|
958
1015
|
return foundSome
|
959
1016
|
end
|
@@ -970,11 +1027,11 @@ private
|
|
970
1027
|
end
|
971
1028
|
@textBuffer << @inputBuffer[@column..-1]
|
972
1029
|
getMoreInput
|
973
|
-
|
1030
|
+
return findOneOfTheseSecond(regex)
|
974
1031
|
end
|
975
1032
|
|
976
1033
|
def findOneOfTheseSecond(regex)
|
977
|
-
|
1034
|
+
# know we are at the first of a line
|
978
1035
|
while nil != @inputBuffer do
|
979
1036
|
@column = @inputBuffer.index(regex)
|
980
1037
|
|
data/xamplr-pp.gemspec
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{xamplr-pp}
|
8
|
+
s.version = "1.1.4"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Bob Hutchison"]
|
12
|
+
s.date = %q{2009-12-13}
|
13
|
+
s.email = %q{hutch@recursive.ca}
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"LICENSE",
|
16
|
+
"README.rdoc"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".document",
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
22
|
+
"Makefile",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION.yml",
|
26
|
+
"lapidary-tests/TC_EventTypes.rb",
|
27
|
+
"lapidary-tests/TC_Features.rb",
|
28
|
+
"lapidary-tests/TC_Input.rb",
|
29
|
+
"lapidary-tests/TC_Input000.data",
|
30
|
+
"lapidary-tests/TC_Input001.data",
|
31
|
+
"lapidary-tests/TC_Misc.rb",
|
32
|
+
"lapidary-tests/TC_Namespace.rb",
|
33
|
+
"lapidary-tests/TC_Parse.rb",
|
34
|
+
"lapidary-tests/TC_Parse000.data",
|
35
|
+
"lapidary-tests/TS_xpp.rb",
|
36
|
+
"lib/xampl-pp-dtd.rb",
|
37
|
+
"lib/xampl-pp-wf.rb",
|
38
|
+
"lib/xamplr-pp-18x.rb",
|
39
|
+
"lib/xamplr-pp.rb",
|
40
|
+
"lib/xamplr-pp/ANNOUNCE.TXT",
|
41
|
+
"lib/xamplr-pp/LICENSE",
|
42
|
+
"lib/xamplr-pp/Makefile",
|
43
|
+
"lib/xamplr-pp/examples/parse-wf.rb",
|
44
|
+
"lib/xamplr-pp/examples/parse.rb",
|
45
|
+
"lib/xamplr-pp/license.inc",
|
46
|
+
"lib/xamplr-pp/saxdemo.rb",
|
47
|
+
"lib/xamplr-pp/saxish.rb",
|
48
|
+
"lib/xamplr-pp/saxishHandler.rb",
|
49
|
+
"lib/xamplr-pp/toys/chew.rb",
|
50
|
+
"lib/xamplr-pp/toys/chewMultibyte.rb",
|
51
|
+
"lib/xamplr-pp/toys/dump.rb",
|
52
|
+
"lib/xamplr-pp/xmlName.defn",
|
53
|
+
"lib/xamplr-pp/xpp.rb",
|
54
|
+
"lib/xamplr-pp/xppDeluxe.rb",
|
55
|
+
"lib/xamplr-pp/xppIter.rb",
|
56
|
+
"xamplr-pp.gemspec"
|
57
|
+
]
|
58
|
+
s.homepage = %q{http://github.com/hutch/xamplr-pp}
|
59
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
60
|
+
s.require_paths = ["lib"]
|
61
|
+
s.rubygems_version = %q{1.3.5}
|
62
|
+
s.summary = %q{A pure ruby XML pull parser}
|
63
|
+
|
64
|
+
if s.respond_to? :specification_version then
|
65
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
66
|
+
s.specification_version = 3
|
67
|
+
|
68
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
69
|
+
else
|
70
|
+
end
|
71
|
+
else
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xamplr-pp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Hutchison
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-13 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -23,12 +23,26 @@ extra_rdoc_files:
|
|
23
23
|
- LICENSE
|
24
24
|
- README.rdoc
|
25
25
|
files:
|
26
|
+
- .document
|
27
|
+
- .gitignore
|
26
28
|
- LICENSE
|
29
|
+
- Makefile
|
27
30
|
- README.rdoc
|
28
31
|
- Rakefile
|
29
32
|
- VERSION.yml
|
33
|
+
- lapidary-tests/TC_EventTypes.rb
|
34
|
+
- lapidary-tests/TC_Features.rb
|
35
|
+
- lapidary-tests/TC_Input.rb
|
36
|
+
- lapidary-tests/TC_Input000.data
|
37
|
+
- lapidary-tests/TC_Input001.data
|
38
|
+
- lapidary-tests/TC_Misc.rb
|
39
|
+
- lapidary-tests/TC_Namespace.rb
|
40
|
+
- lapidary-tests/TC_Parse.rb
|
41
|
+
- lapidary-tests/TC_Parse000.data
|
42
|
+
- lapidary-tests/TS_xpp.rb
|
30
43
|
- lib/xampl-pp-dtd.rb
|
31
44
|
- lib/xampl-pp-wf.rb
|
45
|
+
- lib/xamplr-pp-18x.rb
|
32
46
|
- lib/xamplr-pp.rb
|
33
47
|
- lib/xamplr-pp/ANNOUNCE.TXT
|
34
48
|
- lib/xamplr-pp/LICENSE
|
@@ -46,10 +60,11 @@ files:
|
|
46
60
|
- lib/xamplr-pp/xpp.rb
|
47
61
|
- lib/xamplr-pp/xppDeluxe.rb
|
48
62
|
- lib/xamplr-pp/xppIter.rb
|
49
|
-
-
|
50
|
-
- test/xamplr_pp_gem_test.rb
|
63
|
+
- xamplr-pp.gemspec
|
51
64
|
has_rdoc: true
|
52
65
|
homepage: http://github.com/hutch/xamplr-pp
|
66
|
+
licenses: []
|
67
|
+
|
53
68
|
post_install_message:
|
54
69
|
rdoc_options:
|
55
70
|
- --charset=UTF-8
|
@@ -70,10 +85,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
85
|
requirements: []
|
71
86
|
|
72
87
|
rubyforge_project:
|
73
|
-
rubygems_version: 1.3.
|
88
|
+
rubygems_version: 1.3.5
|
74
89
|
signing_key:
|
75
|
-
specification_version:
|
90
|
+
specification_version: 3
|
76
91
|
summary: A pure ruby XML pull parser
|
77
|
-
test_files:
|
78
|
-
|
79
|
-
- test/xamplr_pp_gem_test.rb
|
92
|
+
test_files: []
|
93
|
+
|