oddb2xml 2.8.1 → 2.8.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7cc43d372c64564821c3594e837a93058f4b9aeb51bef7dd76036e694fed737a
4
- data.tar.gz: 44e66c7136db33e6cbb656f070522cffe920f736a1a15ddfa2fa8363a79b3ca4
3
+ metadata.gz: d4ff8b8b33c1b2c3ea41660576b5f9d116e99640a56098d429e2525138d9c8a1
4
+ data.tar.gz: 7ed3e2d40e97d0631119bd1c1e87f4d1de599939b21a95313487d7664cbc4a05
5
5
  SHA512:
6
- metadata.gz: 94d01ca34a3d6d535f14f873d377c5a46ae99a28c63330fe5fe14f886f416218d75df5ab3201fd05da9c607110de05666d6297fdfb9941a3b2f61a1a87517560
7
- data.tar.gz: 6313c7015702732aa1be35b404b2b87a4230adc0b20bc8600bfa55d4c7e93ce8f16bab9cc13b6748927ce4ba13d0d97862ceabed64d81ae9baed397c436fd0ac
6
+ metadata.gz: 0c3ca2d08823ffb6909f86c2b08c72334ff671126a8dcead06ac5872cc2fd17d9f175d0f1b65a28647e13847027215a02365a2d3beecfa7aa1ae8b24a896fd00
7
+ data.tar.gz: 3880524ed3c9602c1f693b4b4d8d52f548c2c4e34561675b5954936de9fd746019fb5287cd46484c9797cf7f874a6ba053d03e4f43d43812c024b97a9f871443
@@ -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: [ ubuntu]
25
- ruby: [2.6, 2.7, "3.0", 3.1, 3.2]
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.1)
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.1)
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.3.0)
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.6)
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.4.1)
69
+ mime-types (3.5.1)
68
70
  mime-types-data (~> 3.2015)
69
- mime-types-data (3.2022.0105)
70
- mini_portile2 (2.8.1)
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.1)
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.1)
82
- ox (2.14.12)
83
- parallel (1.22.1)
84
- parser (3.2.0.0)
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.1)
98
- racc (1.6.2)
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.6.2)
104
- rexml (3.2.5)
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.0)
112
+ rspec-core (3.12.2)
110
113
  rspec-support (~> 3.12.0)
111
- rspec-expectations (3.12.2)
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.2)
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.0)
118
- rubocop (1.42.0)
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.1.2.1)
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.24.1, < 2.0)
130
+ rubocop-ast (>= 1.28.1, < 2.0)
126
131
  ruby-progressbar (~> 1.7)
127
- unicode-display_width (>= 1.4.0, < 3.0)
128
- rubocop-ast (1.24.1)
129
- parser (>= 3.1.1.0)
130
- rubocop-performance (1.15.2)
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.11.0)
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.22.1)
157
+ standard (1.31.1)
153
158
  language_server-protocol (~> 3.17.0.2)
154
- rubocop (= 1.42.0)
155
- rubocop-performance (= 1.15.2)
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.6)
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.4.2)
163
- vcr (6.1.0)
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.18.1)
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.7.0)
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.28)
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.26
210
+ 2.3.24
@@ -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.load_file(File.join(DATA_DIR, "gal_groups.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
99
- @@galenic_forms = YAML.load_file(File.join(DATA_DIR, "gal_forms.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
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 = {}
@@ -66,6 +66,7 @@ module Oddb2xml
66
66
  end
67
67
  if @opts[:firstbase]
68
68
  @opts[:nonpharma] = true
69
+ @opts[:calc] = true
69
70
  end
70
71
  @opts[:price] = :zurrose if @opts[:price].is_a?(TrueClass)
71
72
  @opts[:price] = @opts[:price].to_sym if @opts[:price]
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.8.1"
2
+ VERSION = "2.8.2"
3
3
  end
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 = 47
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
@@ -15,7 +15,8 @@ Oddb2xml::DEFAULT_OPTS = {
15
15
  skip_download: false,
16
16
  log: false,
17
17
  percent: nil,
18
- use_ra11zip: nil
18
+ use_ra11zip: nil,
19
+ firstbase: false,
19
20
  }
20
21
 
21
22
  describe Oddb2xml::Options do
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.1
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-10-26 00:00:00.000000000 Z
11
+ date: 2023-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip