oddb2xml 2.8.1 → 2.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +6 -9
- data/Gemfile.lock +51 -39
- data/lib/oddb2xml/builder.rb +39 -2
- data/lib/oddb2xml/calc.rb +2 -2
- data/lib/oddb2xml/options.rb +1 -0
- data/lib/oddb2xml/version.rb +1 -1
- data/spec/builder_spec.rb +1 -1
- data/spec/options_spec.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4ff8b8b33c1b2c3ea41660576b5f9d116e99640a56098d429e2525138d9c8a1
|
4
|
+
data.tar.gz: 7ed3e2d40e97d0631119bd1c1e87f4d1de599939b21a95313487d7664cbc4a05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c3ca2d08823ffb6909f86c2b08c72334ff671126a8dcead06ac5872cc2fd17d9f175d0f1b65a28647e13847027215a02365a2d3beecfa7aa1ae8b24a896fd00
|
7
|
+
data.tar.gz: 3880524ed3c9602c1f693b4b4d8d52f548c2c4e34561675b5954936de9fd746019fb5287cd46484c9797cf7f874a6ba053d03e4f43d43812c024b97a9f871443
|
data/.github/workflows/ruby.yml
CHANGED
@@ -9,7 +9,7 @@ name: Ruby
|
|
9
9
|
|
10
10
|
on:
|
11
11
|
push:
|
12
|
-
branches: [ master ]
|
12
|
+
branches: [ master, '*' ]
|
13
13
|
pull_request:
|
14
14
|
branches: [ master ]
|
15
15
|
|
@@ -21,19 +21,16 @@ jobs:
|
|
21
21
|
strategy:
|
22
22
|
fail-fast: false
|
23
23
|
matrix:
|
24
|
-
os: [
|
25
|
-
ruby: [
|
24
|
+
os: [ubuntu]
|
25
|
+
ruby: ["3.0", "3.1", "3.2"]
|
26
|
+
env:
|
27
|
+
BUNDLE_PATH: ".bundle/gems"
|
28
|
+
BUNDLE_WITHOUT: "debugger"
|
26
29
|
steps:
|
27
30
|
- uses: actions/checkout@v2
|
28
31
|
- uses: ruby/setup-ruby@v1
|
29
32
|
with:
|
30
33
|
ruby-version: ${{ matrix.ruby }}
|
31
34
|
bundler-cache: true
|
32
|
-
|
33
|
-
- name: Install dependencies
|
34
|
-
run: |
|
35
|
-
bundle config set path .bundle/gems --local
|
36
|
-
bundle config set without debugger --local
|
37
|
-
bundle install
|
38
35
|
- name: Test with RSpec
|
39
36
|
run: bundle exec rspec
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
oddb2xml (2.8.
|
4
|
+
oddb2xml (2.8.2)
|
5
5
|
htmlentities
|
6
6
|
httpi
|
7
7
|
mechanize
|
@@ -25,22 +25,23 @@ PATH
|
|
25
25
|
GEM
|
26
26
|
remote: https://rubygems.org/
|
27
27
|
specs:
|
28
|
-
addressable (2.8.
|
28
|
+
addressable (2.8.5)
|
29
29
|
public_suffix (>= 2.0.2, < 6.0)
|
30
30
|
akami (1.3.1)
|
31
31
|
gyoku (>= 0.4.0)
|
32
32
|
nokogiri
|
33
33
|
ast (2.4.2)
|
34
|
+
base64 (0.1.1)
|
34
35
|
builder (3.2.4)
|
35
36
|
byebug (11.1.3)
|
36
37
|
coderay (1.1.3)
|
37
|
-
connection_pool (2.
|
38
|
+
connection_pool (2.4.1)
|
38
39
|
crack (0.4.5)
|
39
40
|
rexml
|
40
41
|
diff-lcs (1.5.0)
|
41
42
|
domain_name (0.5.20190701)
|
42
43
|
unf (>= 0.0.5, < 1.0.0)
|
43
|
-
flexmock (2.3.
|
44
|
+
flexmock (2.3.8)
|
44
45
|
gyoku (1.4.0)
|
45
46
|
builder (>= 2.1.2)
|
46
47
|
rexml (~> 3.0)
|
@@ -53,6 +54,7 @@ GEM
|
|
53
54
|
socksify
|
54
55
|
json (2.6.3)
|
55
56
|
language_server-protocol (3.17.0.3)
|
57
|
+
lint_roller (1.1.0)
|
56
58
|
mechanize (2.7.7)
|
57
59
|
domain_name (~> 0.5, >= 0.5.1)
|
58
60
|
http-cookie (~> 1.0)
|
@@ -64,25 +66,26 @@ GEM
|
|
64
66
|
webrick (~> 1.7)
|
65
67
|
webrobots (>= 0.0.9, < 0.2)
|
66
68
|
method_source (1.0.0)
|
67
|
-
mime-types (3.
|
69
|
+
mime-types (3.5.1)
|
68
70
|
mime-types-data (~> 3.2015)
|
69
|
-
mime-types-data (3.
|
70
|
-
mini_portile2 (2.8.
|
71
|
+
mime-types-data (3.2023.0808)
|
72
|
+
mini_portile2 (2.8.4)
|
71
73
|
minitar (0.9)
|
72
74
|
multi_json (1.15.0)
|
73
75
|
net-http-digest_auth (1.4.1)
|
74
|
-
net-http-persistent (4.0.
|
76
|
+
net-http-persistent (4.0.2)
|
75
77
|
connection_pool (~> 2.2)
|
76
78
|
nokogiri (1.13.9)
|
77
79
|
mini_portile2 (~> 2.8.0)
|
78
80
|
racc (~> 1.4)
|
79
81
|
nori (2.6.0)
|
80
82
|
ntlm-http (0.1.1)
|
81
|
-
optimist (3.0
|
82
|
-
ox (2.14.
|
83
|
-
parallel (1.
|
84
|
-
parser (3.2.
|
83
|
+
optimist (3.1.0)
|
84
|
+
ox (2.14.17)
|
85
|
+
parallel (1.23.0)
|
86
|
+
parser (3.2.2.3)
|
85
87
|
ast (~> 2.4.1)
|
88
|
+
racc
|
86
89
|
parslet (2.0.0)
|
87
90
|
pry (0.14.2)
|
88
91
|
coderay (~> 1.1)
|
@@ -94,44 +97,46 @@ GEM
|
|
94
97
|
pry (~> 0.11)
|
95
98
|
yard (~> 0.9.11)
|
96
99
|
psych (3.3.4)
|
97
|
-
public_suffix (5.0.
|
98
|
-
racc (1.
|
100
|
+
public_suffix (5.0.3)
|
101
|
+
racc (1.7.1)
|
99
102
|
rack (3.0.8)
|
100
103
|
rainbow (3.1.1)
|
101
104
|
rake (13.0.6)
|
102
105
|
rdoc (6.3.3)
|
103
|
-
regexp_parser (2.
|
104
|
-
rexml (3.2.
|
106
|
+
regexp_parser (2.8.1)
|
107
|
+
rexml (3.2.6)
|
105
108
|
rspec (3.12.0)
|
106
109
|
rspec-core (~> 3.12.0)
|
107
110
|
rspec-expectations (~> 3.12.0)
|
108
111
|
rspec-mocks (~> 3.12.0)
|
109
|
-
rspec-core (3.12.
|
112
|
+
rspec-core (3.12.2)
|
110
113
|
rspec-support (~> 3.12.0)
|
111
|
-
rspec-expectations (3.12.
|
114
|
+
rspec-expectations (3.12.3)
|
112
115
|
diff-lcs (>= 1.2.0, < 2.0)
|
113
116
|
rspec-support (~> 3.12.0)
|
114
|
-
rspec-mocks (3.12.
|
117
|
+
rspec-mocks (3.12.6)
|
115
118
|
diff-lcs (>= 1.2.0, < 2.0)
|
116
119
|
rspec-support (~> 3.12.0)
|
117
|
-
rspec-support (3.12.
|
118
|
-
rubocop (1.
|
120
|
+
rspec-support (3.12.1)
|
121
|
+
rubocop (1.56.4)
|
122
|
+
base64 (~> 0.1.1)
|
119
123
|
json (~> 2.3)
|
124
|
+
language_server-protocol (>= 3.17.0)
|
120
125
|
parallel (~> 1.10)
|
121
|
-
parser (>= 3.
|
126
|
+
parser (>= 3.2.2.3)
|
122
127
|
rainbow (>= 2.2.2, < 4.0)
|
123
128
|
regexp_parser (>= 1.8, < 3.0)
|
124
129
|
rexml (>= 3.2.5, < 4.0)
|
125
|
-
rubocop-ast (>= 1.
|
130
|
+
rubocop-ast (>= 1.28.1, < 2.0)
|
126
131
|
ruby-progressbar (~> 1.7)
|
127
|
-
unicode-display_width (>=
|
128
|
-
rubocop-ast (1.
|
129
|
-
parser (>= 3.
|
130
|
-
rubocop-performance (1.
|
132
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
133
|
+
rubocop-ast (1.29.0)
|
134
|
+
parser (>= 3.2.1.0)
|
135
|
+
rubocop-performance (1.19.1)
|
131
136
|
rubocop (>= 1.7.0, < 2.0)
|
132
137
|
rubocop-ast (>= 0.4.0)
|
133
138
|
ruby-ole (1.2.12.2)
|
134
|
-
ruby-progressbar (1.
|
139
|
+
ruby-progressbar (1.13.0)
|
135
140
|
rubyXL (3.4.25)
|
136
141
|
nokogiri (>= 1.10.8)
|
137
142
|
rubyzip (>= 1.3.0)
|
@@ -149,32 +154,39 @@ GEM
|
|
149
154
|
socksify (1.7.1)
|
150
155
|
spreadsheet (1.3.0)
|
151
156
|
ruby-ole
|
152
|
-
standard (1.
|
157
|
+
standard (1.31.1)
|
153
158
|
language_server-protocol (~> 3.17.0.2)
|
154
|
-
|
155
|
-
rubocop
|
159
|
+
lint_roller (~> 1.0)
|
160
|
+
rubocop (~> 1.56.2)
|
161
|
+
standard-custom (~> 1.0.0)
|
162
|
+
standard-performance (~> 1.2)
|
163
|
+
standard-custom (1.0.2)
|
164
|
+
lint_roller (~> 1.0)
|
165
|
+
rubocop (~> 1.50)
|
166
|
+
standard-performance (1.2.0)
|
167
|
+
lint_roller (~> 1.1)
|
168
|
+
rubocop-performance (~> 1.19.0)
|
156
169
|
standardrb (1.0.1)
|
157
170
|
standard
|
158
|
-
timecop (0.9.
|
171
|
+
timecop (0.9.8)
|
159
172
|
unf (0.1.4)
|
160
173
|
unf_ext
|
161
174
|
unf_ext (0.0.8.2)
|
162
|
-
unicode-display_width (2.
|
163
|
-
vcr (6.
|
175
|
+
unicode-display_width (2.5.0)
|
176
|
+
vcr (6.2.0)
|
164
177
|
wasabi (3.7.0)
|
165
178
|
addressable
|
166
179
|
httpi (~> 2.0)
|
167
180
|
nokogiri (>= 1.4.2)
|
168
|
-
webmock (3.
|
181
|
+
webmock (3.19.1)
|
169
182
|
addressable (>= 2.8.0)
|
170
183
|
crack (>= 0.3.2)
|
171
184
|
hashdiff (>= 0.4.0, < 2.0.0)
|
172
|
-
webrick (1.
|
185
|
+
webrick (1.8.1)
|
173
186
|
webrobots (0.1.2)
|
174
187
|
xml-simple (1.1.9)
|
175
188
|
rexml
|
176
|
-
yard (0.9.
|
177
|
-
webrick (~> 1.7.0)
|
189
|
+
yard (0.9.34)
|
178
190
|
|
179
191
|
PLATFORMS
|
180
192
|
ruby
|
@@ -195,4 +207,4 @@ DEPENDENCIES
|
|
195
207
|
webmock
|
196
208
|
|
197
209
|
BUNDLED WITH
|
198
|
-
2.3.
|
210
|
+
2.3.24
|
data/lib/oddb2xml/builder.rb
CHANGED
@@ -545,15 +545,50 @@ module Oddb2xml
|
|
545
545
|
Oddb2xml.log "build_product add_missing_products_from_swissmedic. Added #{corrected_size - size_old} corrected_size #{corrected_size} size_old #{size_old} ean13_to_product."
|
546
546
|
end
|
547
547
|
|
548
|
+
def add_products_from_bag_preparations(add_to_products = false)
|
549
|
+
Oddb2xml.log "build_product add_products_from_bag_preparations. Starting with #{@products.size} products and #{@items.size} @items"
|
550
|
+
ean13_to_product = {}
|
551
|
+
@products.each { |ean13, obj|
|
552
|
+
ean13_to_product[ean13] = obj
|
553
|
+
obj[:pharmacode] ||= @refdata[ean13][:pharmacode] if @refdata[ean13]
|
554
|
+
}
|
555
|
+
size_old = ean13_to_product.size
|
556
|
+
Oddb2xml.log "build_product add_products_from_bag_preparations. Imported #{size_old} ean13_to_product from @products. Checking #{@items.size} @items"
|
557
|
+
@items.each do |ean13, item|
|
558
|
+
next if @products[ean13]
|
559
|
+
if add_to_products
|
560
|
+
@products[ean13] = {
|
561
|
+
seq: item,
|
562
|
+
pac: nil,
|
563
|
+
sequence_name: "",
|
564
|
+
desc_de: "#{item[:name_de]}, #{item[:desc_de]}, #{item[:packages][ean13][:desc_de]}",
|
565
|
+
desc_fr: "#{item[:name_fr]}, #{item[:desc_fr]}, #{item[:packages][ean13][:desc_fr]}",
|
566
|
+
no8: "",
|
567
|
+
ean13: ean13,
|
568
|
+
atc: item[:atc_code],
|
569
|
+
ith: "",
|
570
|
+
siz: "",
|
571
|
+
eht: "",
|
572
|
+
sub: "",
|
573
|
+
comp: "",
|
574
|
+
drug_index: ""
|
575
|
+
}
|
576
|
+
end
|
577
|
+
ean13_to_product[ean13] = item
|
578
|
+
end
|
579
|
+
corrected_size = ean13_to_product.size
|
580
|
+
Oddb2xml.log "build_product add_products_from_bag_preparations. Added #{corrected_size - size_old} corrected_size #{corrected_size} size_old #{size_old} ean13_to_product."
|
581
|
+
end
|
582
|
+
|
548
583
|
def build_product
|
549
584
|
self.class.class_eval do
|
550
585
|
def check_name(obj, lang = :de)
|
551
586
|
ean = obj[:ean13]
|
552
587
|
refdata = @refdata[ean]
|
553
588
|
if lang == :de
|
554
|
-
name = refdata && refdata[:desc_de] ? refdata[:desc_de] : obj[:sequence_name]
|
589
|
+
name = refdata && refdata[:desc_de] ? refdata[:desc_de] : (obj[:desc_de] || obj[:sequence_name])
|
555
590
|
elsif lang == :fr
|
556
|
-
name = refdata && refdata[:desc_fr] ? refdata[:desc_fr] : obj[:sequence_name]
|
591
|
+
name = refdata && refdata[:desc_fr] ? refdata[:desc_fr] : (obj[:desc_fr] || obj[:sequence_name])
|
557
592
|
elsif lang == :it
|
558
593
|
name = refdata[:desc_it] if refdata && refdata[:desc_it]
|
559
594
|
else
|
@@ -568,6 +603,7 @@ module Oddb2xml
|
|
568
603
|
prepare_interactions
|
569
604
|
prepare_codes
|
570
605
|
add_missing_products_from_swissmedic
|
606
|
+
add_products_from_bag_preparations(true)
|
571
607
|
nbr_products = 0
|
572
608
|
Oddb2xml.log "build_product #{@products.size + @missing.size} products"
|
573
609
|
a_builder = Nokogiri::XML::Builder.new(encoding: "utf-8") do |xml|
|
@@ -1722,6 +1758,7 @@ module Oddb2xml
|
|
1722
1758
|
prepare_articles
|
1723
1759
|
prepare_products
|
1724
1760
|
add_missing_products_from_swissmedic(true)
|
1761
|
+
add_products_from_bag_preparations(true)
|
1725
1762
|
prepare_calc_items(suppress_composition_parsing: true)
|
1726
1763
|
@prepared = true
|
1727
1764
|
@old_rose_size = @infos_zur_rose.size
|
data/lib/oddb2xml/calc.rb
CHANGED
@@ -95,8 +95,8 @@ module Oddb2xml
|
|
95
95
|
UNKNOWN_GALENIC_FORM = 140
|
96
96
|
UNKNOWN_GALENIC_GROUP = 1
|
97
97
|
DATA_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "data"))
|
98
|
-
@@galenic_groups = YAML.
|
99
|
-
@@galenic_forms = YAML.
|
98
|
+
@@galenic_groups = YAML.safe_load_file(File.join(DATA_DIR, "gal_groups.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
|
99
|
+
@@galenic_forms = YAML.safe_load_file(File.join(DATA_DIR, "gal_forms.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
|
100
100
|
@@new_galenic_forms = []
|
101
101
|
@@names_without_galenic_forms = []
|
102
102
|
@@rules_counter = {}
|
data/lib/oddb2xml/options.rb
CHANGED
data/lib/oddb2xml/version.rb
CHANGED
data/spec/builder_spec.rb
CHANGED
@@ -458,7 +458,7 @@ NR_LIMITATIONS = 15
|
|
458
458
|
NR_INTERACTIONS = 2
|
459
459
|
NR_CODES = 5
|
460
460
|
NR_PRODNO = 31
|
461
|
-
NR_PACKAGES =
|
461
|
+
NR_PACKAGES = 61
|
462
462
|
NR_PRODUCTS = 40
|
463
463
|
REG_EXP_DESITIN = /1120000000LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk/
|
464
464
|
describe Oddb2xml::Builder do
|
data/spec/options_spec.rb
CHANGED
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: 2.8.
|
4
|
+
version: 2.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|