dynarex 1.0.26 → 1.0.27
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dynarex.rb +26 -29
- metadata +2 -2
data/lib/dynarex.rb
CHANGED
@@ -8,6 +8,7 @@ require 'ostruct'
|
|
8
8
|
require 'dynarex-import'
|
9
9
|
require 'line-tree'
|
10
10
|
require 'rexle'
|
11
|
+
require 'rexlebuilder'
|
11
12
|
|
12
13
|
class Dynarex
|
13
14
|
|
@@ -101,13 +102,6 @@ EOF
|
|
101
102
|
|
102
103
|
#format_mask = XPath.first(@doc.root, 'summary/format_mask/text()').to_s
|
103
104
|
format_mask = @doc.element('summary/format_mask/text()')
|
104
|
-
dynarex = Dynarex.new
|
105
|
-
|
106
|
-
s = %q(schema="companies/company(name, last_contacted, contact)" delimiter=" # ")
|
107
|
-
s.split(/(?=\w+\="[^"]+")/)
|
108
|
-
raw_a = s.scan(/\w+\="[^"]+"/)
|
109
|
-
a = raw_a.map{|x| r = x.split(/=/); [(r[0] + "=").to_sym, r[1][/^"(.*)"$/,1]] }
|
110
|
-
a.each{|name, value| dynarex.method(name).call(value)}
|
111
105
|
|
112
106
|
xslt_format = format_mask.to_s.gsub(/\s(?=\[!\w+\])/,'<xsl:text> </xsl:text>').gsub(/\[!(\w+)\]/, '<xsl:value-of select="\1"/>')
|
113
107
|
xsl_buffer.sub!(/\[!regex_values\]/, xslt_format)
|
@@ -251,7 +245,9 @@ EOF
|
|
251
245
|
OpenStruct.new(Hash[*@fields.zip(recordx.xpath("*/text()")).flatten])
|
252
246
|
end
|
253
247
|
|
254
|
-
def hash_create(
|
248
|
+
def hash_create(raw_params={}, id=nil)
|
249
|
+
|
250
|
+
params = Hash[raw_params.keys.map(&:to_sym).zip(raw_params.values)]
|
255
251
|
|
256
252
|
fields = capture_fields(params)
|
257
253
|
record = Rexle::Element.new @record_name
|
@@ -261,8 +257,9 @@ EOF
|
|
261
257
|
record.add element
|
262
258
|
end
|
263
259
|
|
264
|
-
id = (@doc.xpath('max(records/*/attribute::id)').to_i + 1).to_s unless id
|
265
260
|
|
261
|
+
id = (@doc.xpath('max(records/*/attribute::id)') || '0').succ unless id
|
262
|
+
|
266
263
|
attributes = {id: id, created: Time.now.to_s, last_modified: nil}
|
267
264
|
attributes.each {|k,v| record.add_attribute(k, v)}
|
268
265
|
|
@@ -272,39 +269,39 @@ EOF
|
|
272
269
|
|
273
270
|
def capture_fields(params)
|
274
271
|
fields = Hash[@fields.map {|x| [x,nil]}]
|
275
|
-
fields.keys.each {|key| fields[key] = params[key] if params.has_key? key}
|
272
|
+
fields.keys.each {|key| fields[key] = params[key.to_sym] if params.has_key? key.to_sym}
|
276
273
|
fields
|
277
274
|
end
|
278
275
|
|
279
276
|
|
280
277
|
def display_xml
|
281
278
|
rebuild_doc()
|
282
|
-
@doc.xml pretty: true
|
279
|
+
@doc.xml #jr230711 pretty: true
|
283
280
|
end
|
284
281
|
|
285
282
|
def rebuild_doc
|
286
|
-
|
287
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
288
|
-
xml.send @root_name do
|
289
|
-
xml.summary do
|
290
|
-
@summary.each{|key,value| xml.send key, value}
|
291
|
-
end
|
292
|
-
if @records then
|
293
|
-
xml.records do
|
294
|
-
|
295
|
-
@records.each do |k, item|
|
296
|
-
xml.send(@record_name, id: item[:id], created: item[:created], \
|
297
|
-
last_modified: item[:last_modified]) do
|
298
|
-
item[:body].each{|name,value| xml.send name, value}
|
299
|
-
end
|
300
|
-
end
|
301
283
|
|
302
|
-
|
303
|
-
|
284
|
+
xml = RexleBuilder.new
|
285
|
+
a = xml.send @root_name do
|
286
|
+
xml.summary do
|
287
|
+
@summary.each{|key,value| xml.send key, value}
|
304
288
|
end
|
289
|
+
if @records then
|
290
|
+
xml.records do
|
291
|
+
|
292
|
+
@records.each do |k, item|
|
293
|
+
p 'foo ' + item.inspect
|
294
|
+
xml.send(@record_name, {id: item[:id], created: item[:created], \
|
295
|
+
last_modified: item[:last_modified]}, '') do
|
296
|
+
item[:body].each{|name,value| xml.send name, value}
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
end
|
301
|
+
end # end of if @records
|
305
302
|
end
|
306
303
|
|
307
|
-
@doc = Rexle.new
|
304
|
+
@doc = Rexle.new a
|
308
305
|
|
309
306
|
end
|
310
307
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: dynarex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.27
|
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: 2011-07-
|
13
|
+
date: 2011-07-24 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|