oddb2xml 1.3.9 → 1.4.0

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.
@@ -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: