dynarex 1.1.16 → 1.1.17
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/lib/dynarex.rb +48 -28
- metadata +2 -2
data/lib/dynarex.rb
CHANGED
@@ -15,6 +15,23 @@ class Dynarex
|
|
15
15
|
|
16
16
|
attr_accessor :format_mask, :delimiter, :xslt_schema, :schema
|
17
17
|
|
18
|
+
|
19
|
+
class Record
|
20
|
+
|
21
|
+
def initialize(callerx, id, h={})
|
22
|
+
|
23
|
+
@callerx, @id = callerx, id
|
24
|
+
|
25
|
+
methods = h.to_a.map do |k,v|
|
26
|
+
name, val = k.to_s, v
|
27
|
+
"def #{name}=(s) @#{name} = s.to_s; @callerx.update(@id, #{name}: s.to_s) end\n\
|
28
|
+
def #{name}() @#{name} end\n\
|
29
|
+
@#{name} = '#{val}'"
|
30
|
+
end
|
31
|
+
self.instance_eval methods.join("\n")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
18
35
|
#Create a new dynarex document from 1 of the following options:
|
19
36
|
#* a local file path
|
20
37
|
#* a URL
|
@@ -57,7 +74,7 @@ class Dynarex
|
|
57
74
|
@summary[:format_mask] = @format_mask
|
58
75
|
end
|
59
76
|
|
60
|
-
def
|
77
|
+
def inspect2()
|
61
78
|
"<object #%s>" % [self.object_id]
|
62
79
|
end
|
63
80
|
|
@@ -223,6 +240,33 @@ EOF
|
|
223
240
|
load_records
|
224
241
|
self
|
225
242
|
end
|
243
|
+
|
244
|
+
def rebuild_doc
|
245
|
+
|
246
|
+
xml = RexleBuilder.new
|
247
|
+
a = xml.send @root_name do
|
248
|
+
xml.summary do
|
249
|
+
@summary.each{|key,value| xml.send key, value}
|
250
|
+
end
|
251
|
+
if @records then
|
252
|
+
xml.records do
|
253
|
+
|
254
|
+
@records.each do |k, item|
|
255
|
+
#p 'foo ' + item.inspect
|
256
|
+
xml.send(@record_name, {id: item[:id], created: item[:created], \
|
257
|
+
last_modified: item[:last_modified]}, '') do
|
258
|
+
item[:body].each{|name,value| xml.send name, value}
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
end
|
263
|
+
else
|
264
|
+
xml.records
|
265
|
+
end # end of if @records
|
266
|
+
end
|
267
|
+
|
268
|
+
@doc = Rexle.new a
|
269
|
+
end
|
226
270
|
|
227
271
|
def record(id)
|
228
272
|
recordx_to_record @doc.root.element("records/*[@id='#{id}']")
|
@@ -276,7 +320,8 @@ EOF
|
|
276
320
|
end
|
277
321
|
|
278
322
|
def recordx_to_record(recordx)
|
279
|
-
|
323
|
+
Record.new(self, recordx.attributes[:id], \
|
324
|
+
Hash[*@fields.zip(recordx.xpath("*/text()")).flatten])
|
280
325
|
end
|
281
326
|
|
282
327
|
def hash_create(raw_params={}, id=nil)
|
@@ -318,32 +363,6 @@ EOF
|
|
318
363
|
@doc.xml(opt) #jr230711 pretty: true
|
319
364
|
end
|
320
365
|
|
321
|
-
def rebuild_doc
|
322
|
-
|
323
|
-
xml = RexleBuilder.new
|
324
|
-
a = xml.send @root_name do
|
325
|
-
xml.summary do
|
326
|
-
@summary.each{|key,value| xml.send key, value}
|
327
|
-
end
|
328
|
-
if @records then
|
329
|
-
xml.records do
|
330
|
-
|
331
|
-
@records.each do |k, item|
|
332
|
-
#p 'foo ' + item.inspect
|
333
|
-
xml.send(@record_name, {id: item[:id], created: item[:created], \
|
334
|
-
last_modified: item[:last_modified]}, '') do
|
335
|
-
item[:body].each{|name,value| xml.send name, value}
|
336
|
-
end
|
337
|
-
end
|
338
|
-
|
339
|
-
end
|
340
|
-
else
|
341
|
-
xml.records
|
342
|
-
end # end of if @records
|
343
|
-
end
|
344
|
-
|
345
|
-
@doc = Rexle.new a
|
346
|
-
end
|
347
366
|
|
348
367
|
alias refresh_doc display_xml
|
349
368
|
|
@@ -460,6 +479,7 @@ EOF
|
|
460
479
|
end
|
461
480
|
|
462
481
|
def open(s)
|
482
|
+
|
463
483
|
|
464
484
|
if s[/</] then # xml
|
465
485
|
buffer = s
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: dynarex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.1.
|
5
|
+
version: 1.1.17
|
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-04-
|
13
|
+
date: 2012-04-12 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|