dynarex 1.0.22 → 1.0.24
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 +18 -22
- metadata +2 -2
data/lib/dynarex.rb
CHANGED
@@ -156,7 +156,7 @@ EOF
|
|
156
156
|
# dynarex.create_from_line 'Tracy 37 15-Jun-1972'
|
157
157
|
|
158
158
|
def create_from_line(line, id=nil)
|
159
|
-
t =
|
159
|
+
t = @format_mask.to_s.gsub(/\[!(\w+)\]/, '(.*)').sub(/\[/,'\[').sub(/\]/,'\]')
|
160
160
|
line.match(/#{t}/).captures
|
161
161
|
|
162
162
|
a = line.match(/#{t}/).captures
|
@@ -319,8 +319,18 @@ EOF
|
|
319
319
|
|
320
320
|
# if records already exist find the max id
|
321
321
|
i = @doc.xpath('max(records/*/attribute::id)').to_i
|
322
|
+
|
323
|
+
|
324
|
+
# 'a' and 'a_split' just used for validation
|
325
|
+
a = @format_mask.scan(/\[!\w+\]/)
|
326
|
+
a_split = @format_mask.split(/\[!\w+\]/)
|
322
327
|
|
323
|
-
|
328
|
+
if a.length == 2 and a_split[1].length == 1 then
|
329
|
+
t = "([^#{a_split[1]}]+)" + a_split[1] + "(.*)"
|
330
|
+
else
|
331
|
+
# convert the format mask into a friendly reg exp string
|
332
|
+
t = @format_mask.to_s.gsub(/\[!(\w+)\]/, '(.*)').sub(/\[/,'\[').sub(/\]/,'\]')
|
333
|
+
end
|
324
334
|
|
325
335
|
lines = buffer.strip.split(/\r?\n|\r(?!\n)/).map {|x|x.strip.match(/#{t}/).captures}
|
326
336
|
|
@@ -431,7 +441,12 @@ LINES
|
|
431
441
|
|
432
442
|
def load_records
|
433
443
|
@records = records_to_h
|
434
|
-
|
444
|
+
@records.instance_eval do
|
445
|
+
def delete_item(i)
|
446
|
+
self.delete self.keys[i]
|
447
|
+
end
|
448
|
+
end
|
449
|
+
|
435
450
|
#Returns a ready-only snapshot of records as a simple Hash.
|
436
451
|
@flat_records = @records.values.map{|x| x[:body]}
|
437
452
|
end
|
@@ -465,25 +480,6 @@ LINES
|
|
465
480
|
end
|
466
481
|
|
467
482
|
end
|
468
|
-
|
469
|
-
def regexify_fmask(f)
|
470
|
-
|
471
|
-
a = f.split(/(?=\[!\w+\])/).map do |x|
|
472
|
-
|
473
|
-
aa = x.split(/(?=[^\]]+$)/)
|
474
|
-
|
475
|
-
if aa.length == 2 and aa.first[/\[!\w+\]/] then
|
476
|
-
field, delimiter = *aa
|
477
|
-
delimiter ||= '$'
|
478
|
-
d = delimiter[0]
|
479
|
-
"([^%s]+)%s" % ([d] * 2)
|
480
|
-
else
|
481
|
-
x.sub(/\[!\w+\]/,'(.*)')
|
482
|
-
end
|
483
|
-
end
|
484
|
-
|
485
|
-
a.join
|
486
|
-
end
|
487
483
|
|
488
484
|
def summary_to_h
|
489
485
|
|
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.24
|
6
6
|
platform: ruby
|
7
7
|
authors: []
|
8
8
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-04-27 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|