dynarex 1.1.38 → 1.1.39

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.
Files changed (2) hide show
  1. data/lib/dynarex.rb +20 -6
  2. metadata +2 -2
data/lib/dynarex.rb CHANGED
@@ -15,7 +15,7 @@ require 'yaml'
15
15
 
16
16
  class Dynarex
17
17
 
18
- attr_accessor :format_mask, :delimiter, :xslt_schema, :schema
18
+ attr_accessor :format_mask, :delimiter, :xslt_schema, :schema, :order
19
19
 
20
20
 
21
21
  #Create a new dynarex document from 1 of the following options:
@@ -365,7 +365,18 @@ EOF
365
365
 
366
366
  attributes = {id: id, created: Time.now.to_s, last_modified: nil}
367
367
  attributes.each {|k,v| record.add_attribute(k, v)}
368
- @doc.root.element('records').add record
368
+ if @order == 'descending' then
369
+
370
+ element = @doc.root.element('records/.[1]')
371
+ if element then
372
+ element.insert_before record
373
+ else
374
+ @doc.root.element('records').add record
375
+ end
376
+
377
+ else
378
+ @doc.root.element('records').add record
379
+ end
369
380
 
370
381
  end
371
382
 
@@ -376,6 +387,7 @@ EOF
376
387
  end
377
388
 
378
389
  def display_xml(opt={})
390
+
379
391
  load_records if @dirty_flag == true
380
392
  rebuild_doc()
381
393
  @doc.xml(opt) #jr230711 pretty: true
@@ -401,6 +413,7 @@ EOF
401
413
  raw_summary = schema[/\[([^\]]+)/,1]
402
414
  raw_lines = buffer.gsub(/^\s*#[^\n]+/,'').gsub(/\n\n/,"\n")\
403
415
  .strip.split(/\r?\n|\r(?!\n)/)
416
+ raw_lines.reverse! if @order == 'descending'
404
417
 
405
418
  if raw_summary then
406
419
  a_summary = raw_summary.split(',').map(&:strip)
@@ -455,6 +468,7 @@ EOF
455
468
 
456
469
  #replace the existing records hash
457
470
  h = @records
471
+ i = 0
458
472
  h2.each do |key,item|
459
473
  if h.has_key? key then
460
474
 
@@ -463,9 +477,9 @@ EOF
463
477
  item[:body].each do |k,v|
464
478
  h[key][:body][k.to_sym] = v
465
479
  end
466
- else
480
+ else
481
+ item[:id] = (@order == 'descending' ? (h2.count) - i : i+ 1).to_s
467
482
  i += 1
468
- item[:id] = i.to_s
469
483
  h[key] = item.clone
470
484
  end
471
485
  end
@@ -577,7 +591,7 @@ EOF
577
591
  def records_to_h()
578
592
 
579
593
  i = @doc.root.xpath('max(records/*/attribute::id)') || 0
580
-
594
+
581
595
  @doc.root.xpath('records/*').inject({}) do |result,row|
582
596
 
583
597
  created = Time.now.to_s
@@ -608,4 +622,4 @@ EOF
608
622
  end
609
623
  end
610
624
 
611
- end
625
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: dynarex
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.1.38
5
+ version: 1.1.39
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-07-29 00:00:00 Z
13
+ date: 2012-08-11 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rexle