oddb2xml 1.7.3 → 1.7.5
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.
- checksums.yaml +13 -5
- data/.travis.yml +7 -1
- data/Gemfile +1 -15
- data/Gemfile.lock +40 -33
- data/History.txt +15 -7
- data/Rakefile +9 -32
- data/bin/oddb2xml +10 -0
- data/lib/oddb2xml/builder.rb +43 -15
- data/lib/oddb2xml/cli.rb +2 -1
- data/lib/oddb2xml/compressor.rb +2 -2
- data/lib/oddb2xml/downloader.rb +3 -3
- data/lib/oddb2xml/extractor.rb +41 -6
- data/lib/oddb2xml/version.rb +1 -1
- data/oddb2xml.gemspec +35 -0
- data/spec/extractor_spec.rb +33 -6
- metadata +99 -45
- data/.gemtest +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
NjdkN2Q1MWNlY2EzMmNmNTZiNWJmYWM3N2Q1ZWM5N2NlNjU5MDhkMw==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
OTRiMzM1OTUyN2ZhYjhiNTg2NzQ3Mzg3MzhkMjk5NDgxNzNmZmJmMQ==
|
|
5
7
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
ZmU3MzM1ZDY3M2VlZGRiMjJmNDQ3OTBkM2FhNmMwOTZiNDkyODY2ODgzNTEx
|
|
10
|
+
NDlkNTc1OTc2MzZhZTY2YTc3NzZhZWNlNjMyYzk1Njg4NmI1N2EyZjE2MTkz
|
|
11
|
+
NWVlMDhkYjBkMDQ3ZmNhNmVkZjViMzhkMDZkYzM2NzUzZmQxM2U=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
YTk3ZGY1M2MyZWMyODBmNmYyOGNiNGUyNmU0MWExMDA2ODMyZGNhNzAwYmM2
|
|
14
|
+
OTRiN2UwOTM3NDU4ZjAzNWZmYjI0MmU4NGM5NzcxNDA2YjQzMjNmMTRkMjc2
|
|
15
|
+
MTcyM2MzNjcyMGYwYzkxNGQwYzQzMWZhNjFhYWFhZjgzOTFiOWY=
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
gem 'archive-tar-minitar'
|
|
5
|
-
gem 'mechanize', '~> 2.5.1'
|
|
6
|
-
gem 'nokogiri', '~> 1.5.10'
|
|
7
|
-
gem 'savon', '>= 2.0'
|
|
8
|
-
gem 'spreadsheet'
|
|
9
|
-
gem 'rubyXL', '1.2.10'
|
|
10
|
-
|
|
11
|
-
group :development do
|
|
12
|
-
gem 'rspec'
|
|
13
|
-
gem 'webmock'
|
|
14
|
-
|
|
15
|
-
gem 'hoe', '>= 3.4'
|
|
16
|
-
gem 'rdoc'
|
|
17
|
-
end
|
|
3
|
+
gemspec
|
|
18
4
|
|
|
19
5
|
group :debugger do
|
|
20
6
|
gem 'pry-debugger'
|
data/Gemfile.lock
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
oddb2xml (1.7.4)
|
|
5
|
+
archive-tar-minitar
|
|
6
|
+
mechanize (~> 2.5.1)
|
|
7
|
+
nokogiri (~> 1.5.10)
|
|
8
|
+
rubyXL (~> 2.5)
|
|
9
|
+
rubyzip (~> 1.0)
|
|
10
|
+
savon (~> 2.0)
|
|
11
|
+
spreadsheet
|
|
12
|
+
|
|
1
13
|
GEM
|
|
2
14
|
remote: https://rubygems.org/
|
|
3
15
|
specs:
|
|
4
|
-
addressable (2.3.
|
|
5
|
-
akami (1.2.
|
|
16
|
+
addressable (2.3.6)
|
|
17
|
+
akami (1.2.1)
|
|
6
18
|
gyoku (>= 0.4.0)
|
|
7
|
-
nokogiri
|
|
19
|
+
nokogiri
|
|
8
20
|
archive-tar-minitar (0.5.2)
|
|
9
21
|
builder (3.2.2)
|
|
10
22
|
coderay (1.1.0)
|
|
11
23
|
columnize (0.3.6)
|
|
12
|
-
crack (0.4.
|
|
13
|
-
safe_yaml (~> 0.
|
|
14
|
-
debugger (1.6.
|
|
24
|
+
crack (0.4.2)
|
|
25
|
+
safe_yaml (~> 1.0.0)
|
|
26
|
+
debugger (1.6.6)
|
|
15
27
|
columnize (>= 0.3.1)
|
|
16
28
|
debugger-linecache (~> 1.2.0)
|
|
17
|
-
debugger-ruby_core_source (~> 1.3.
|
|
29
|
+
debugger-ruby_core_source (~> 1.3.2)
|
|
18
30
|
debugger-linecache (1.2.0)
|
|
19
|
-
debugger-ruby_core_source (1.3.
|
|
31
|
+
debugger-ruby_core_source (1.3.2)
|
|
20
32
|
diff-lcs (1.2.5)
|
|
21
|
-
domain_name (0.5.
|
|
33
|
+
domain_name (0.5.18)
|
|
22
34
|
unf (>= 0.0.5, < 1.0.0)
|
|
23
35
|
gyoku (1.1.1)
|
|
24
36
|
builder (>= 2.1.2)
|
|
25
|
-
hoe (3.7.4)
|
|
26
|
-
rake (>= 0.8, < 11.0)
|
|
27
37
|
httpi (2.1.0)
|
|
28
38
|
rack
|
|
29
39
|
rubyntlm (~> 0.3.2)
|
|
@@ -39,11 +49,11 @@ GEM
|
|
|
39
49
|
method_source (0.8.2)
|
|
40
50
|
mime-types (1.25.1)
|
|
41
51
|
net-http-digest_auth (1.4)
|
|
42
|
-
net-http-persistent (2.9)
|
|
52
|
+
net-http-persistent (2.9.4)
|
|
43
53
|
nokogiri (1.5.11)
|
|
44
54
|
nori (2.3.0)
|
|
45
55
|
ntlm-http (0.1.1)
|
|
46
|
-
pry (0.9.12.
|
|
56
|
+
pry (0.9.12.6)
|
|
47
57
|
coderay (~> 1.0)
|
|
48
58
|
method_source (~> 0.8)
|
|
49
59
|
slop (~> 3.4)
|
|
@@ -51,23 +61,25 @@ GEM
|
|
|
51
61
|
debugger (~> 1.3)
|
|
52
62
|
pry (~> 0.9.10)
|
|
53
63
|
rack (1.5.2)
|
|
54
|
-
rake (10.
|
|
55
|
-
rdoc (4.1.
|
|
64
|
+
rake (10.2.2)
|
|
65
|
+
rdoc (4.1.1)
|
|
56
66
|
json (~> 1.4)
|
|
57
67
|
rspec (2.14.1)
|
|
58
68
|
rspec-core (~> 2.14.0)
|
|
59
69
|
rspec-expectations (~> 2.14.0)
|
|
60
70
|
rspec-mocks (~> 2.14.0)
|
|
61
|
-
rspec-core (2.14.
|
|
62
|
-
rspec-expectations (2.14.
|
|
71
|
+
rspec-core (2.14.8)
|
|
72
|
+
rspec-expectations (2.14.5)
|
|
63
73
|
diff-lcs (>= 1.1.3, < 2.0)
|
|
64
|
-
rspec-mocks (2.14.
|
|
74
|
+
rspec-mocks (2.14.6)
|
|
65
75
|
ruby-ole (1.2.11.7)
|
|
66
|
-
rubyXL (
|
|
76
|
+
rubyXL (2.5.0)
|
|
77
|
+
nokogiri (>= 1.4.4)
|
|
78
|
+
rubyzip (>= 1.0.0)
|
|
67
79
|
rubyntlm (0.3.4)
|
|
68
|
-
rubyzip (1.
|
|
69
|
-
safe_yaml (0.
|
|
70
|
-
savon (2.
|
|
80
|
+
rubyzip (1.1.2)
|
|
81
|
+
safe_yaml (1.0.1)
|
|
82
|
+
savon (2.4.0)
|
|
71
83
|
akami (~> 1.2.0)
|
|
72
84
|
builder (>= 2.1.2)
|
|
73
85
|
gyoku (~> 1.1.0)
|
|
@@ -75,8 +87,8 @@ GEM
|
|
|
75
87
|
nokogiri (>= 1.4.0)
|
|
76
88
|
nori (~> 2.3.0)
|
|
77
89
|
wasabi (~> 3.2.2)
|
|
78
|
-
slop (3.
|
|
79
|
-
spreadsheet (0.9.
|
|
90
|
+
slop (3.5.0)
|
|
91
|
+
spreadsheet (0.9.7)
|
|
80
92
|
ruby-ole (>= 1.0)
|
|
81
93
|
unf (0.1.3)
|
|
82
94
|
unf_ext
|
|
@@ -85,7 +97,7 @@ GEM
|
|
|
85
97
|
httpi (~> 2.0)
|
|
86
98
|
mime-types (< 2.0.0)
|
|
87
99
|
nokogiri (>= 1.4.0)
|
|
88
|
-
webmock (1.
|
|
100
|
+
webmock (1.17.4)
|
|
89
101
|
addressable (>= 2.2.7)
|
|
90
102
|
crack (>= 0.3.2)
|
|
91
103
|
webrobots (0.1.1)
|
|
@@ -94,15 +106,10 @@ PLATFORMS
|
|
|
94
106
|
ruby
|
|
95
107
|
|
|
96
108
|
DEPENDENCIES
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
mechanize (~> 2.5.1)
|
|
100
|
-
nokogiri (~> 1.5.10)
|
|
109
|
+
bundler
|
|
110
|
+
oddb2xml!
|
|
101
111
|
pry-debugger
|
|
112
|
+
rake
|
|
102
113
|
rdoc
|
|
103
114
|
rspec
|
|
104
|
-
rubyXL
|
|
105
|
-
rubyzip (= 1.0.0)
|
|
106
|
-
savon (>= 2.0)
|
|
107
|
-
spreadsheet
|
|
108
115
|
webmock
|
data/History.txt
CHANGED
|
@@ -1,29 +1,37 @@
|
|
|
1
|
-
=== 1.7.
|
|
1
|
+
=== 1.7.5 / 01.04.2014
|
|
2
|
+
|
|
3
|
+
* Added option -ae
|
|
4
|
+
|
|
5
|
+
=== 1.7.4 / 01.04.2014
|
|
6
|
+
|
|
7
|
+
* Added option --extended
|
|
8
|
+
|
|
9
|
+
=== 1.7.3 / 27.02.2014
|
|
2
10
|
|
|
3
11
|
* Added rubyzip 1.0.0 as dependency for RubyXL in Rakefile ;/
|
|
4
12
|
|
|
5
|
-
=== 1.7.2 / 27.02.
|
|
13
|
+
=== 1.7.2 / 27.02.2014
|
|
6
14
|
|
|
7
15
|
* Added rubyzip 1.0.0 as dependency for RubyXL in Gemfile.lock ;/
|
|
8
16
|
|
|
9
|
-
=== 1.7.1 / 27.02.
|
|
17
|
+
=== 1.7.1 / 27.02.2014
|
|
10
18
|
|
|
11
19
|
* Added rubyzip 1.0.0 as dependency for RubyXL ;/
|
|
12
20
|
|
|
13
|
-
=== 1.7.0 / 27.02.
|
|
21
|
+
=== 1.7.0 / 27.02.2014
|
|
14
22
|
|
|
15
23
|
* Added rubyXL 1.2.10 as dependency version
|
|
16
24
|
|
|
17
|
-
=== 1.6.9 / 07.01.
|
|
25
|
+
=== 1.6.9 / 07.01.2014
|
|
18
26
|
|
|
19
27
|
* Updated Rakefile for rubyzip ~> 0.9.9
|
|
20
28
|
* Remove *.xls/x-Files after extraction
|
|
21
29
|
|
|
22
|
-
=== 1.6.8 / 07.01.
|
|
30
|
+
=== 1.6.8 / 07.01.2014
|
|
23
31
|
|
|
24
32
|
* Updated Rakefile to include rubyXL
|
|
25
33
|
|
|
26
|
-
=== 1.6.7 / 07.01.
|
|
34
|
+
=== 1.6.7 / 07.01.2014
|
|
27
35
|
|
|
28
36
|
* Adapted to swissmedic xlsx files
|
|
29
37
|
|
data/Rakefile
CHANGED
|
@@ -1,36 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# encoding: utf-8
|
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
+
require 'oddb2xml/version'
|
|
6
|
+
require "bundler/gem_tasks"
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
require 'hoe'
|
|
8
|
+
# dependencies are now declared in oddb2xml.gemspec
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# Hoe.plugin :racc
|
|
12
|
-
# Hoe.plugin :rubyforge
|
|
13
|
-
|
|
14
|
-
Hoe.spec 'oddb2xml' do
|
|
15
|
-
self.author = "Yasuhiro Asaka, Zeno R.R. Davatz" # gem.authors
|
|
16
|
-
self.email = "yasaka@ywesee.com, zdavatz@ywesee.com"
|
|
17
|
-
self.description = "oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic."
|
|
18
|
-
self.summary = "oddb2xml creates xml files."
|
|
19
|
-
self.urls = ["https://github.com/zdavatz/oddb2xml"] # gem.homepage
|
|
20
|
-
|
|
21
|
-
# gem.add_runtime_dependency
|
|
22
|
-
self.extra_deps << ['rubyzip', '~> 1.0.0']
|
|
23
|
-
self.extra_deps << ['archive-tar-minitar']
|
|
24
|
-
self.extra_deps << ['mechanize', '~> 2.5.1']
|
|
25
|
-
self.extra_deps << ['nokogiri']
|
|
26
|
-
self.extra_deps << ['savon', '>= 2.0']
|
|
27
|
-
self.extra_deps << ['spreadsheet']
|
|
28
|
-
self.extra_deps << ['rubyXL', '~> 1.2.10']
|
|
29
|
-
|
|
30
|
-
# gem.add_development_dependency
|
|
31
|
-
self.extra_dev_deps << ['rspec']
|
|
32
|
-
self.extra_dev_deps << ['webmock']
|
|
33
|
-
|
|
34
|
-
self.extra_dev_deps << ['hoe', '>= 3.4']
|
|
35
|
-
self.extra_dev_deps << ['rdoc']
|
|
36
|
-
end
|
|
10
|
+
desc 'Offer a gem task like hoe'
|
|
11
|
+
task :gem => :build do
|
|
12
|
+
Rake::Task[:build].invoke
|
|
13
|
+
end
|
data/bin/oddb2xml
CHANGED
|
@@ -15,7 +15,10 @@ Usage:
|
|
|
15
15
|
oddb2xml [option]
|
|
16
16
|
produced files are found under data
|
|
17
17
|
-a T, --append=T Additional target. T, only 'nonpharma' is available.
|
|
18
|
+
-ae Combine options nonpharma, extended, prices from ZurRose to create a oddb_with_migel.dat file.
|
|
18
19
|
-c F, --compress=F Compress format F. {tar.gz|zip}
|
|
20
|
+
-e --extended Get also all articles (including prices) from zurrose which have an EAN13 code.
|
|
21
|
+
(only valid if -p zurrose given)
|
|
19
22
|
-f F, --format=F File format F, default is xml. {xml|dat}
|
|
20
23
|
If F is given, -o option is ignored.
|
|
21
24
|
-i I, --include=I Include target option for 'dat' format. only 'ean14' is available.
|
|
@@ -38,6 +41,7 @@ opts = {
|
|
|
38
41
|
:fi => false,
|
|
39
42
|
:adr => false,
|
|
40
43
|
:nonpharma => false,
|
|
44
|
+
:extended => false,
|
|
41
45
|
:compress_ext => nil,
|
|
42
46
|
:format => :xml,
|
|
43
47
|
:tag_suffix => nil,
|
|
@@ -47,7 +51,13 @@ opts = {
|
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
parser.on('-a v', '--append v', /^nonpharma$/) {|v| opts[:nonpharma] = true }
|
|
54
|
+
parser.on('-ae') {|v| opts[:nonpharma] = true;
|
|
55
|
+
opts[:extended] = true;
|
|
56
|
+
opts[:format] = :dat;
|
|
57
|
+
opts[:price] = :zurrose;
|
|
58
|
+
}
|
|
50
59
|
parser.on('-c v', '--compress v', /^tar\.gz|zip$/){|v| opts[:compress_ext] = v }
|
|
60
|
+
parser.on('-e', '--extended') {|v| opts[:extended] = true }
|
|
51
61
|
parser.on('-f v', '--format v', /^xml|dat$/) {|v| opts[:format] = v.intern }
|
|
52
62
|
parser.on('-o v', '--option v', /^fi$/) {|v| opts[:fi] = true }
|
|
53
63
|
parser.on('-i v', '--include v', /^ean14$/) {|v| opts[:ean14] = true }
|
data/lib/oddb2xml/builder.rb
CHANGED
|
@@ -99,12 +99,37 @@ module Oddb2xml
|
|
|
99
99
|
end
|
|
100
100
|
@articles << obj
|
|
101
101
|
end
|
|
102
|
+
if @options[:extended]
|
|
103
|
+
nrAdded = 0
|
|
104
|
+
@prices.each{
|
|
105
|
+
|ean13, info|
|
|
106
|
+
obj = {}
|
|
107
|
+
%w[de fr].each do |lang|
|
|
108
|
+
next if @index[lang] and @index[lang][ean13]
|
|
109
|
+
entry = {
|
|
110
|
+
:desc => info[:description],
|
|
111
|
+
:status => 'I', # or it will not be emitted in the dat
|
|
112
|
+
:atc_code => '',
|
|
113
|
+
:ean => ean13,
|
|
114
|
+
:lang => lang.capitalize,
|
|
115
|
+
:pharmacode => info[:pharmacode],
|
|
116
|
+
:price => info[:price],
|
|
117
|
+
:pub_price => info[:pub_price],
|
|
118
|
+
:type => info[:type],
|
|
119
|
+
}
|
|
120
|
+
obj[lang.intern] = [entry]
|
|
121
|
+
end
|
|
122
|
+
nrAdded += 1
|
|
123
|
+
@articles << obj
|
|
124
|
+
}
|
|
125
|
+
end
|
|
102
126
|
end
|
|
103
127
|
end
|
|
104
128
|
def prepare_substances
|
|
105
129
|
unless @substances
|
|
106
130
|
@substances = []
|
|
107
131
|
@items.values.uniq.each do |seq|
|
|
132
|
+
next unless seq[:substances]
|
|
108
133
|
seq[:substances].each do |sub|
|
|
109
134
|
@substances << sub[:name]
|
|
110
135
|
end
|
|
@@ -117,6 +142,7 @@ module Oddb2xml
|
|
|
117
142
|
unless @limitations
|
|
118
143
|
limitations = []
|
|
119
144
|
@items.values.uniq.each do |seq|
|
|
145
|
+
next unless seq[:packages]
|
|
120
146
|
seq[:packages].each_value do |pac|
|
|
121
147
|
limitations += pac[:limitations]
|
|
122
148
|
end
|
|
@@ -539,7 +565,7 @@ module Oddb2xml
|
|
|
539
565
|
) {
|
|
540
566
|
@articles.each do |obj|
|
|
541
567
|
obj[:de].each_with_index do |de_idx, i|
|
|
542
|
-
|
|
568
|
+
fr_idx = obj[:fr][i] # swissindex FR
|
|
543
569
|
pac,no8 = nil,de_idx[:ean][4..11] # BAG-XML(SL/LS)
|
|
544
570
|
ppac = nil # Packungen
|
|
545
571
|
ean = de_idx[:ean]
|
|
@@ -547,7 +573,7 @@ module Oddb2xml
|
|
|
547
573
|
pac = obj[:seq][:packages][de_idx[:pharmacode]]
|
|
548
574
|
pac = obj[:seq][:packages][ean] unless pac
|
|
549
575
|
else
|
|
550
|
-
pac = @items[ean][:packages][ean] if @items and @items[ean]
|
|
576
|
+
pac = @items[ean][:packages][ean] if @items and @items[ean] and @items[ean][:packages]
|
|
551
577
|
end
|
|
552
578
|
if no8
|
|
553
579
|
ppac = ((_ppac = @packs[no8.intern] and !_ppac[:is_tier]) ? _ppac : nil)
|
|
@@ -599,11 +625,11 @@ module Oddb2xml
|
|
|
599
625
|
xml.BG(flag ? 'Y' : 'N')
|
|
600
626
|
end
|
|
601
627
|
#xml.EXP
|
|
602
|
-
xml.QTY de_idx[:additional_desc]
|
|
603
|
-
xml.DSCRD de_idx[:desc]
|
|
604
|
-
xml.DSCRF fr_idx[:desc]
|
|
605
|
-
xml.SORTD de_idx[:desc].upcase
|
|
606
|
-
xml.SORTF fr_idx[:desc].upcase
|
|
628
|
+
xml.QTY de_idx[:additional_desc] if de_idx[:additional_desc] and not de_idx[:additional_desc].empty?
|
|
629
|
+
xml.DSCRD de_idx[:desc] if de_idx[:desc] and not de_idx[:desc].empty?
|
|
630
|
+
xml.DSCRF fr_idx[:desc] if fr_idx[:desc] and not fr_idx[:desc].empty?
|
|
631
|
+
xml.SORTD de_idx[:desc].upcase if de_idx[:desc] and not de_idx[:desc].empty?
|
|
632
|
+
xml.SORTF fr_idx[:desc].upcase if fr_idx[:desc] and not fr_idx[:desc].empty?
|
|
607
633
|
#xml.QTYUD
|
|
608
634
|
#xml.QTYUF
|
|
609
635
|
#xml.IMG
|
|
@@ -630,8 +656,8 @@ module Oddb2xml
|
|
|
630
656
|
#xml.BAGSL
|
|
631
657
|
#xml.BAGSLC
|
|
632
658
|
#xml.LOACD
|
|
633
|
-
if de_idx[:status] ==
|
|
634
|
-
xml.OUTSAL de_idx[:stat_date]
|
|
659
|
+
if de_idx[:status] == 'I'
|
|
660
|
+
xml.OUTSAL de_idx[:stat_date] if de_idx[:stat_date] and not de_idx[:stat_date].empty?
|
|
635
661
|
end
|
|
636
662
|
#xml.STTOX
|
|
637
663
|
#xml.NOTI
|
|
@@ -647,7 +673,7 @@ module Oddb2xml
|
|
|
647
673
|
#xml.DEL
|
|
648
674
|
xml.ARTCOMP {
|
|
649
675
|
# use ean13(gln) as COMPNO
|
|
650
|
-
xml.COMPNO de_idx[:company_ean]
|
|
676
|
+
xml.COMPNO de_idx[:company_ean] if de_idx[:company_ean] and not de_idx[:company_ean].empty?
|
|
651
677
|
#xml.ROLE
|
|
652
678
|
#xml.ARTNO1
|
|
653
679
|
#xml.ARTNO2
|
|
@@ -889,6 +915,7 @@ module Oddb2xml
|
|
|
889
915
|
else
|
|
890
916
|
# fallback via EAN
|
|
891
917
|
bag_entry_via_ean = @items.values.select do |i|
|
|
918
|
+
next unless i[:packages]
|
|
892
919
|
i[:packages].values.select {|_pac| _pac[:ean] == de_idx[:ean] }.length != 0
|
|
893
920
|
end.length
|
|
894
921
|
if bag_entry_via_ean > 0
|
|
@@ -960,15 +987,16 @@ module Oddb2xml
|
|
|
960
987
|
obj[:de].each_with_index do |idx, i|
|
|
961
988
|
ean = idx[:ean]
|
|
962
989
|
next if ((ean.to_s.length != 13) and !ean14)
|
|
990
|
+
next if idx[:type] == :nonpharma
|
|
963
991
|
row = ''
|
|
964
992
|
# Oddb2tdat.parse
|
|
965
993
|
if idx[:status] =~ /A|I/
|
|
966
994
|
pac,no8 = nil,nil
|
|
967
|
-
if obj[:seq]
|
|
995
|
+
if obj[:seq] and obj[:seq][:packages]
|
|
968
996
|
pac = obj[:seq][:packages][idx[:pharmacode]]
|
|
969
997
|
pac = obj[:seq][:packages][ean] unless pac
|
|
970
998
|
else
|
|
971
|
-
pac = @items[ean][:packages][ean] if @items and @items[ean]
|
|
999
|
+
pac = @items[ean][:packages][ean] if @items and @items[ean] and @items[ean][:packages]
|
|
972
1000
|
end
|
|
973
1001
|
# :swissmedic_numbers
|
|
974
1002
|
if pac
|
|
@@ -980,7 +1008,7 @@ module Oddb2xml
|
|
|
980
1008
|
end
|
|
981
1009
|
row << "%#{DAT_LEN[:RECA]}s" % '11'
|
|
982
1010
|
row << "%#{DAT_LEN[:CMUT]}s" % if (phar = idx[:pharmacode] and phar.size > 3) # does not check expiration_date
|
|
983
|
-
idx[:status] ==
|
|
1011
|
+
idx[:status] == 'I' ? '3' : '1'
|
|
984
1012
|
else
|
|
985
1013
|
'3'
|
|
986
1014
|
end
|
|
@@ -988,7 +1016,7 @@ module Oddb2xml
|
|
|
988
1016
|
abez = ( # de name
|
|
989
1017
|
idx[:desc].to_s + " " +
|
|
990
1018
|
(pac ? pac[:name_de].to_s : '') +
|
|
991
|
-
idx[:additional_desc]
|
|
1019
|
+
(idx[:additional_desc] ? idx[:additional_desc] : '')
|
|
992
1020
|
).gsub(/"/, '')
|
|
993
1021
|
row << format_name(abez)
|
|
994
1022
|
row << "%#{DAT_LEN[:PRMO]}s" % (pac ? format_price(pac[:prices][:exf_price][:price].to_s) : ('0' * DAT_LEN[:PRMO]))
|
|
@@ -1048,7 +1076,7 @@ module Oddb2xml
|
|
|
1048
1076
|
row << "%0#{DAT_LEN[:PHAR]}d" % idx[:pharmacode].to_i
|
|
1049
1077
|
abez = ( # de name
|
|
1050
1078
|
idx[:desc].to_s + " " +
|
|
1051
|
-
|
|
1079
|
+
(idx[:additional_desc] ? idx[:additional_desc] : '')
|
|
1052
1080
|
).gsub(/"/, '')
|
|
1053
1081
|
row << format_name(abez)
|
|
1054
1082
|
row << "%#{DAT_LEN[:PRMO]}s" % ('0' * DAT_LEN[:PRMO])
|
data/lib/oddb2xml/cli.rb
CHANGED
|
@@ -237,7 +237,8 @@ module Oddb2xml
|
|
|
237
237
|
downloader = ZurroseDownloader.new(@options, @options[:transfer_dat])
|
|
238
238
|
xml = downloader.download
|
|
239
239
|
@mutex.synchronize do
|
|
240
|
-
hsh = ZurroseExtractor.new(xml).to_hash
|
|
240
|
+
hsh = ZurroseExtractor.new(xml, @options[:extended]).to_hash
|
|
241
|
+
@items = hsh if @options[:extended]
|
|
241
242
|
@prices = hsh
|
|
242
243
|
end
|
|
243
244
|
end
|
data/lib/oddb2xml/compressor.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'zlib'
|
|
4
4
|
require 'archive/tar/minitar'
|
|
5
|
-
require 'zip
|
|
5
|
+
require 'zip'
|
|
6
6
|
|
|
7
7
|
module Oddb2xml
|
|
8
8
|
class Compressor
|
|
@@ -27,7 +27,7 @@ module Oddb2xml
|
|
|
27
27
|
tgz = Zlib::GzipWriter.new(File.open(@compress_file, 'wb'))
|
|
28
28
|
Minitar.pack(@contents, tgz)
|
|
29
29
|
when /\.zip$/
|
|
30
|
-
Zip::
|
|
30
|
+
Zip::File.open(@compress_file, Zip::File::CREATE) do |zip|
|
|
31
31
|
@contents.each do |file|
|
|
32
32
|
filename = File.basename(file)
|
|
33
33
|
zip.add(filename, file)
|
data/lib/oddb2xml/downloader.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require 'mechanize'
|
|
4
|
-
require 'zip
|
|
4
|
+
require 'zip'
|
|
5
5
|
require 'savon'
|
|
6
6
|
|
|
7
7
|
module Oddb2xml
|
|
@@ -64,7 +64,7 @@ module Oddb2xml
|
|
|
64
64
|
def read_xml_form_zip(target, zipfile)
|
|
65
65
|
xml = ''
|
|
66
66
|
if RUBY_PLATFORM =~ /mswin|mingw|bccwin|cygwin/i
|
|
67
|
-
Zip::
|
|
67
|
+
Zip::File.open(zipfile) do |zipFile|
|
|
68
68
|
zipFile.each do |entry|
|
|
69
69
|
if entry.name =~ target
|
|
70
70
|
io = entry.get_input_stream
|
|
@@ -78,7 +78,7 @@ module Oddb2xml
|
|
|
78
78
|
end
|
|
79
79
|
end
|
|
80
80
|
else
|
|
81
|
-
Zip::
|
|
81
|
+
Zip::File.foreach(zipfile) do |entry|
|
|
82
82
|
if entry.name =~ target
|
|
83
83
|
entry.get_input_stream { |io| xml = io.read }
|
|
84
84
|
end
|
data/lib/oddb2xml/extractor.rb
CHANGED
|
@@ -415,20 +415,55 @@ module Oddb2xml
|
|
|
415
415
|
end
|
|
416
416
|
end
|
|
417
417
|
class ZurroseExtractor < Extractor
|
|
418
|
-
|
|
418
|
+
# see http://dev.ywesee.com/Bbmb/TransferDat
|
|
419
|
+
def initialize(dat, extended = false)
|
|
420
|
+
@@extended = extended
|
|
421
|
+
@@items_without_ean13s ||= 0
|
|
422
|
+
@@duplicated_ean13s ||= 0
|
|
423
|
+
@@zur_rose_items ||= 0
|
|
419
424
|
@io = StringIO.new(dat) if dat
|
|
420
425
|
end
|
|
421
426
|
def to_hash
|
|
422
427
|
data = {}
|
|
423
428
|
while line = @io.gets
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
+
if @@extended
|
|
430
|
+
next unless line =~ /(\d{13})(\d{1})\r\n$/
|
|
431
|
+
else
|
|
432
|
+
next unless line =~ /(7680\d{9})(\d{1})\r\n$/
|
|
433
|
+
end
|
|
434
|
+
pharma_code = line[3..9]
|
|
435
|
+
if $1.to_s == '0000000000000'
|
|
436
|
+
@@items_without_ean13s += 1
|
|
437
|
+
ean13 = '000000' + pharma_code # dummy ean13
|
|
438
|
+
else
|
|
439
|
+
ean13 = $1.to_s
|
|
440
|
+
end
|
|
441
|
+
if data[ean13]
|
|
442
|
+
puts "Duplicate ean13 #{ean13} in line \nact: #{line.chomp}\norg: #{data[ean13][:line]}"
|
|
443
|
+
@@items_without_ean13s -= 1
|
|
444
|
+
@@duplicated_ean13s += 1
|
|
445
|
+
next
|
|
446
|
+
end
|
|
447
|
+
data[ean13] = {
|
|
448
|
+
:line => line.chomp,
|
|
449
|
+
:ean => ean13,
|
|
450
|
+
:vat => $2.to_s,
|
|
451
|
+
:description => line[10..59], # .sub(/\s+$/, ''),
|
|
452
|
+
:additional_desc => '',
|
|
453
|
+
:pharmacode => pharma_code,
|
|
454
|
+
:price => sprintf("%.2f", line[60,6].gsub(/(\d{2})$/, '.\1').to_f),
|
|
455
|
+
:pub_price => sprintf("%.2f", line[66,6].gsub(/(\d{2})$/, '.\1').to_f),
|
|
456
|
+
:type => :nonpharma,
|
|
429
457
|
}
|
|
458
|
+
@@zur_rose_items += 1
|
|
430
459
|
end if @io
|
|
431
460
|
data
|
|
432
461
|
end
|
|
462
|
+
at_exit do
|
|
463
|
+
if defined?(@@extended) and @@extended
|
|
464
|
+
puts "Added #{@@items_without_ean13s} via pharmacodes of #{@@zur_rose_items} items when extracting the transfer.dat from \"Zur Rose\""
|
|
465
|
+
puts " found #{@@duplicated_ean13s} lines with duplicated ean13" if @@duplicated_ean13s > 0
|
|
466
|
+
end
|
|
467
|
+
end
|
|
433
468
|
end
|
|
434
469
|
end
|
data/lib/oddb2xml/version.rb
CHANGED
data/oddb2xml.gemspec
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'oddb2xml/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "oddb2xml"
|
|
8
|
+
spec.version = Oddb2xml::VERSION
|
|
9
|
+
spec.author = "Yasuhiro Asaka, Zeno R.R. Davatz"
|
|
10
|
+
spec.email = "yasaka@ywesee.com, zdavatz@ywesee.com"
|
|
11
|
+
spec.description = "oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic."
|
|
12
|
+
spec.summary = "oddb2xml creates xml files."
|
|
13
|
+
spec.homepage = "https://github.com/zdavatz/oddb2xml"
|
|
14
|
+
spec.license = "GPL-v2"
|
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
18
|
+
spec.require_paths = ["lib"]
|
|
19
|
+
|
|
20
|
+
spec.add_dependency 'rubyzip', '~> 1.0'
|
|
21
|
+
spec.add_dependency 'archive-tar-minitar'
|
|
22
|
+
spec.add_dependency 'mechanize', '~> 2.5.1'
|
|
23
|
+
spec.add_dependency 'nokogiri', '~> 1.5.10'
|
|
24
|
+
spec.add_dependency 'savon', '~> 2.0'
|
|
25
|
+
spec.add_dependency 'spreadsheet'
|
|
26
|
+
spec.add_dependency 'rubyXL', '~> 2.5'
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
spec.add_development_dependency "bundler"
|
|
30
|
+
spec.add_development_dependency "rake"
|
|
31
|
+
spec.add_development_dependency "rspec"
|
|
32
|
+
spec.add_development_dependency "webmock"
|
|
33
|
+
spec.add_development_dependency "rdoc"
|
|
34
|
+
end
|
|
35
|
+
|
data/spec/extractor_spec.rb
CHANGED
|
@@ -133,27 +133,54 @@ describe Oddb2xml::ZurroseExtractor do
|
|
|
133
133
|
end
|
|
134
134
|
it { expect(subject.to_hash).to be_empty }
|
|
135
135
|
end
|
|
136
|
-
context 'when
|
|
136
|
+
context 'when expected line is given' do
|
|
137
137
|
subject do
|
|
138
138
|
dat = <<-DAT
|
|
139
|
-
1120020209ERYTRHOCIN I.V. Trockensub Fl 1g 001518002010300B080160000000000000002\r\n
|
|
140
139
|
1120020244FERRO-GRADUMET Depottabl 30 Stk 000895001090300C060710076803164401152\r\n
|
|
141
140
|
DAT
|
|
142
141
|
Oddb2xml::ZurroseExtractor.new(dat)
|
|
143
142
|
end
|
|
144
143
|
it { expect(subject.to_hash.keys.length).to eq(1) }
|
|
145
144
|
it { expect(subject.to_hash.keys.first).to eq("7680316440115") }
|
|
145
|
+
it { expect(subject.to_hash.values.first[:vat]).to eq("2") }
|
|
146
|
+
it { expect(subject.to_hash.values.first[:price]).to eq("8.95") }
|
|
146
147
|
end
|
|
147
|
-
context 'when
|
|
148
|
+
context 'when Estradiol Creme is given' do
|
|
148
149
|
subject do
|
|
149
150
|
dat = <<-DAT
|
|
150
|
-
|
|
151
|
+
1130921929OESTRADIOL Inj L�s 5 mg 10 Amp 1 ml 000940001630300B070820076802840708402\r\n
|
|
151
152
|
DAT
|
|
152
153
|
Oddb2xml::ZurroseExtractor.new(dat)
|
|
153
154
|
end
|
|
155
|
+
#it { expect(pp subject.to_hash) }
|
|
154
156
|
it { expect(subject.to_hash.keys.length).to eq(1) }
|
|
155
|
-
it { expect(subject.to_hash.keys.first).to eq("
|
|
157
|
+
it { expect(subject.to_hash.keys.first).to eq("7680284070840") }
|
|
156
158
|
it { expect(subject.to_hash.values.first[:vat]).to eq("2") }
|
|
157
|
-
it { expect(subject.to_hash.values.first[:price]).to eq("
|
|
159
|
+
it { expect(subject.to_hash.values.first[:price]).to eq("9.40") }
|
|
160
|
+
it { expect(subject.to_hash.values.first[:pub_price]).to eq("16.30") }
|
|
161
|
+
it { expect(subject.to_hash.values.first[:pharmacode]).to eq("0921929") }
|
|
162
|
+
end
|
|
163
|
+
context 'when SELSUN Shampoo is given' do
|
|
164
|
+
subject do
|
|
165
|
+
dat = <<-DAT
|
|
166
|
+
1120020652SELSUN Shampoo Susp 120 ml 001576002430300D100400076801723306812\r\n
|
|
167
|
+
DAT
|
|
168
|
+
Oddb2xml::ZurroseExtractor.new(dat)
|
|
169
|
+
end
|
|
170
|
+
it { expect(subject.to_hash.keys.length).to eq(1) }
|
|
171
|
+
it { expect(subject.to_hash.keys.first).to eq("7680172330681") }
|
|
172
|
+
it { expect(subject.to_hash.values.first[:vat]).to eq("2") }
|
|
173
|
+
it { expect(subject.to_hash.values.first[:price]).to eq("15.76") }
|
|
174
|
+
it { expect(subject.to_hash.values.first[:pub_price]).to eq("24.30") }
|
|
175
|
+
it { expect(subject.to_hash.values.first[:pharmacode]).to eq("0020652") }
|
|
176
|
+
|
|
158
177
|
end
|
|
178
|
+
|
|
179
|
+
x =%(
|
|
180
|
+
Record-Art 1 Länge 97
|
|
181
|
+
:vat => $2.to_s,
|
|
182
|
+
:price => sprintf("%.2f", line[60,6].gsub(/(\d{2})$/, '.\1').to_f),
|
|
183
|
+
:pub_price => sprintf("%.2f", line[66,6].gsub(/(\d{2})$/, '.\1').to_f),
|
|
184
|
+
=
|
|
185
|
+
)
|
|
159
186
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oddb2xml
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.7.
|
|
4
|
+
version: 1.7.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-04-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubyzip
|
|
@@ -16,26 +16,26 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ~>
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.0
|
|
19
|
+
version: '1.0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ~>
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.0
|
|
26
|
+
version: '1.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: archive-tar-minitar
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - '>='
|
|
31
|
+
- - ! '>='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: '0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - '>='
|
|
38
|
+
- - ! '>='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
@@ -56,42 +56,42 @@ dependencies:
|
|
|
56
56
|
name: nokogiri
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- -
|
|
59
|
+
- - ~>
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 1.5.10
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- -
|
|
66
|
+
- - ~>
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 1.5.10
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: savon
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- -
|
|
73
|
+
- - ~>
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
75
|
version: '2.0'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- -
|
|
80
|
+
- - ~>
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '2.0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: spreadsheet
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
|
-
- - '>='
|
|
87
|
+
- - ! '>='
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
89
|
version: '0'
|
|
90
90
|
type: :runtime
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
|
-
- - '>='
|
|
94
|
+
- - ! '>='
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '0'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
@@ -100,80 +100,90 @@ dependencies:
|
|
|
100
100
|
requirements:
|
|
101
101
|
- - ~>
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
103
|
+
version: '2.5'
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - ~>
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: '2.5'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: bundler
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
|
-
- -
|
|
115
|
+
- - ! '>='
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
117
|
+
version: '0'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
|
-
- -
|
|
122
|
+
- - ! '>='
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rake
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ! '>='
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ! '>='
|
|
123
137
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
138
|
+
version: '0'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: rspec
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
128
142
|
requirements:
|
|
129
|
-
- - '>='
|
|
143
|
+
- - ! '>='
|
|
130
144
|
- !ruby/object:Gem::Version
|
|
131
145
|
version: '0'
|
|
132
146
|
type: :development
|
|
133
147
|
prerelease: false
|
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
149
|
requirements:
|
|
136
|
-
- - '>='
|
|
150
|
+
- - ! '>='
|
|
137
151
|
- !ruby/object:Gem::Version
|
|
138
152
|
version: '0'
|
|
139
153
|
- !ruby/object:Gem::Dependency
|
|
140
154
|
name: webmock
|
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
|
142
156
|
requirements:
|
|
143
|
-
- - '>='
|
|
157
|
+
- - ! '>='
|
|
144
158
|
- !ruby/object:Gem::Version
|
|
145
159
|
version: '0'
|
|
146
160
|
type: :development
|
|
147
161
|
prerelease: false
|
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
163
|
requirements:
|
|
150
|
-
- - '>='
|
|
164
|
+
- - ! '>='
|
|
151
165
|
- !ruby/object:Gem::Version
|
|
152
166
|
version: '0'
|
|
153
167
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name:
|
|
168
|
+
name: rdoc
|
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
|
156
170
|
requirements:
|
|
157
|
-
- - '>='
|
|
171
|
+
- - ! '>='
|
|
158
172
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '
|
|
173
|
+
version: '0'
|
|
160
174
|
type: :development
|
|
161
175
|
prerelease: false
|
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
177
|
requirements:
|
|
164
|
-
- - '>='
|
|
178
|
+
- - ! '>='
|
|
165
179
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '
|
|
180
|
+
version: '0'
|
|
167
181
|
description: oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic.
|
|
168
182
|
email: yasaka@ywesee.com, zdavatz@ywesee.com
|
|
169
183
|
executables:
|
|
170
184
|
- oddb2xml
|
|
171
185
|
extensions: []
|
|
172
|
-
extra_rdoc_files:
|
|
173
|
-
- History.txt
|
|
174
|
-
- Manifest.txt
|
|
175
|
-
- QA.md
|
|
176
|
-
- README.md
|
|
186
|
+
extra_rdoc_files: []
|
|
177
187
|
files:
|
|
178
188
|
- .gitignore
|
|
179
189
|
- .rspec
|
|
@@ -195,6 +205,7 @@ files:
|
|
|
195
205
|
- lib/oddb2xml/extractor.rb
|
|
196
206
|
- lib/oddb2xml/util.rb
|
|
197
207
|
- lib/oddb2xml/version.rb
|
|
208
|
+
- oddb2xml.gemspec
|
|
198
209
|
- spec/builder_spec.rb
|
|
199
210
|
- spec/cli_spec.rb
|
|
200
211
|
- spec/compressor_spec.rb
|
|
@@ -243,30 +254,73 @@ files:
|
|
|
243
254
|
- tools/cacert.pem
|
|
244
255
|
- tools/set.bat
|
|
245
256
|
- tools/win_fetch_cacerts.rb
|
|
246
|
-
- .gemtest
|
|
247
257
|
homepage: https://github.com/zdavatz/oddb2xml
|
|
248
|
-
licenses:
|
|
258
|
+
licenses:
|
|
259
|
+
- GPL-v2
|
|
249
260
|
metadata: {}
|
|
250
261
|
post_install_message:
|
|
251
|
-
rdoc_options:
|
|
252
|
-
- --main
|
|
253
|
-
- README.md
|
|
262
|
+
rdoc_options: []
|
|
254
263
|
require_paths:
|
|
255
264
|
- lib
|
|
256
265
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
257
266
|
requirements:
|
|
258
|
-
- - '>='
|
|
267
|
+
- - ! '>='
|
|
259
268
|
- !ruby/object:Gem::Version
|
|
260
269
|
version: '0'
|
|
261
270
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
262
271
|
requirements:
|
|
263
|
-
- - '>='
|
|
272
|
+
- - ! '>='
|
|
264
273
|
- !ruby/object:Gem::Version
|
|
265
274
|
version: '0'
|
|
266
275
|
requirements: []
|
|
267
|
-
rubyforge_project:
|
|
268
|
-
rubygems_version: 2.
|
|
276
|
+
rubyforge_project:
|
|
277
|
+
rubygems_version: 2.2.1
|
|
269
278
|
signing_key:
|
|
270
279
|
specification_version: 4
|
|
271
280
|
summary: oddb2xml creates xml files.
|
|
272
|
-
test_files:
|
|
281
|
+
test_files:
|
|
282
|
+
- spec/builder_spec.rb
|
|
283
|
+
- spec/cli_spec.rb
|
|
284
|
+
- spec/compressor_spec.rb
|
|
285
|
+
- spec/data/GL_Diff_SB.xml
|
|
286
|
+
- spec/data/Gestrichene_Packungen_Emballages_radies.xls
|
|
287
|
+
- spec/data/ItCodes.xml
|
|
288
|
+
- spec/data/PR121001.txt
|
|
289
|
+
- spec/data/PR121002.txt
|
|
290
|
+
- spec/data/Preparation.xml
|
|
291
|
+
- spec/data/Preparations.xml
|
|
292
|
+
- spec/data/Publications.xls
|
|
293
|
+
- spec/data/XMLPublications.zip
|
|
294
|
+
- spec/data/epha_interactions.csv
|
|
295
|
+
- spec/data/medregbm_betrieb.txt
|
|
296
|
+
- spec/data/medregbm_person.txt
|
|
297
|
+
- spec/data/oddb2xml_files_bm_update.txt
|
|
298
|
+
- spec/data/oddb2xml_files_lppv.txt
|
|
299
|
+
- spec/data/oddb2xml_files_nonpharma.xls
|
|
300
|
+
- spec/data/oddb_article.xml
|
|
301
|
+
- spec/data/oddb_fi.xml
|
|
302
|
+
- spec/data/oddb_fi_product.xml
|
|
303
|
+
- spec/data/oddb_limitation.xml
|
|
304
|
+
- spec/data/oddb_product.xml
|
|
305
|
+
- spec/data/oddb_substance.xml
|
|
306
|
+
- spec/data/swissindex.xml
|
|
307
|
+
- spec/data/swissindex_nonpharma.xml
|
|
308
|
+
- spec/data/swissindex_pharma.xml
|
|
309
|
+
- spec/data/swissmedic_fridges.html
|
|
310
|
+
- spec/data/swissmedic_fridges.xls
|
|
311
|
+
- spec/data/swissmedic_fridges.xlsx
|
|
312
|
+
- spec/data/swissmedic_info.html
|
|
313
|
+
- spec/data/swissmedic_info.zip
|
|
314
|
+
- spec/data/swissmedic_info_2.html
|
|
315
|
+
- spec/data/swissmedic_orphans.html
|
|
316
|
+
- spec/data/swissmedic_orphans.xls
|
|
317
|
+
- spec/data/swissmedic_packages.html
|
|
318
|
+
- spec/data/swissmedic_packages.xls
|
|
319
|
+
- spec/data/swissmedic_packages.xlsx
|
|
320
|
+
- spec/data/wsdl.xml
|
|
321
|
+
- spec/data/wsdl_nonpharma.xml
|
|
322
|
+
- spec/data/wsdl_pharma.xml
|
|
323
|
+
- spec/data/zurrose_transfer.dat
|
|
324
|
+
- spec/downloader_spec.rb
|
|
325
|
+
- spec/extractor_spec.rb
|
|
326
|
+
- spec/spec_helper.rb
|
data/.gemtest
DELETED
|
File without changes
|