multisax 0.0.0.2 → 0.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.rdoc → README.md} +34 -2
- data/VERSION +1 -1
- data/lib/multisax.rb +1 -1
- data/multisax.gemspec +3 -3
- data/spec/multisax_spec.rb +5 -0
- metadata +4 -4
data/{README.rdoc → README.md}
RENAMED
@@ -1,6 +1,39 @@
|
|
1
1
|
= multisax
|
2
2
|
|
3
|
-
Please check spec/multisax.spec as an example.
|
3
|
+
* Please check spec/multisax.spec as an example.
|
4
|
+
* Complex usage:
|
5
|
+
```ruby
|
6
|
+
listener=MultiSAX::Sax.parse(xml,Class.new{
|
7
|
+
include MultiSAX::Callbacks
|
8
|
+
def initialize
|
9
|
+
@content=Hash.new{|h,k|h[k]=[]}
|
10
|
+
@current_tag=[]
|
11
|
+
end
|
12
|
+
attr_reader :content
|
13
|
+
|
14
|
+
def sax_tag_start(tag,attrs)
|
15
|
+
@current_tag.push(tag)
|
16
|
+
end
|
17
|
+
def sax_tag_end(tag)
|
18
|
+
if (t=@current_tag.pop)!=tag then raise "xml is malformed /#{t}" end
|
19
|
+
end
|
20
|
+
def sax_cdata(text)
|
21
|
+
@content[@current_tag.last] << text
|
22
|
+
end
|
23
|
+
def sax_text(text)
|
24
|
+
text.strip!
|
25
|
+
@content[@current_tag.last] << text if text.size>0
|
26
|
+
end
|
27
|
+
def sax_comment(text)
|
28
|
+
end
|
29
|
+
}.new)
|
30
|
+
listener.content.each{...}
|
31
|
+
```
|
32
|
+
|
33
|
+
* Optional XML libraries:
|
34
|
+
* gem install ox
|
35
|
+
* gem install libxml-ruby
|
36
|
+
* gem install nokogiri
|
4
37
|
|
5
38
|
== Contributing to multisax
|
6
39
|
|
@@ -16,4 +49,3 @@ Please check spec/multisax.spec as an example.
|
|
16
49
|
|
17
50
|
Copyright (c) 2013 cielavenir. See LICENSE.txt for
|
18
51
|
further details.
|
19
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.0.
|
1
|
+
0.0.0.3
|
data/lib/multisax.rb
CHANGED
@@ -62,6 +62,7 @@ module MultiSAX
|
|
62
62
|
return @@parser
|
63
63
|
end
|
64
64
|
def self.reset() @@parser=nil;@@saxmodule=nil end
|
65
|
+
def self.parser() @@parser end
|
65
66
|
|
66
67
|
#def initialize(listener)
|
67
68
|
def self.parse(body,listener)
|
@@ -159,7 +160,6 @@ module MultiSAX
|
|
159
160
|
end
|
160
161
|
@listener
|
161
162
|
end
|
162
|
-
attr_reader :parser
|
163
163
|
end
|
164
164
|
module Callbacks
|
165
165
|
# https://github.com/sparklemotion/nokogiri/blob/master/lib/nokogiri/xml/sax/document.rb
|
data/multisax.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "multisax"
|
8
|
-
s.version = "0.0.0.
|
8
|
+
s.version = "0.0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["cielavenir"]
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.email = "cielartisan@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
|
-
"README.
|
17
|
+
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
"Gemfile",
|
23
23
|
"Gemfile.lock",
|
24
24
|
"LICENSE.txt",
|
25
|
-
"README.
|
25
|
+
"README.md",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"lib/multisax.rb",
|
data/spec/multisax_spec.rb
CHANGED
@@ -27,26 +27,31 @@ describe "Multisax" do
|
|
27
27
|
it "rexmlstream" do
|
28
28
|
MultiSAX::Sax.reset
|
29
29
|
MultiSAX::Sax.open(:rexmlstream)
|
30
|
+
MultiSAX::Sax.parser.should eq :rexmlstream
|
30
31
|
MultiSAX::Sax.parse(input_xml,MultiSAXTester.new).result.should eq answer
|
31
32
|
end
|
32
33
|
it "rexmlsax2" do
|
33
34
|
MultiSAX::Sax.reset
|
34
35
|
MultiSAX::Sax.open(:rexmlsax2)
|
36
|
+
MultiSAX::Sax.parser.should eq :rexmlsax2
|
35
37
|
MultiSAX::Sax.parse(input_xml,MultiSAXTester.new).result.should eq answer
|
36
38
|
end
|
37
39
|
it "ox" do
|
38
40
|
MultiSAX::Sax.reset
|
39
41
|
MultiSAX::Sax.open(:ox)
|
42
|
+
MultiSAX::Sax.parser.should eq :ox
|
40
43
|
MultiSAX::Sax.parse(input_xml,MultiSAXTester.new).result.should eq answer
|
41
44
|
end
|
42
45
|
it "libxml" do
|
43
46
|
MultiSAX::Sax.reset
|
44
47
|
MultiSAX::Sax.open(:libxml)
|
48
|
+
MultiSAX::Sax.parser.should eq :libxml
|
45
49
|
MultiSAX::Sax.parse(input_xml,MultiSAXTester.new).result.should eq answer
|
46
50
|
end
|
47
51
|
it "nokogiri" do
|
48
52
|
MultiSAX::Sax.reset
|
49
53
|
MultiSAX::Sax.open(:nokogiri)
|
54
|
+
MultiSAX::Sax.parser.should eq :nokogiri
|
50
55
|
MultiSAX::Sax.parse(input_xml,MultiSAXTester.new).result.should eq answer
|
51
56
|
end
|
52
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multisax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.0.
|
4
|
+
version: 0.0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -81,14 +81,14 @@ executables: []
|
|
81
81
|
extensions: []
|
82
82
|
extra_rdoc_files:
|
83
83
|
- LICENSE.txt
|
84
|
-
- README.
|
84
|
+
- README.md
|
85
85
|
files:
|
86
86
|
- .document
|
87
87
|
- .rspec
|
88
88
|
- Gemfile
|
89
89
|
- Gemfile.lock
|
90
90
|
- LICENSE.txt
|
91
|
-
- README.
|
91
|
+
- README.md
|
92
92
|
- Rakefile
|
93
93
|
- VERSION
|
94
94
|
- lib/multisax.rb
|
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
segments:
|
112
112
|
- 0
|
113
|
-
hash: -
|
113
|
+
hash: -2850175293617683642
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
none: false
|
116
116
|
requirements:
|