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.
- data/History.txt +8 -0
- data/bin/oddb2xml +1 -1
- data/lib/oddb2xml/builder.rb +18 -18
- data/lib/oddb2xml/cli.rb +13 -5
- data/lib/oddb2xml/extractor.rb +25 -27
- data/lib/oddb2xml/version.rb +1 -1
- data/spec/cli_spec.rb +3 -1
- metadata +28 -28
data/History.txt
CHANGED
data/bin/oddb2xml
CHANGED
@@ -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
|
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
|
data/lib/oddb2xml/builder.rb
CHANGED
@@ -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.
|
783
|
+
@companies.each do |c|
|
784
784
|
xml.Betrieb('DT' => '') {
|
785
|
-
xml.GLN_Betrieb
|
786
|
-
xml.Betriebsname_1 c[:name_1]
|
787
|
-
xml.Betriebsname_2 c[:name_2]
|
788
|
-
xml.Strasse c[:address]
|
789
|
-
xml.Nummer c[:number]
|
790
|
-
xml.PLZ c[:post]
|
791
|
-
xml.Ort c[:place]
|
792
|
-
xml.Bewilligungskanton c[:region]
|
793
|
-
xml.Land c[:country]
|
794
|
-
xml.Betriebstyp c[:type]
|
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.
|
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.
|
819
|
+
@people.each do |p|
|
820
820
|
xml.Person('DT' => '') {
|
821
|
-
xml.GLN_Person
|
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[:
|
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.
|
835
|
+
xml.NBR_RECORD @people.length
|
836
836
|
xml.ERROR_CODE ''
|
837
837
|
xml.MESSAGE ''
|
838
838
|
}
|
data/lib/oddb2xml/cli.rb
CHANGED
@@ -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 =
|
31
|
-
@people =
|
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).
|
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
|
-
|
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 ||=
|
data/lib/oddb2xml/extractor.rb
CHANGED
@@ -353,44 +353,42 @@ module Oddb2xml
|
|
353
353
|
@io = StringIO.new(str)
|
354
354
|
@type = type
|
355
355
|
end
|
356
|
-
def
|
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
|
-
|
364
|
-
|
365
|
-
:
|
366
|
-
:
|
367
|
-
:
|
368
|
-
:
|
369
|
-
:
|
370
|
-
:
|
371
|
-
:
|
372
|
-
:
|
373
|
-
:
|
374
|
-
:
|
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
|
-
|
383
|
-
|
384
|
-
:
|
385
|
-
:
|
386
|
-
:
|
387
|
-
:
|
388
|
-
:
|
389
|
-
:
|
390
|
-
:
|
391
|
-
:
|
392
|
-
:
|
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
|
data/lib/oddb2xml/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -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.
|
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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *18744960
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: archive-tar-minitar
|
27
|
-
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: *
|
35
|
+
version_requirements: *18743640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mechanize
|
38
|
-
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: *
|
46
|
+
version_requirements: *18644340
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: nokogiri
|
49
|
-
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: *
|
57
|
+
version_requirements: *18643640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: savon
|
60
|
-
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: *
|
68
|
+
version_requirements: *18642840
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: spreadsheet
|
71
|
-
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: *
|
79
|
+
version_requirements: *18642040
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
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: *
|
90
|
+
version_requirements: *18641340
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: webmock
|
93
|
-
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: *
|
101
|
+
version_requirements: *18640240
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: ZenTest
|
104
|
-
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: *
|
112
|
+
version_requirements: *18639460
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: hoe
|
115
|
-
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: *
|
123
|
+
version_requirements: *18588900
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: rdoc
|
126
|
-
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: *
|
134
|
+
version_requirements: *18587540
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: rdoc
|
137
|
-
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: *
|
145
|
+
version_requirements: *18585800
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: hoe
|
148
|
-
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: *
|
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:
|