oddb2xml 1.3.9 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,11 @@
1
+ === 1.4.0 / 15.02.2013
2
+
3
+ * Fix cli spec
4
+ * Add report for address xml
5
+ * Update address data as array
6
+ * Fix command option
7
+ * Fix typo
8
+
1
9
  === 1.3.9 / 14.02.2013
2
10
 
3
11
  * Add address xml output
@@ -22,7 +22,7 @@ Usage:
22
22
  'xml' format includes always ean14 records.
23
23
  -t S, --tag-suffix=S XML tag suffix S. Default is none. [A-z0-9]
24
24
  If S is given, it is also used as prefix of filename.
25
- -x X, --context context for address (betrieb and person).
25
+ -x N, --context=N context N {product|address}. product is default.
26
26
  -h, --help Show this help message.
27
27
  EOS
28
28
  end
@@ -35,8 +35,8 @@ module Oddb2xml
35
35
  @orphans = []
36
36
  @fridges = []
37
37
  @ean14 = true
38
- @companies = {}
39
- @people = {}
38
+ @companies = []
39
+ @people = []
40
40
  @tag_suffix = nil
41
41
  if block_given?
42
42
  yield self
@@ -780,24 +780,24 @@ module Oddb2xml
780
780
  'CREATION_DATETIME' => datetime,
781
781
  'VALID_DATE' => datetime,
782
782
  ) {
783
- @companies.each_pair do |ean, c|
783
+ @companies.each do |c|
784
784
  xml.Betrieb('DT' => '') {
785
- xml.GLN_Betrieb ean unless ean.empty?
786
- xml.Betriebsname_1 c[:name_1] unless c[:name_1].empty?
787
- xml.Betriebsname_2 c[:name_2] unless c[:name_2].empty?
788
- xml.Strasse c[:address] unless c[:address].empty?
789
- xml.Nummer c[:number] unless c[:number].empty?
790
- xml.PLZ c[:post] unless c[:post].empty?
791
- xml.Ort c[:place] unless c[:place].empty?
792
- xml.Bewilligungskanton c[:region] unless c[:region].empty?
793
- xml.Land c[:country] unless c[:country].empty?
794
- xml.Betriebstyp c[:type] unless c[:type].empty?
785
+ xml.GLN_Betrieb c[:gln] unless c[:gln].empty?
786
+ xml.Betriebsname_1 c[:name_1] unless c[:name_1].empty?
787
+ xml.Betriebsname_2 c[:name_2] unless c[:name_2].empty?
788
+ xml.Strasse c[:address] unless c[:address].empty?
789
+ xml.Nummer c[:number] unless c[:number].empty?
790
+ xml.PLZ c[:post] unless c[:post].empty?
791
+ xml.Ort c[:place] unless c[:place].empty?
792
+ xml.Bewilligungskanton c[:region] unless c[:region].empty?
793
+ xml.Land c[:country] unless c[:country].empty?
794
+ xml.Betriebstyp c[:type] unless c[:type].empty?
795
795
  xml.BTM_Berechtigung c[:authorization] unless c[:authorization].empty?
796
796
  }
797
797
  end
798
798
  xml.RESULT {
799
799
  xml.OK_ERROR 'OK'
800
- xml.NBR_RECORD @companies.values.length
800
+ xml.NBR_RECORD @companies.length
801
801
  xml.ERROR_CODE ''
802
802
  xml.MESSAGE ''
803
803
  }
@@ -816,23 +816,23 @@ module Oddb2xml
816
816
  'CREATION_DATETIME' => datetime,
817
817
  'VALID_DATE' => datetime,
818
818
  ) {
819
- @people.each_pair do |ean, p|
819
+ @people.each do |p|
820
820
  xml.Person('DT' => '') {
821
- xml.GLN_Person ean unless ean.empty?
821
+ xml.GLN_Person p[:gln] unless p[:gln].empty?
822
822
  xml.Name p[:last_name] unless p[:last_name].empty?
823
823
  xml.Vorname p[:first_name] unless p[:first_name].empty?
824
824
  xml.PLZ p[:post] unless p[:post].empty?
825
825
  xml.Ort p[:place] unless p[:place].empty?
826
826
  xml.Bewilligungskanton p[:region] unless p[:region].empty?
827
827
  xml.Land p[:country] unless p[:country].empty?
828
- xml.Bewilligung_Selbstdispensation p[:lincense] unless p[:license].empty?
828
+ xml.Bewilligung_Selbstdispensation p[:license] unless p[:license].empty?
829
829
  xml.Diplom p[:certificate] unless p[:certificate].empty?
830
830
  xml.BTM_Berechtigung p[:authorization] unless p[:authorization].empty?
831
831
  }
832
832
  end
833
833
  xml.RESULT {
834
834
  xml.OK_ERROR 'OK'
835
- xml.NBR_RECORD @people.values.length
835
+ xml.NBR_RECORD @people.length
836
836
  xml.ERROR_CODE ''
837
837
  xml.MESSAGE ''
838
838
  }
@@ -27,8 +27,8 @@ module Oddb2xml
27
27
  @orphans = [] # [addition] Orphaned drugs from Swissmedic xls
28
28
  @fridges = [] # [addition] ReFridge drugs from Swissmedic xls
29
29
  # addres
30
- @companies = {} # betrieb
31
- @people = {} # medizinalperson
30
+ @companies = [] # betrieb
31
+ @people = [] # medizinalperson
32
32
  LANGUAGES.each do |lang|
33
33
  @index[lang] = {}
34
34
  end
@@ -154,7 +154,7 @@ module Oddb2xml
154
154
  str = downloader.download
155
155
  self.instance_variable_set(
156
156
  "@#{var}".intern,
157
- MedregbmExtractor.new(str, what).to_hash
157
+ MedregbmExtractor.new(str, what).to_arry
158
158
  )
159
159
  end
160
160
  when :fachinfo
@@ -284,8 +284,8 @@ module Oddb2xml
284
284
  @_prefix ||= (@options[:tag_suffix] || 'oddb').gsub(/^_|_$/, '').downcase
285
285
  end
286
286
  def report
287
+ lines = []
287
288
  unless @options[:address]
288
- lines = []
289
289
  LANGUAGES.each do |lang|
290
290
  lines << lang
291
291
  types.each do |type|
@@ -296,8 +296,16 @@ module Oddb2xml
296
296
  end
297
297
  end
298
298
  end
299
- puts lines.join("\n")
299
+ else
300
+ {
301
+ 'Betrieb' => :@companies,
302
+ 'Person' => :@people
303
+ }.each do |type, var|
304
+ lines << sprintf(
305
+ "#{type} addresses: %i", self.instance_variable_get(var).length)
306
+ end
300
307
  end
308
+ puts lines.join("\n")
301
309
  end
302
310
  def types # swissindex
303
311
  @_types ||=
@@ -353,44 +353,42 @@ module Oddb2xml
353
353
  @io = StringIO.new(str)
354
354
  @type = type
355
355
  end
356
- def to_hash
357
- data = {}
356
+ def to_arry
357
+ data = []
358
358
  case @type
359
359
  when :company
360
360
  while line = @io.gets
361
361
  row = line.chomp.split("\t")
362
362
  next if row[0] =~ /^GLN/
363
- gln = row[0].to_s
364
- data[gln] = {
365
- :gln => gln, #=> GLN Betrieb
366
- :name_1 => row[1].to_s, #=> Betriebsname 1
367
- :name_2 => row[2].to_s, #=> Betriebsname 2
368
- :address => row[3].to_s, #=> Strasse
369
- :number => row[4].to_s, #=> Nummer
370
- :post => row[5].to_s, #=> PLZ
371
- :place => row[6].to_s, #=> Ort
372
- :region => row[7].to_s, #=> Bewilligungskanton
373
- :country => row[8].to_s, #=> Land
374
- :type => row[9].to_s, #=> Betriebstyp
375
- :authorization => row[10].to_s, #=> BTM Berechtigung
363
+ data << {
364
+ :gln => row[0].to_s.gsub(/[^0-9]/, ''), #=> GLN Betrieb
365
+ :name_1 => row[1].to_s, #=> Betriebsname 1
366
+ :name_2 => row[2].to_s, #=> Betriebsname 2
367
+ :address => row[3].to_s, #=> Strasse
368
+ :number => row[4].to_s, #=> Nummer
369
+ :post => row[5].to_s, #=> PLZ
370
+ :place => row[6].to_s, #=> Ort
371
+ :region => row[7].to_s, #=> Bewilligungskanton
372
+ :country => row[8].to_s, #=> Land
373
+ :type => row[9].to_s, #=> Betriebstyp
374
+ :authorization => row[10].to_s, #=> BTM Berechtigung
376
375
  }
377
376
  end
378
377
  when :person
379
378
  while line = @io.gets
380
379
  row = line.chomp.split("\t")
381
380
  next if row[0] =~ /^GLN/
382
- gln = row[0].to_s
383
- data[gln] = {
384
- :gln => gln, #=> GLN Person
385
- :last_name => row[1].to_s, #=> Name
386
- :first_name => row[2].to_s, #=> Vorname
387
- :post => row[3].to_s, #=> PLZ
388
- :place => row[4].to_s, #=> Ort
389
- :region => row[5].to_s, #=> Bewilligungskanton
390
- :country => row[6].to_s, #=> Land
391
- :license => row[7].to_s, #=> Bewilligung Selbstdispensation
392
- :certificate => row[8].to_s, #=> Diplom
393
- :authorization => row[9].to_s, #=> BTM Berechtigung
381
+ data << {
382
+ :gln => row[0].to_s.gsub(/[^0-9]/, ''), #=> GLN Person
383
+ :last_name => row[1].to_s, #=> Name
384
+ :first_name => row[2].to_s, #=> Vorname
385
+ :post => row[3].to_s, #=> PLZ
386
+ :place => row[4].to_s, #=> Ort
387
+ :region => row[5].to_s, #=> Bewilligungskanton
388
+ :country => row[6].to_s, #=> Land
389
+ :license => row[7].to_s, #=> Bewilligung Selbstdispensation
390
+ :certificate => row[8].to_s, #=> Diplom
391
+ :authorization => row[9].to_s, #=> BTM Berechtigung
394
392
  }
395
393
  end
396
394
  end
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "1.3.9"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -25,7 +25,7 @@ end
25
25
  shared_examples_for 'any interface for address' do
26
26
  it { cli.should respond_to(:run) }
27
27
  it 'should run successfully' do
28
- $stdout.should_not_receive(:puts) # no output
28
+ $stdout.should_receive(:puts).with(/addresses/)
29
29
  cli.run
30
30
  end
31
31
  end
@@ -247,11 +247,13 @@ describe Oddb2xml::Cli do
247
247
  cli.should have_option(:address=> true)
248
248
  end
249
249
  it 'should not create any compressed file' do
250
+ $stdout.should_receive(:puts).with(/addresses/)
250
251
  cli.run
251
252
  Dir.glob('oddb_*.tar.gz').first.should be_nil
252
253
  Dir.glob('oddb_*.zip').first.should be_nil
253
254
  end
254
255
  it 'should create xml files' do
256
+ $stdout.should_receive(:puts).with(/addresses/)
255
257
  cli.run
256
258
  expected = [
257
259
  'oddb_betrieb.xml',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oddb2xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.9
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-14 00:00:00.000000000 Z
12
+ date: 2013-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubyzip
16
- requirement: &19384600 !ruby/object:Gem::Requirement
16
+ requirement: &18744960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *19384600
24
+ version_requirements: *18744960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: archive-tar-minitar
27
- requirement: &19384140 !ruby/object:Gem::Requirement
27
+ requirement: &18743640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *19384140
35
+ version_requirements: *18743640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mechanize
38
- requirement: &19383700 !ruby/object:Gem::Requirement
38
+ requirement: &18644340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *19383700
46
+ version_requirements: *18644340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: nokogiri
49
- requirement: &19383200 !ruby/object:Gem::Requirement
49
+ requirement: &18643640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *19383200
57
+ version_requirements: *18643640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: savon
60
- requirement: &19382620 !ruby/object:Gem::Requirement
60
+ requirement: &18642840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '2.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *19382620
68
+ version_requirements: *18642840
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: spreadsheet
71
- requirement: &19255580 !ruby/object:Gem::Requirement
71
+ requirement: &18642040 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *19255580
79
+ version_requirements: *18642040
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &19254720 !ruby/object:Gem::Requirement
82
+ requirement: &18641340 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *19254720
90
+ version_requirements: *18641340
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: webmock
93
- requirement: &19253480 !ruby/object:Gem::Requirement
93
+ requirement: &18640240 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *19253480
101
+ version_requirements: *18640240
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: ZenTest
104
- requirement: &19252640 !ruby/object:Gem::Requirement
104
+ requirement: &18639460 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *19252640
112
+ version_requirements: *18639460
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: hoe
115
- requirement: &19251860 !ruby/object:Gem::Requirement
115
+ requirement: &18588900 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '3.4'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *19251860
123
+ version_requirements: *18588900
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rdoc
126
- requirement: &19250720 !ruby/object:Gem::Requirement
126
+ requirement: &18587540 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *19250720
134
+ version_requirements: *18587540
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: rdoc
137
- requirement: &19247520 !ruby/object:Gem::Requirement
137
+ requirement: &18585800 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '3.10'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *19247520
145
+ version_requirements: *18585800
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: hoe
148
- requirement: &19246620 !ruby/object:Gem::Requirement
148
+ requirement: &18584860 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
@@ -153,7 +153,7 @@ dependencies:
153
153
  version: '2.13'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *19246620
156
+ version_requirements: *18584860
157
157
  description: oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic.
158
158
  email: yasaka@ywesee.com, zdavatz@ywesee.com
159
159
  executables: