dynarex 1.2.51 → 1.2.52

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: 411c69663a03944ce26f120bbfe9a0c59cbd5349
4
- data.tar.gz: db4d098a51a1331b948aee00ba078e7178076b8a
3
+ metadata.gz: ebdb32b21f425a446f0b8a699d42059a6f7efe79
4
+ data.tar.gz: bb80090c325c1d5cb040af3919a085dcafcd4be3
5
5
  SHA512:
6
- metadata.gz: 540729b3ca45ffc9bf0797d89959c988e84cd4eb2d0605cabd2ade371f391cea28c3de3070c1db00b9b54d9a24b906c63b3ea3b72426b89ef35690c042eeb8b7
7
- data.tar.gz: fe6aaac1e46df860290ccc5a2d94616537da9a8d4b6c0cbb5ba863e98229e0861d2d3d11a72d980594ae258d3b913dde6f8fdc1253a9febcb9a5b9a461c1c64e
6
+ metadata.gz: 8880097149db0b5806cf7c43ead80fd6a66fe8c3014879630662810b4e6053dfa96bf3469457bf77e12b30b5ae0702c7b3cd176627885329657f8f871d266c9a
7
+ data.tar.gz: 6868fc4260ed955a893ceb1c456929aa04eff95f9a28d93b7978bcc207fa0c7c360cd82cd484e09c21d470c2c36d084b44d6b1eeb3bb312bf302307f15dc1290
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -34,12 +34,16 @@ class Dynarex
34
34
  #puts Rexle.version
35
35
  @delimiter = ' '
36
36
  open(location) if location
37
- @dirty_flag = false
37
+ if @order == 'descending' then
38
+ @records = records_to_h(:descending)
39
+ rebuild_doc
40
+ end
41
+ #jr240913 @dirty_flag = false
38
42
  end
39
43
 
40
44
  def add(x)
41
45
  @doc.root.add x
42
- load_records
46
+ @dirty_flag = true
43
47
  self
44
48
  end
45
49
 
@@ -125,7 +129,7 @@ class Dynarex
125
129
 
126
130
  # Returns a ready-only snapshot of records as a simple Hash.
127
131
  #
128
- def flat_records
132
+ def flat_records
129
133
  load_records if @dirty_flag == true
130
134
  @flat_records
131
135
  end
@@ -337,7 +341,7 @@ EOF
337
341
  self
338
342
  end
339
343
 
340
- def rebuild_doc
344
+ def rebuild_doc(state=:internal)
341
345
 
342
346
  reserved_keywords = (
343
347
  Object.public_methods | \
@@ -350,10 +354,16 @@ EOF
350
354
  xml.summary do
351
355
  @summary.each{|key,value| xml.send key, value}
352
356
  end
353
- if @records then
354
- xml.records do
357
+ records = @records.to_a
358
+
359
+
360
+ if records then
361
+
362
+ records.reverse! if @order == 'descending' and state == :external
355
363
 
356
- @records.each do |k, item|
364
+ xml.records do
365
+
366
+ records.each do |k, item|
357
367
  #p 'foo ' + item.inspect
358
368
  xml.send(@record_name, {id: item[:id], created: item[:created], \
359
369
  last_modified: item[:last_modified]}, '') do
@@ -372,7 +382,9 @@ EOF
372
382
  end # end of if @records
373
383
  end
374
384
 
375
- @doc = Rexle.new a
385
+ doc = Rexle.new(a)
386
+ return doc if state != :internal
387
+ @doc = doc
376
388
  end
377
389
 
378
390
  def record(id)
@@ -464,17 +476,7 @@ EOF
464
476
  def hash_create(raw_params={}, id=nil)
465
477
 
466
478
  record = make_record(raw_params)
467
- if @order == 'descending' then
468
- element = @doc.root.element('records/.[1]')
469
- if element then
470
- element.insert_before record
471
- else
472
- @doc.root.element('records').add record
473
- end
474
-
475
- else
476
- @doc.root.element('records').add record
477
- end
479
+ @doc.root.element('records').add record
478
480
 
479
481
  end
480
482
 
@@ -487,8 +489,8 @@ EOF
487
489
  def display_xml(opt={})
488
490
 
489
491
  load_records if @dirty_flag == true
490
- rebuild_doc()
491
- @doc.xml(opt) #jr230711 pretty: true
492
+ doc = rebuild_doc(:external)
493
+ doc.xml(opt) #jr230711 pretty: true
492
494
  end
493
495
 
494
496
  def make_record(raw_params)
@@ -788,7 +790,8 @@ EOF
788
790
 
789
791
  if @doc.root.xpath('records/*').length > 0 then
790
792
  @record_name = @doc.root.element('records/*[1]').name
791
- load_records
793
+ #jr240913 load_records
794
+ @dirty_flag = true
792
795
  end
793
796
 
794
797
  end
@@ -796,7 +799,9 @@ EOF
796
799
  def load_records
797
800
 
798
801
  @records = records_to_h
802
+
799
803
  @records = @records.take @limit_by if @limit_by
804
+
800
805
  @records.instance_eval do
801
806
  def delete_item(i)
802
807
  self.delete self.keys[i]
@@ -812,12 +817,14 @@ EOF
812
817
  puts @doc.to_s
813
818
  end
814
819
 
815
- def records_to_h()
820
+ def records_to_h(state=:ascending)
816
821
 
817
822
  i = @doc.root.xpath('max(records/*/attribute::id)') || 0
818
823
  #jr090813 fields = @doc.root.text('summary/schema')[/\(.*\)/].scan(/\w+/)
819
-
820
- a = @doc.root.xpath('records/*').inject({}) do |result,row|
824
+ records = @doc.root.xpath('records/*')
825
+
826
+ recs = (state == :descending ? records.reverse : records)
827
+ a = recs.inject({}) do |result,row|
821
828
 
822
829
  created = Time.now.to_s
823
830
  last_modified = ''
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynarex
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.51
4
+ version: 1.2.52
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file