sax_stream 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.markdown +3 -3
- data/lib/sax_stream/internal/element_stack.rb +1 -2
- data/lib/sax_stream/internal/sax_handler.rb +14 -7
- data/lib/sax_stream/mapper.rb +2 -2
- data/lib/sax_stream/types/decimal.rb +1 -1
- data/lib/sax_stream/types/integer.rb +1 -1
- metadata +14 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5738222c184e824b0b1df587aa49db89b929d250
|
4
|
+
data.tar.gz: 0d334e709b9546370943ec9db6d1f7c4132b802b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fc90bdaba07bfacd77a4eeff6110a991c354409fa6cf118061ec3e46dd90f49d91037faaef0680bb9f2f7dfb9ba6784b6bd2245dc3cc7ff68c3be8388783b053
|
7
|
+
data.tar.gz: 79f209f1e3eff0c5a19223015c96394e0d98b79d8a3608ad45f902ab48788f37a76ad61230b1beaafdde01dc6b2ecdfc85afc114e4893b2472da39e4abeace3f
|
data/README.markdown
CHANGED
@@ -40,7 +40,7 @@ class Product
|
|
40
40
|
end
|
41
41
|
```
|
42
42
|
|
43
|
-
In this example, Product is a mapping class. It maps to an xml node named "product". Each "attribute" on this product object is defined using the "map" class method. The :to option uses a syntax which is similar to XPath, but not the same. Slashes seperate levels in the XML node
|
43
|
+
In this example, Product is a mapping class. It maps to an xml node named "product". Each "attribute" on this product object is defined using the "map" class method. The :to option uses a syntax which is similar to XPath, but not the same. Slashes seperate levels in the XML node hierarchy. If the data is in an attribute, this is designated by the @symbol. Obviously, attributes must be at the end of the path, as they have no children. This product class is used to parse XML like this:
|
44
44
|
|
45
45
|
```xml
|
46
46
|
<?xml version="1.0" encoding="UTF-8"?>
|
@@ -49,7 +49,7 @@ In this example, Product is a mapping class. It maps to an xml node named "produ
|
|
49
49
|
</product>
|
50
50
|
```
|
51
51
|
|
52
|
-
All data written to your object from the XML will be string, unless you convert
|
52
|
+
All data written to your object from the XML will be a string, unless you convert it. To specify a converter on a field mapping, use the :as option.
|
53
53
|
|
54
54
|
```ruby
|
55
55
|
map :created_at, :to => '@createdAt', :as => DateTime
|
@@ -100,4 +100,4 @@ Author: [Craig Ambrose](http://www.craigambrose.com)
|
|
100
100
|
|
101
101
|
Initial development sponsored by: [List Globally](http://www.listglobally.com)
|
102
102
|
|
103
|
-
Ideas taken from lots of other great libraries, including ROXML, Happymapper, Sax Machine, and of course very reliant on Nokogiri.
|
103
|
+
Ideas taken from lots of other great libraries, including ROXML, Happymapper, Sax Machine, and of course very reliant on Nokogiri.
|
@@ -13,13 +13,20 @@ module SaxStream
|
|
13
13
|
@handler_stack.root = CombinedHandler.new(@handler_stack, mapper_handlers)
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
def start_element(*params)
|
17
|
+
@handler_stack.top.start_element(*params)
|
18
|
+
end
|
19
|
+
|
20
|
+
def end_element(*params)
|
21
|
+
@handler_stack.top.end_element(*params)
|
22
|
+
end
|
23
|
+
|
24
|
+
def characters(*params)
|
25
|
+
@handler_stack.top.characters(*params)
|
26
|
+
end
|
27
|
+
|
28
|
+
def cdata_block(*params)
|
29
|
+
@handler_stack.top.cdata_block(*params)
|
23
30
|
end
|
24
31
|
|
25
32
|
def error(string)
|
data/lib/sax_stream/mapper.rb
CHANGED
@@ -94,11 +94,11 @@ module SaxStream
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def mappings
|
97
|
-
parent_class_values(:mappings, CoreExtensions::OrderedHash.new).merge(class_mappings).freeze
|
97
|
+
@mappings_incuding_inherited ||= parent_class_values(:mappings, CoreExtensions::OrderedHash.new).merge(class_mappings).freeze
|
98
98
|
end
|
99
99
|
|
100
100
|
def regex_mappings
|
101
|
-
mappings.reject do |key, mapping|
|
101
|
+
@regex_mappings ||= mappings.reject do |key, mapping|
|
102
102
|
!key.is_a?(Regexp)
|
103
103
|
end
|
104
104
|
end
|
metadata
CHANGED
@@ -1,27 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sax_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Craig Ambrose
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-04-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.5.2
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.5.2
|
25
27
|
description: A streaming XML parser which builds objects and passes them to a collecter
|
26
28
|
as they are ready. Based upon Nokogiri SAX parsing functionality.
|
27
29
|
email:
|
@@ -57,27 +59,26 @@ files:
|
|
57
59
|
- README.markdown
|
58
60
|
homepage: http://github.com/craigambrose/sax_stream
|
59
61
|
licenses: []
|
62
|
+
metadata: {}
|
60
63
|
post_install_message:
|
61
64
|
rdoc_options: []
|
62
65
|
require_paths:
|
63
66
|
- lib
|
64
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
68
|
requirements:
|
67
|
-
- -
|
69
|
+
- - '>='
|
68
70
|
- !ruby/object:Gem::Version
|
69
71
|
version: '0'
|
70
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
73
|
requirements:
|
73
|
-
- -
|
74
|
+
- - '>='
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '0'
|
76
77
|
requirements: []
|
77
78
|
rubyforge_project:
|
78
|
-
rubygems_version:
|
79
|
+
rubygems_version: 2.0.3
|
79
80
|
signing_key:
|
80
|
-
specification_version:
|
81
|
+
specification_version: 4
|
81
82
|
summary: A streaming XML parser which builds objects and passes them to a collecter
|
82
83
|
as they are ready
|
83
84
|
test_files: []
|