dynarex 1.0.21 → 1.0.22

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 +21 -19
  2. metadata +21 -17
@@ -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 = @format_mask.to_s.gsub(/\[!(\w+)\]/, '(.*)').sub(/\[/,'\[').sub(/\]/,'\]')
159
+ t = regexify_fmask(@format_mask)
160
160
  line.match(/#{t}/).captures
161
161
 
162
162
  a = line.match(/#{t}/).captures
@@ -319,25 +319,8 @@ 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+\]/)
327
322
 
328
- if a.length == 2 and a_split[1].length == 1 then
329
- a2 = []
330
-
331
- # 1st
332
- a2 << "([^#{a_split[1]}]+)" << a_split[1]
333
-
334
- # last
335
- a2 << "(.*)"
336
- t = a2.join
337
- else
338
- # convert the format mask into a friendly reg exp string
339
- t = @format_mask.to_s.gsub(/\[!(\w+)\]/, '(.*)').sub(/\[/,'\[').sub(/\]/,'\]')
340
- end
323
+ t = regexify_fmask(@format_mask)
341
324
 
342
325
  lines = buffer.strip.split(/\r?\n|\r(?!\n)/).map {|x|x.strip.match(/#{t}/).captures}
343
326
 
@@ -482,6 +465,25 @@ LINES
482
465
  end
483
466
 
484
467
  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
485
487
 
486
488
  def summary_to_h
487
489
 
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynarex
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.21
4
+ prerelease:
5
+ version: 1.0.22
5
6
  platform: ruby
6
7
  authors: []
7
8
 
@@ -9,39 +10,42 @@ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2011-02-27 00:00:00 +00:00
13
+ date: 2011-03-17 00:00:00 +00:00
13
14
  default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: rexle
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
20
21
  requirements:
21
22
  - - ">="
22
23
  - !ruby/object:Gem::Version
23
24
  version: "0"
24
- version:
25
+ type: :runtime
26
+ version_requirements: *id001
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: dynarex-import
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
30
32
  requirements:
31
33
  - - ">="
32
34
  - !ruby/object:Gem::Version
33
35
  version: "0"
34
- version:
36
+ type: :runtime
37
+ version_requirements: *id002
35
38
  - !ruby/object:Gem::Dependency
36
39
  name: line-tree
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
40
43
  requirements:
41
44
  - - ">="
42
45
  - !ruby/object:Gem::Version
43
46
  version: "0"
44
- version:
47
+ type: :runtime
48
+ version_requirements: *id003
45
49
  description:
46
50
  email:
47
51
  executables: []
@@ -62,21 +66,21 @@ rdoc_options: []
62
66
  require_paths:
63
67
  - lib
64
68
  required_ruby_version: !ruby/object:Gem::Requirement
69
+ none: false
65
70
  requirements:
66
71
  - - ">="
67
72
  - !ruby/object:Gem::Version
68
73
  version: "0"
69
- version:
70
74
  required_rubygems_version: !ruby/object:Gem::Requirement
75
+ none: false
71
76
  requirements:
72
77
  - - ">="
73
78
  - !ruby/object:Gem::Version
74
79
  version: "0"
75
- version:
76
80
  requirements: []
77
81
 
78
82
  rubyforge_project:
79
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.5.2
80
84
  signing_key:
81
85
  specification_version: 3
82
86
  summary: dynarex