dynarex 1.0.21 → 1.0.22

Sign up to get free protection for your applications and to get access to all the features.
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