dynarex 1.2.51 → 1.2.52

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.
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