polyrex-createobject 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8df933a84a5bc4b2f260cb13a5d35e5c4adee7e
4
- data.tar.gz: 74f16989cc0631bda68d0794bd8ee4ddedb17b6f
3
+ metadata.gz: d775e35504720ac98162324d077add3f9c101513
4
+ data.tar.gz: 950c2cdce548c151d1962c86bdd5650e4e375755
5
5
  SHA512:
6
- metadata.gz: 105618f26c0e8972516adbe752a777633b30d4c029b75d48d791fa8552fc8948e12208e5519052c5618d0689311f3d2daa03a371fb6866f10d2e1ae697972c1f
7
- data.tar.gz: 6b5a666779aa1af289f21d0dfca8006c52e4ce37ef1e9d1b92ea037c6afa7695ca8789119624541fe3ca8315825c8a72a279af521d8836f26249d88f129ddac2
6
+ metadata.gz: b3d044f58eb656f6a392389d72b02620f60a5f428a7a4cdecefd603f19b2ba98fc3b783a159dc3ed6e58c4475bb53aa25864bd794b1c02a61800d881695b655f
7
+ data.tar.gz: 4e06f448472dbd830ed41ed0ce5d628a9a7bff4868f9b2012143995f6abe3a6619f85011c244f6843b18b3ab85c1d49ee661e1abf022f2caa2fe3f9f9030ea7c
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -13,27 +13,40 @@ class PolyrexCreateObject
13
13
  attr_reader :obj
14
14
 
15
15
 
16
- def initialize(schema, id: '1', order: 'ascending')
16
+ def initialize(schema=nil, id: nil, order: 'ascending', record: nil,
17
+ debug: false)
17
18
 
18
- @@id, @order = id, order.to_s
19
+ @order = order.to_s
20
+ @id = id
19
21
 
22
+ if @debug then
23
+ puts 'inside PolyrexCreateObject: record: ' + record.xml.inspect
24
+ puts 'record.text' + record.text('summary/schema')
25
+ end
26
+
27
+ @parent_node = record ? record.element('records') : record
28
+ schema = record.text('summary/schema')
29
+ puts ': schema: ' + schema.inspect if @debug
20
30
  raise "missing schema" unless schema
21
31
 
22
- @schema = schema[/\/(.*)$/,1]
23
32
 
33
+ @schema = schema =~ /\// ? schema[/\/(.*)$/,1] : schema
34
+
24
35
  a = PolyrexSchema.new(schema).to_a
25
-
36
+ puts 'a: ' + a.inspect if @debug
37
+
26
38
  a.each do |rec|
27
39
 
28
40
  @obj = attach_create_handlers(rec)
29
-
41
+ puts '@obj: ' + @obj.inspect if @debug
42
+
30
43
  @obj.class_eval do
31
44
  def record=(node)
32
45
  @parent_node = node
33
46
  end
34
47
  end
35
48
 
36
- self.instance_eval %Q( def #{@obj.name.downcase}(h={}, id=@@id, &blk)
49
+ self.instance_eval %Q( def #{@obj.name.downcase}(h={}, id=@id, &blk)
37
50
 
38
51
  local_schema = @schema
39
52
 
@@ -43,24 +56,20 @@ class PolyrexCreateObject
43
56
  local_schema[/\\/.*$/].to_s]
44
57
  end
45
58
 
46
- new_parent = create_node(@parent_node, local_schema, h, id).element('records')
47
-
48
- obj = @obj.new
49
- obj.record = new_parent
50
- obj.instance_variable_set(:@schema, @schema[/\\/(.*$)/,1])
59
+ new_parent = create_node(@parent_node, local_schema, h, id)
51
60
 
52
61
  if block_given? then
53
- blk.call obj
62
+ yield(PolyrexCreateObject.new(id: id, record: new_parent))
54
63
  else
55
- obj
64
+ self
56
65
  end
57
66
  end
58
67
  )
59
68
  end
60
69
  end
61
70
 
62
- def id=(s) @@id = s; self end
63
- def id() @@id end
71
+ def id=(s) @id = s; self end
72
+ def id() @id end
64
73
 
65
74
  def record=(node)
66
75
  @parent_node = node
@@ -87,16 +96,16 @@ class PolyrexCreateObject
87
96
  record.root.xpath('records/*').each(&:delete)
88
97
 
89
98
  if id then
90
- @@id.succ!
99
+ @id.succ!
91
100
  else
92
- if @@id.to_i.to_s == @@id.to_s then
93
- @@id.succ!
101
+ if @id.to_i.to_s == @id.to_s then
102
+ @id.succ!
94
103
  else
95
- @@id = @parent_node.element('count(//@id)').to_i + 2
104
+ @id = @parent_node.element('count(//@id)').to_i + 2
96
105
  end
97
106
  end
98
107
 
99
- record.root.add_attribute({'id' => @@id.to_s.clone})
108
+ record.root.add_attribute({'id' => @id.to_s.clone})
100
109
 
101
110
  if params.length > 0 then
102
111
  a = child_schema[/[^\[]+(?=\])/].split(',')
@@ -142,12 +151,12 @@ class PolyrexCreateObject
142
151
  record.root.xpath('records/*').each(&:delete)
143
152
 
144
153
  if id then
145
- @@id.succ!
154
+ @id.succ!
146
155
  else
147
- if @@id.to_i.to_s == @@id.to_s then
148
- @@id.succ!
156
+ if @id.to_i.to_s == @id.to_s then
157
+ @id.succ!
149
158
  else
150
- @@id = @parent_node.element('count(//@id)').to_i + 2
159
+ @id = @parent_node.element('count(//@id)').to_i + 1
151
160
  end
152
161
  end
153
162
 
@@ -169,7 +178,7 @@ class PolyrexCreateObject
169
178
 
170
179
  define_method cname do |h, id=nil, &blk|
171
180
 
172
- id ||= @@id
181
+ id ||= @id
173
182
 
174
183
  local_schema = @parent_node.parent.text('summary/schema')[/\/(.*$)/,1]
175
184
 
@@ -217,7 +226,7 @@ class PolyrexCreateObject
217
226
 
218
227
  define_method remaining.name.downcase.to_sym do |h, id=nil, &blk|
219
228
 
220
- id ||= @@id
229
+ id ||= @id
221
230
  local_schema = @parent_node.parent.text('summary/schema')[/\/(.*$)/,1]
222
231
  if local_schema[0] == '{' then
223
232
 
@@ -246,4 +255,4 @@ class PolyrexCreateObject
246
255
  return klass
247
256
  end
248
257
 
249
- end
258
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyrex-createobject
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  jRgMXtv8iLFoWeilpwsM5UFNluVBef95Iw6oXMaxdoZaPfZ8KSp+IJe1ct8JNDmi
32
32
  1uMwHDSm6dYjQA==
33
33
  -----END CERTIFICATE-----
34
- date: 2017-12-05 00:00:00.000000000 Z
34
+ date: 2018-03-29 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: polyrex-schema
@@ -39,20 +39,20 @@ dependencies:
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '0.4'
42
+ version: '0.5'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 0.4.2
45
+ version: 0.5.1
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '0.4'
52
+ version: '0.5'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 0.4.2
55
+ version: 0.5.1
56
56
  description:
57
57
  email: james@jamesrobertson.eu
58
58
  executables: []
metadata.gz.sig CHANGED
Binary file