polyrex-schema 0.1.6 → 0.1.7

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 (2) hide show
  1. data/lib/polyrex-schema.rb +15 -9
  2. metadata +2 -2
@@ -8,26 +8,24 @@ class PolyrexSchema
8
8
 
9
9
  def initialize(s)
10
10
 
11
- @doc = Rexle.new
12
- node = @doc
11
+ node = nil
13
12
 
14
13
  s.scan(/\w+\[[^\]]*\]|\w+/).each do |x|
15
-
14
+
16
15
  b1, b2 = x.split('[')
17
16
 
18
17
  if b2 then
19
18
 
20
- append_node node, b1 do |summary|
19
+ node = append_node(node, b1) do |summary|
21
20
 
22
21
  fields = b2.scan(/\w+(?=[,\]])/)
23
22
  fields.each {|x| summary.add Rexle::Element.new x}
24
23
  summary.add Rexle::Element.new('format_mask').add_text(fields.map {|x| "[!%s]" % x}. join(' '))
24
+
25
25
  end
26
-
27
- node = node.element '*/records'
28
26
 
29
27
  else
30
- node = append_node node, x
28
+ node = append_node(node, x)
31
29
  end
32
30
  end
33
31
 
@@ -57,7 +55,15 @@ class PolyrexSchema
57
55
  records = Rexle::Element.new 'records'
58
56
  new_node.add records
59
57
 
60
- node.add new_node
58
+ if node.is_a? Rexle::Element then
59
+ node.add new_node
60
+ elsif node.is_a? Rexle then
61
+ node.root.add new_node
62
+ else
63
+ @doc = Rexle.new(new_node.xml)
64
+ node = @doc.root
65
+ end
61
66
 
67
+ node.element('*/records')
62
68
  end
63
- end
69
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: polyrex-schema
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.6
5
+ version: 0.1.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Robertson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-11-11 00:00:00 Z
13
+ date: 2012-11-28 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rexle