oddb2xml 2.9.8 → 3.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c3b4fd2969d449a3f831746a612854c4f0698898608f8fdf0b5ee89031ab904
4
- data.tar.gz: 2a7736a3770feb3ec001b19983517d7b5f2863d60535fea10be97e0aeddb633c
3
+ metadata.gz: ab4100aa6c522cd66ca2a69af3959c576e82cfdaeb41cffd399cb6d451ba7ff2
4
+ data.tar.gz: 495bcb8a97881ba89f5a1bb9fd8acb264a56cdd8f262e1b7669579bffc9c77be
5
5
  SHA512:
6
- metadata.gz: b8e071d8e7a4633cabeec2bf5a3ebc8f9be57e012e1c17d01dfb72dbecbf2366319607381c978e3fe92e7b6e74a4894d5ce507dfd2fc460b657d349d2aaa53d0
7
- data.tar.gz: 581dad03717df312b1ef772ecc2dcf0fc214f59134d7f377037daf4992e8c1d3a714b1b13dc14b1f722ad430c6b865280c6f48d503b40931f6845b3d021fb4cd
6
+ metadata.gz: f9b839faf528860fdf2ab6e319b1db88812d1aa2c7e628df45ea6de1a932c78b51b93e84b6a30355ed8a40ca4f9782d73edce2ef3742934d8b1cff99c6d19ad8
7
+ data.tar.gz: a2878be3ff52ef0ee26d366f56bed4d1e443083730aa2253cbba6a1fecfcb40e01140910108649d7065dcbec3a2326208e2a8aca1918b60151df7aaea2983767
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oddb2xml (2.9.8)
4
+ oddb2xml (3.0.0)
5
5
  htmlentities
6
6
  httpi
7
7
  mechanize
@@ -15,7 +15,7 @@ PATH
15
15
  rexml
16
16
  rubyXL (~> 3.4.0)
17
17
  rubyntlm (= 0.5.1)
18
- rubyzip
18
+ rubyzip (~> 3.0.1)
19
19
  savon (~> 2.12.0)
20
20
  sax-machine
21
21
  spreadsheet
@@ -28,36 +28,33 @@ GEM
28
28
  specs:
29
29
  addressable (2.8.5)
30
30
  public_suffix (>= 2.0.2, < 6.0)
31
- akami (1.3.3)
32
- base64
31
+ akami (1.3.1)
33
32
  gyoku (>= 0.4.0)
34
33
  nokogiri
35
- ast (2.4.3)
36
- base64 (0.2.0)
37
- bigdecimal (3.1.9)
38
- builder (3.3.0)
34
+ ast (2.4.2)
35
+ builder (3.2.4)
39
36
  byebug (11.1.3)
40
37
  coderay (1.1.3)
41
- connection_pool (2.5.0)
38
+ connection_pool (2.4.1)
42
39
  crack (0.4.5)
43
40
  rexml
44
41
  diff-lcs (1.5.0)
45
- domain_name (0.6.20240107)
42
+ domain_name (0.5.20190701)
43
+ unf (>= 0.0.5, < 1.0.0)
46
44
  flexmock (2.3.8)
47
45
  gyoku (1.4.0)
48
46
  builder (>= 2.1.2)
49
47
  rexml (~> 3.0)
50
48
  hashdiff (1.0.1)
51
49
  htmlentities (4.3.4)
52
- http-cookie (1.0.8)
50
+ http-cookie (1.0.5)
53
51
  domain_name (~> 0.5)
54
52
  httpi (2.5.0)
55
53
  rack
56
54
  socksify
57
- json (2.10.2)
58
- language_server-protocol (3.17.0.4)
55
+ json (2.6.3)
56
+ language_server-protocol (3.17.0.3)
59
57
  lint_roller (1.1.0)
60
- logger (1.7.0)
61
58
  mechanize (2.7.7)
62
59
  domain_name (~> 0.5, >= 0.5.1)
63
60
  http-cookie (~> 1.0)
@@ -69,37 +66,33 @@ GEM
69
66
  webrick (~> 1.7)
70
67
  webrobots (>= 0.0.9, < 0.2)
71
68
  method_source (1.0.0)
72
- mime-types (3.6.2)
73
- logger
69
+ mime-types (3.5.1)
74
70
  mime-types-data (~> 3.2015)
75
- mime-types-data (3.2025.0408)
71
+ mime-types-data (3.2023.0808)
76
72
  mini_portile2 (2.8.4)
77
- minitar (1.0.2)
73
+ minitar (0.9)
78
74
  multi_json (1.15.0)
79
75
  net-http-digest_auth (1.4.1)
80
- net-http-persistent (4.0.5)
76
+ net-http-persistent (4.0.2)
81
77
  connection_pool (~> 2.2)
82
78
  nokogiri (1.13.9)
83
79
  mini_portile2 (~> 2.8.0)
84
80
  racc (~> 1.4)
85
- nori (2.7.1)
86
- bigdecimal
81
+ nori (2.6.0)
87
82
  ntlm-http (0.1.1)
88
- optimist (3.2.1)
89
- ox (2.14.22)
90
- bigdecimal (>= 3.0)
91
- parallel (1.26.3)
92
- parser (3.3.7.4)
83
+ optimist (3.1.0)
84
+ ox (2.14.14)
85
+ parallel (1.23.0)
86
+ parser (3.2.2.3)
93
87
  ast (~> 2.4.1)
94
88
  racc
95
89
  parslet (2.0.0)
96
- prism (1.4.0)
97
90
  pry (0.14.2)
98
91
  coderay (~> 1.1)
99
92
  method_source (~> 1.0)
100
- pry-byebug (3.10.1)
93
+ pry-byebug (3.8.0)
101
94
  byebug (~> 11.0)
102
- pry (>= 0.13, < 0.15)
95
+ pry (~> 0.10)
103
96
  pry-doc (1.4.0)
104
97
  pry (~> 0.11)
105
98
  yard (~> 0.9.11)
@@ -110,7 +103,7 @@ GEM
110
103
  rainbow (3.1.1)
111
104
  rake (13.0.6)
112
105
  rdoc (6.3.3)
113
- regexp_parser (2.10.0)
106
+ regexp_parser (2.8.1)
114
107
  rexml (3.2.6)
115
108
  rspec (3.12.0)
116
109
  rspec-core (~> 3.12.0)
@@ -125,31 +118,28 @@ GEM
125
118
  diff-lcs (>= 1.2.0, < 2.0)
126
119
  rspec-support (~> 3.12.0)
127
120
  rspec-support (3.12.1)
128
- rubocop (1.75.2)
121
+ rubocop (1.50.2)
129
122
  json (~> 2.3)
130
- language_server-protocol (~> 3.17.0.2)
131
- lint_roller (~> 1.1.0)
132
123
  parallel (~> 1.10)
133
- parser (>= 3.3.0.2)
124
+ parser (>= 3.2.0.0)
134
125
  rainbow (>= 2.2.2, < 4.0)
135
- regexp_parser (>= 2.9.3, < 3.0)
136
- rubocop-ast (>= 1.44.0, < 2.0)
126
+ regexp_parser (>= 1.8, < 3.0)
127
+ rexml (>= 3.2.5, < 4.0)
128
+ rubocop-ast (>= 1.28.0, < 2.0)
137
129
  ruby-progressbar (~> 1.7)
138
- unicode-display_width (>= 2.4.0, < 4.0)
139
- rubocop-ast (1.44.0)
140
- parser (>= 3.3.7.2)
141
- prism (~> 1.4)
142
- rubocop-performance (1.25.0)
143
- lint_roller (~> 1.1)
144
- rubocop (>= 1.75.0, < 2.0)
145
- rubocop-ast (>= 1.38.0, < 2.0)
146
- ruby-ole (1.2.13.1)
130
+ unicode-display_width (>= 2.4.0, < 3.0)
131
+ rubocop-ast (1.29.0)
132
+ parser (>= 3.2.1.0)
133
+ rubocop-performance (1.16.0)
134
+ rubocop (>= 1.7.0, < 2.0)
135
+ rubocop-ast (>= 0.4.0)
136
+ ruby-ole (1.2.12.2)
147
137
  ruby-progressbar (1.13.0)
148
- rubyXL (3.4.33)
138
+ rubyXL (3.4.25)
149
139
  nokogiri (>= 1.10.8)
150
140
  rubyzip (>= 1.3.0)
151
141
  rubyntlm (0.5.1)
152
- rubyzip (2.4.1)
142
+ rubyzip (3.0.1)
153
143
  savon (2.12.1)
154
144
  akami (~> 1.2)
155
145
  builder (>= 2.1.2)
@@ -160,29 +150,28 @@ GEM
160
150
  wasabi (~> 3.4)
161
151
  sax-machine (1.3.2)
162
152
  socksify (1.7.1)
163
- spreadsheet (1.3.4)
164
- bigdecimal
165
- logger
153
+ spreadsheet (1.3.0)
166
154
  ruby-ole
167
- standard (1.49.0)
155
+ standard (1.28.5)
168
156
  language_server-protocol (~> 3.17.0.2)
169
157
  lint_roller (~> 1.0)
170
- rubocop (~> 1.75.2)
158
+ rubocop (~> 1.50.2)
171
159
  standard-custom (~> 1.0.0)
172
- standard-performance (~> 1.8)
160
+ standard-performance (~> 1.0.1)
173
161
  standard-custom (1.0.2)
174
162
  lint_roller (~> 1.0)
175
163
  rubocop (~> 1.50)
176
- standard-performance (1.8.0)
177
- lint_roller (~> 1.1)
178
- rubocop-performance (~> 1.25.0)
164
+ standard-performance (1.0.1)
165
+ lint_roller (~> 1.0)
166
+ rubocop-performance (~> 1.16.0)
179
167
  standardrb (1.0.1)
180
168
  standard
181
169
  timecop (0.9.8)
182
- unicode-display_width (3.1.4)
183
- unicode-emoji (~> 4.0, >= 4.0.4)
184
- unicode-emoji (4.0.4)
185
- vcr (6.2.0)
170
+ unf (0.1.4)
171
+ unf_ext
172
+ unf_ext (0.0.8.2)
173
+ unicode-display_width (2.5.0)
174
+ vcr (6.1.0)
186
175
  wasabi (3.7.0)
187
176
  addressable
188
177
  httpi (~> 2.0)
@@ -191,7 +180,7 @@ GEM
191
180
  addressable (>= 2.8.0)
192
181
  crack (>= 0.3.2)
193
182
  hashdiff (>= 0.4.0, < 2.0.0)
194
- webrick (1.9.1)
183
+ webrick (1.8.1)
195
184
  webrobots (0.1.2)
196
185
  xml-simple (1.1.9)
197
186
  rexml
@@ -217,4 +206,4 @@ DEPENDENCIES
217
206
  webmock
218
207
 
219
208
  BUNDLED WITH
220
- 2.3.24
209
+ 2.4.19
data/gemset.nix CHANGED
@@ -5,10 +5,10 @@
5
5
  platforms = [];
6
6
  source = {
7
7
  remotes = ["https://rubygems.org"];
8
- sha256 = "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw";
8
+ sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
9
9
  type = "gem";
10
10
  };
11
- version = "2.8.1";
11
+ version = "2.8.5";
12
12
  };
13
13
  akami = {
14
14
  dependencies = ["gyoku" "nokogiri"];
@@ -66,10 +66,10 @@
66
66
  platforms = [];
67
67
  source = {
68
68
  remotes = ["https://rubygems.org"];
69
- sha256 = "1nj4r58m5cpfdsijj6gjfs3yzcnxq2halagjk07wjcrgj6z8ayb7";
69
+ sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
70
70
  type = "gem";
71
71
  };
72
- version = "2.3.0";
72
+ version = "2.4.1";
73
73
  };
74
74
  crack = {
75
75
  dependencies = ["rexml"];
@@ -108,10 +108,10 @@
108
108
  platforms = [];
109
109
  source = {
110
110
  remotes = ["https://rubygems.org"];
111
- sha256 = "07l5hlz57fxaksr34q7n933sr2v6gfsplaiv1z4fi2ql731nvamm";
111
+ sha256 = "07yabbg08chxv7simc9hvxjq6z16svx1gvd36jzb8k7yvn05560y";
112
112
  type = "gem";
113
113
  };
114
- version = "2.3.6";
114
+ version = "2.3.8";
115
115
  };
116
116
  gyoku = {
117
117
  dependencies = ["builder" "rexml"];
@@ -181,10 +181,20 @@
181
181
  platforms = [];
182
182
  source = {
183
183
  remotes = ["https://rubygems.org"];
184
- sha256 = "14r3zp2q75lrzpy2nz7hbhzqp8nsykd5ffy18d34xr32722i2ifr";
184
+ sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x";
185
+ type = "gem";
186
+ };
187
+ version = "3.17.0.3";
188
+ };
189
+ lint_roller = {
190
+ groups = ["default"];
191
+ platforms = [];
192
+ source = {
193
+ remotes = ["https://rubygems.org"];
194
+ sha256 = "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c";
185
195
  type = "gem";
186
196
  };
187
- version = "3.17.0.2";
197
+ version = "1.1.0";
188
198
  };
189
199
  mechanize = {
190
200
  dependencies = ["domain_name" "http-cookie" "mime-types" "net-http-digest_auth" "net-http-persistent" "nokogiri" "ntlm-http" "webrick" "webrobots"];
@@ -213,30 +223,30 @@
213
223
  platforms = [];
214
224
  source = {
215
225
  remotes = ["https://rubygems.org"];
216
- sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
226
+ sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
217
227
  type = "gem";
218
228
  };
219
- version = "3.4.1";
229
+ version = "3.5.1";
220
230
  };
221
231
  mime-types-data = {
222
232
  groups = ["default"];
223
233
  platforms = [];
224
234
  source = {
225
235
  remotes = ["https://rubygems.org"];
226
- sha256 = "003gd7mcay800k2q4pb2zn8lwwgci4bhi42v2jvlidm8ksx03i6q";
236
+ sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a";
227
237
  type = "gem";
228
238
  };
229
- version = "3.2022.0105";
239
+ version = "3.2023.0808";
230
240
  };
231
241
  mini_portile2 = {
232
242
  groups = ["default"];
233
243
  platforms = [];
234
244
  source = {
235
245
  remotes = ["https://rubygems.org"];
236
- sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp";
246
+ sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq";
237
247
  type = "gem";
238
248
  };
239
- version = "2.8.1";
249
+ version = "2.8.4";
240
250
  };
241
251
  minitar = {
242
252
  groups = ["default"];
@@ -274,10 +284,10 @@
274
284
  platforms = [];
275
285
  source = {
276
286
  remotes = ["https://rubygems.org"];
277
- sha256 = "1yfypmfg1maf20yfd22zzng8k955iylz7iip0mgc9lazw36g8li7";
287
+ sha256 = "0i1as2lgnw7b4jid0gw5glv5hnxz36nmfsbr9rmxbcap72ijgy03";
278
288
  type = "gem";
279
289
  };
280
- version = "4.0.1";
290
+ version = "4.0.2";
281
291
  };
282
292
  nokogiri = {
283
293
  dependencies = ["mini_portile2" "racc"];
@@ -311,55 +321,55 @@
311
321
  version = "0.1.1";
312
322
  };
313
323
  oddb2xml = {
314
- dependencies = ["htmlentities" "httpi" "mechanize" "minitar" "multi_json" "nokogiri" "optimist" "ox" "parslet" "rexml" "rubyXL" "rubyntlm" "rubyzip" "savon" "sax-machine" "spreadsheet" "standardrb" "webrick" "xml-simple"];
324
+ dependencies = ["htmlentities" "httpi" "mechanize" "minitar" "multi_json" "nokogiri" "optimist" "ox" "parslet" "rack" "rexml" "rubyXL" "rubyntlm" "rubyzip" "savon" "sax-machine" "spreadsheet" "standardrb" "webrick" "xml-simple"];
315
325
  groups = ["default"];
316
326
  platforms = [];
317
327
  source = {
318
328
  path = ./.;
319
329
  type = "path";
320
330
  };
321
- version = "2.7.9";
331
+ version = "2.9.9";
322
332
  };
323
333
  optimist = {
324
334
  groups = ["default"];
325
335
  platforms = [];
326
336
  source = {
327
337
  remotes = ["https://rubygems.org"];
328
- sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
338
+ sha256 = "0q4jqq3v1bxlfr9jgqmahnygkvl81lr6s1rhm8qg66c9xr9nz241";
329
339
  type = "gem";
330
340
  };
331
- version = "3.0.1";
341
+ version = "3.1.0";
332
342
  };
333
343
  ox = {
334
344
  groups = ["default"];
335
345
  platforms = [];
336
346
  source = {
337
347
  remotes = ["https://rubygems.org"];
338
- sha256 = "0kzwl7m6cp2dyncpm7cc8wvk9zsj1hd1pmbgxhjy85xr4sq1qf8a";
348
+ sha256 = "1g9ivy30jx7hjl8l3il47dmc9xgla8dj762v5cw0mgzpd9rq6vr4";
339
349
  type = "gem";
340
350
  };
341
- version = "2.14.12";
351
+ version = "2.14.14";
342
352
  };
343
353
  parallel = {
344
354
  groups = ["default"];
345
355
  platforms = [];
346
356
  source = {
347
357
  remotes = ["https://rubygems.org"];
348
- sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb";
358
+ sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
349
359
  type = "gem";
350
360
  };
351
- version = "1.22.1";
361
+ version = "1.23.0";
352
362
  };
353
363
  parser = {
354
- dependencies = ["ast"];
364
+ dependencies = ["ast" "racc"];
355
365
  groups = ["default"];
356
366
  platforms = [];
357
367
  source = {
358
368
  remotes = ["https://rubygems.org"];
359
- sha256 = "0zk8mdyr0322r11d63rcp5jhz4lakxilhvyvdv0ql5dw4lb83623";
369
+ sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
360
370
  type = "gem";
361
371
  };
362
- version = "3.2.0.0";
372
+ version = "3.2.2.3";
363
373
  };
364
374
  parslet = {
365
375
  groups = ["default"];
@@ -388,10 +398,10 @@
388
398
  platforms = [];
389
399
  source = {
390
400
  remotes = ["https://rubygems.org"];
391
- sha256 = "1y41al94ks07166qbp2200yzyr5y60hm7xaiw4lxpgsm4b1pbyf8";
401
+ sha256 = "07cv2hddswb334777pjgc9avxn0x9qhrdr191g7windvnjk3scvg";
392
402
  type = "gem";
393
403
  };
394
- version = "3.10.1";
404
+ version = "3.8.0";
395
405
  };
396
406
  pry-doc = {
397
407
  dependencies = ["pry" "yard"];
@@ -419,30 +429,30 @@
419
429
  platforms = [];
420
430
  source = {
421
431
  remotes = ["https://rubygems.org"];
422
- sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
432
+ sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
423
433
  type = "gem";
424
434
  };
425
- version = "5.0.1";
435
+ version = "5.0.3";
426
436
  };
427
437
  racc = {
428
438
  groups = ["default"];
429
439
  platforms = [];
430
440
  source = {
431
441
  remotes = ["https://rubygems.org"];
432
- sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq";
442
+ sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
433
443
  type = "gem";
434
444
  };
435
- version = "1.6.2";
445
+ version = "1.7.1";
436
446
  };
437
447
  rack = {
438
448
  groups = ["default"];
439
449
  platforms = [];
440
450
  source = {
441
451
  remotes = ["https://rubygems.org"];
442
- sha256 = "006km9h9kfdipwpqvjkfb0hfnd65w60cw0imx6qmx77b0h746frs";
452
+ sha256 = "137r9zqwh0dan6s0fw91wk6iip9alh44bqgbhn80sxk0h5kp7150";
443
453
  type = "gem";
444
454
  };
445
- version = "3.0.3";
455
+ version = "3.0.11";
446
456
  };
447
457
  rainbow = {
448
458
  groups = ["default"];
@@ -479,20 +489,20 @@
479
489
  platforms = [];
480
490
  source = {
481
491
  remotes = ["https://rubygems.org"];
482
- sha256 = "0rj7xcg7bkfw6y0h4wg8y3s4nmks9qrzdxag4zaw41xjqfanlysf";
492
+ sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
483
493
  type = "gem";
484
494
  };
485
- version = "2.6.1";
495
+ version = "2.8.1";
486
496
  };
487
497
  rexml = {
488
498
  groups = ["default" "development"];
489
499
  platforms = [];
490
500
  source = {
491
501
  remotes = ["https://rubygems.org"];
492
- sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
502
+ sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
493
503
  type = "gem";
494
504
  };
495
- version = "3.2.5";
505
+ version = "3.2.6";
496
506
  };
497
507
  rspec = {
498
508
  dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -511,10 +521,10 @@
511
521
  platforms = [];
512
522
  source = {
513
523
  remotes = ["https://rubygems.org"];
514
- sha256 = "1ibb81slc35q5yp276sixp3yrvj9q92wlmi1glbnwlk6g49z8rn4";
524
+ sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm";
515
525
  type = "gem";
516
526
  };
517
- version = "3.12.0";
527
+ version = "3.12.2";
518
528
  };
519
529
  rspec-expectations = {
520
530
  dependencies = ["diff-lcs" "rspec-support"];
@@ -522,10 +532,10 @@
522
532
  platforms = [];
523
533
  source = {
524
534
  remotes = ["https://rubygems.org"];
525
- sha256 = "03ba3lfdsj9zl00v1yvwgcx87lbadf87livlfa5kgqssn9qdnll6";
535
+ sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89";
526
536
  type = "gem";
527
537
  };
528
- version = "3.12.2";
538
+ version = "3.12.3";
529
539
  };
530
540
  rspec-mocks = {
531
541
  dependencies = ["diff-lcs" "rspec-support"];
@@ -533,20 +543,20 @@
533
543
  platforms = [];
534
544
  source = {
535
545
  remotes = ["https://rubygems.org"];
536
- sha256 = "0k64i7ax6sqvh702s0xrll2g8isxx1x4zam95ck7122flsyh7van";
546
+ sha256 = "1gq7gviwpck7fhp4y5ibljljvxgjklza18j62qf6zkm2icaa8lfy";
537
547
  type = "gem";
538
548
  };
539
- version = "3.12.2";
549
+ version = "3.12.6";
540
550
  };
541
551
  rspec-support = {
542
552
  groups = ["default" "development"];
543
553
  platforms = [];
544
554
  source = {
545
555
  remotes = ["https://rubygems.org"];
546
- sha256 = "12y52zwwb3xr7h91dy9k3ndmyyhr3mjcayk0nnarnrzz8yr48kfx";
556
+ sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr";
547
557
  type = "gem";
548
558
  };
549
- version = "3.12.0";
559
+ version = "3.12.1";
550
560
  };
551
561
  rubocop = {
552
562
  dependencies = ["json" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -554,10 +564,10 @@
554
564
  platforms = [];
555
565
  source = {
556
566
  remotes = ["https://rubygems.org"];
557
- sha256 = "0shbma3bjm761waklzg10gy9jxl6m48l5035kli429sw7qna5sm8";
567
+ sha256 = "0l46lw5gfj3mcm982wpmx7br4rs466gyislv0hfwcsk8dxhv1zkw";
558
568
  type = "gem";
559
569
  };
560
- version = "1.42.0";
570
+ version = "1.50.2";
561
571
  };
562
572
  rubocop-ast = {
563
573
  dependencies = ["parser"];
@@ -565,10 +575,10 @@
565
575
  platforms = [];
566
576
  source = {
567
577
  remotes = ["https://rubygems.org"];
568
- sha256 = "1pdzabz95hv3z5sfbkfqa8bdybsfl13gv7rjb32v3ss8klq99lbd";
578
+ sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
569
579
  type = "gem";
570
580
  };
571
- version = "1.24.1";
581
+ version = "1.29.0";
572
582
  };
573
583
  rubocop-performance = {
574
584
  dependencies = ["rubocop" "rubocop-ast"];
@@ -576,10 +586,10 @@
576
586
  platforms = [];
577
587
  source = {
578
588
  remotes = ["https://rubygems.org"];
579
- sha256 = "1iwv2zhcpaan038d6m7ybzb2dgpi2zhf9dgfs3bjvmrqirqi2720";
589
+ sha256 = "1n7g0vg06ldjaq4f8c11c7yqy99zng1qdrkkk4kfziippy24yxnc";
580
590
  type = "gem";
581
591
  };
582
- version = "1.15.2";
592
+ version = "1.16.0";
583
593
  };
584
594
  ruby-ole = {
585
595
  groups = ["default"];
@@ -596,10 +606,10 @@
596
606
  platforms = [];
597
607
  source = {
598
608
  remotes = ["https://rubygems.org"];
599
- sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
609
+ sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
600
610
  type = "gem";
601
611
  };
602
- version = "1.11.0";
612
+ version = "1.13.0";
603
613
  };
604
614
  rubyntlm = {
605
615
  groups = ["default"];
@@ -627,10 +637,10 @@
627
637
  platforms = [];
628
638
  source = {
629
639
  remotes = ["https://rubygems.org"];
630
- sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
640
+ sha256 = "19xqyp8ixshf9mv0vy3d5qsi6acffh7849i6rrba3f9xz4pz7fwb";
631
641
  type = "gem";
632
642
  };
633
- version = "2.3.2";
643
+ version = "3.0.1";
634
644
  };
635
645
  savon = {
636
646
  dependencies = ["akami" "builder" "gyoku" "httpi" "nokogiri" "nori" "wasabi"];
@@ -675,15 +685,37 @@
675
685
  version = "1.3.0";
676
686
  };
677
687
  standard = {
678
- dependencies = ["language_server-protocol" "rubocop" "rubocop-performance"];
688
+ dependencies = ["language_server-protocol" "lint_roller" "rubocop" "standard-custom" "standard-performance"];
679
689
  groups = ["default"];
680
690
  platforms = [];
681
691
  source = {
682
692
  remotes = ["https://rubygems.org"];
683
- sha256 = "1xwsmpkyxfz2bgcv1n8w3fdmxl19mwr5m512h723w30gcba5lpl8";
693
+ sha256 = "1qbw7rp6mqs6bcxj4814qi6xqfqjmlrxdv6mbk33xrs4lvdaviba";
684
694
  type = "gem";
685
695
  };
686
- version = "1.21.1";
696
+ version = "1.28.5";
697
+ };
698
+ standard-custom = {
699
+ dependencies = ["lint_roller" "rubocop"];
700
+ groups = ["default"];
701
+ platforms = [];
702
+ source = {
703
+ remotes = ["https://rubygems.org"];
704
+ sha256 = "0av55ai0nv23z5mhrwj1clmxpgyngk7vk6rh58d4y1ws2y2dqjj2";
705
+ type = "gem";
706
+ };
707
+ version = "1.0.2";
708
+ };
709
+ standard-performance = {
710
+ dependencies = ["lint_roller" "rubocop-performance"];
711
+ groups = ["default"];
712
+ platforms = [];
713
+ source = {
714
+ remotes = ["https://rubygems.org"];
715
+ sha256 = "13hfyfangb46lagf0a044jwbagb8iak12pdzjfbdrkc5lbcvzydj";
716
+ type = "gem";
717
+ };
718
+ version = "1.0.1";
687
719
  };
688
720
  standardrb = {
689
721
  dependencies = ["standard"];
@@ -701,10 +733,10 @@
701
733
  platforms = [];
702
734
  source = {
703
735
  remotes = ["https://rubygems.org"];
704
- sha256 = "0dlx4gx0zh836i7nzna03xdl7fc233s5z6plnr6k3kw46ah8d1fc";
736
+ sha256 = "0qzmk0gf4j21mgqzfhpyb5m1rjx132p9k41hgl05rcmg9sjnv6c9";
705
737
  type = "gem";
706
738
  };
707
- version = "0.9.6";
739
+ version = "0.9.8";
708
740
  };
709
741
  unf = {
710
742
  dependencies = ["unf_ext"];
@@ -732,10 +764,10 @@
732
764
  platforms = [];
733
765
  source = {
734
766
  remotes = ["https://rubygems.org"];
735
- sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
767
+ sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
736
768
  type = "gem";
737
769
  };
738
- version = "2.4.2";
770
+ version = "2.5.0";
739
771
  };
740
772
  vcr = {
741
773
  groups = ["development"];
@@ -764,20 +796,20 @@
764
796
  platforms = [];
765
797
  source = {
766
798
  remotes = ["https://rubygems.org"];
767
- sha256 = "1myj44wvbbqvv18ragv3ihl0h61acgnfwrnj3lccdgp49bgmbjal";
799
+ sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
768
800
  type = "gem";
769
801
  };
770
- version = "3.18.1";
802
+ version = "3.19.1";
771
803
  };
772
804
  webrick = {
773
- groups = ["debugger" "default"];
805
+ groups = ["default"];
774
806
  platforms = [];
775
807
  source = {
776
808
  remotes = ["https://rubygems.org"];
777
- sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
809
+ sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
778
810
  type = "gem";
779
811
  };
780
- version = "1.7.0";
812
+ version = "1.8.1";
781
813
  };
782
814
  webrobots = {
783
815
  groups = ["default"];
@@ -801,14 +833,13 @@
801
833
  version = "1.1.9";
802
834
  };
803
835
  yard = {
804
- dependencies = ["webrick"];
805
836
  groups = ["debugger" "default"];
806
837
  platforms = [];
807
838
  source = {
808
839
  remotes = ["https://rubygems.org"];
809
- sha256 = "0p1if8g9ww6hlpfkphqv3y1z0rbqnnrvb38c5qhnala0f8qpw6yk";
840
+ sha256 = "1r0b8w58p7gy06wph1qdjv2p087hfnmhd9jk23vjdj803dn761am";
810
841
  type = "gem";
811
842
  };
812
- version = "0.9.28";
843
+ version = "0.9.36";
813
844
  };
814
845
  }
data/lib/oddb2xml/cli.rb CHANGED
@@ -65,7 +65,12 @@ module Oddb2xml
65
65
  threads << download(:firstbase) # https://github.com/zdavatz/oddb2xml/issues/63
66
66
  end
67
67
  types.each do |type|
68
- threads << download(:refdata, type) # refdata
68
+ begin
69
+ threads << download(:refdata, type) # refdata
70
+ rescue error
71
+ # Should continue even when error #102
72
+ Oddb2xml.log("Error in downloading refdata #{error}")
73
+ end
69
74
  end
70
75
  end
71
76
  begin
@@ -311,10 +316,15 @@ module Oddb2xml
311
316
  end
312
317
  end
313
318
  @mutex.synchronize do
314
- hsh = RefdataExtractor.new(xml, type).to_hash
315
- @refdata_types[type] = hsh
316
- Oddb2xml.log("RefdataExtractor #{type} added #{hsh.size} keys now #{@refdata_types.keys} items from xml with #{xml.size} bytes")
317
- @refdata_types[type]
319
+ begin
320
+ hsh = RefdataExtractor.new(xml, type).to_hash
321
+ @refdata_types[type] = hsh
322
+ Oddb2xml.log("RefdataExtractor #{type} added #{hsh.size} keys now #{@refdata_types.keys} items from xml with #{xml.size} bytes")
323
+ @refdata_types[type]
324
+ rescue error
325
+ # Should continue even when error https://github.com/zdavatz/oddb2xml/issues/102
326
+ Oddb2xml.log("Error in RefdataExtractor #{error}")
327
+ end
318
328
  end
319
329
 
320
330
  when :firstbase
@@ -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::File.open(@compress_file, Zip::File::CREATE) do |zip|
30
+ Zip::File.open(@compress_file, create: true) do |zip|
31
31
  @contents.each do |file|
32
32
  filename = File.basename(file)
33
33
  zip.add(filename, file)
@@ -241,9 +241,9 @@ module Oddb2xml
241
241
  end
242
242
 
243
243
  class RefdataDownloader < Downloader
244
+ include DownloadMethod
244
245
  def initialize(options = {}, type = :pharma)
245
- @type = (type == :pharma ? "Pharma" : "NonPharma")
246
- url = "https://refdatabase.refdata.ch/Service/Article.asmx?WSDL"
246
+ url = "https://files.refdata.ch/simis-public-prod/Articles/1.0/Refdata.Articles.zip"
247
247
  super(options, url)
248
248
  end
249
249
 
@@ -258,46 +258,10 @@ module Oddb2xml
258
258
  end
259
259
 
260
260
  def download
261
- begin
262
- @file2save = File.join(DOWNLOADS, "refdata_#{@type}.xml")
263
- soap = %(<?xml version="1.0" encoding="UTF-8"?>
264
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://refdatabase.refdata.ch/Article_in" xmlns:ns2="http://refdatabase.refdata.ch/">
265
- <SOAP-ENV:Body>
266
- <ns2:DownloadArticleInput>
267
- <ns1:ATYPE>#{@type.upcase}</ns1:ATYPE>
268
- </ns2:DownloadArticleInput>
269
- </SOAP-ENV:Body>
270
- </SOAP-ENV:Envelope>
271
- </ns1:ATYPE></ns2:DownloadArticleInput></SOAP-ENV:Body>
272
- )
273
- report_download(@url, @file2save)
274
- return IO.read(@file2save) if Oddb2xml.skip_download? && File.exist?(@file2save)
275
- FileUtils.rm_f(@file2save, verbose: true)
276
- response = @client.call(:download, xml: soap)
277
- if response.success?
278
- if (xml = response.to_xml)
279
- xml = File.read(File.join(Oddb2xml::SpecData, File.basename(@file2save))) if defined?(RSpec)
280
- response = nil # win
281
- FileUtils.makedirs(DOWNLOADS)
282
- File.open(@file2save, "w+") { |file| file.write xml }
283
- if @options[:artikelstamm]
284
- cmd = "xmllint --format --output #{@file2save} #{@file2save}"
285
- Oddb2xml.log(cmd)
286
- system(cmd)
287
- end
288
- else
289
- # received broken data or internal error
290
- raise StandardError
291
- end
292
- else
293
- raise Timeout::Error
294
- end
295
- rescue HTTPI::SSLError
296
- exit # catch me in Cli class
297
- rescue Timeout::Error, Errno::ETIMEDOUT
298
- retrievable? ? retry : raise
299
- end
300
- xml
261
+ filename = "Refdata.Articles.zip"
262
+ download_as(filename, "w+")
263
+ content = read_xml_from_zip(/Refdata.Articles.xml/, File.join(DOWNLOADS, filename))
264
+ content
301
265
  end
302
266
  end
303
267
 
@@ -208,10 +208,13 @@ module Oddb2xml
208
208
 
209
209
  def to_hash
210
210
  data = {}
211
- result = SwissRegArticleEntry.parse(@xml.sub(STRIP_FOR_SAX_MACHINE, ""), lazy: true)
212
- items = result.ARTICLE.ITEM
213
- items.each do |pac|
214
- ean13 = (gtin = pac.GTIN.to_s) ? gtin : "0"
211
+ result = SwissRegArticles.parse(@xml.sub(STRIP_FOR_SAX_MACHINE, ""), lazy: true)
212
+ result.Article.each do |article|
213
+ article_type = article.MedicinalProduct.ProductClassification.ProductClass
214
+ if article_type != @type
215
+ next
216
+ end
217
+ ean13 = @type == "PHARMA" ? article.PackagedProduct.DataCarrierIdentifier : article.MedicinalProduct.Identifier
215
218
  if ean13.size < 13
216
219
  puts "Refdata #{@type} use 13 chars not #{ean13.size} for #{ean13}" if $VERBOSE
217
220
  ean13 = ean13.rjust(13, "0")
@@ -220,21 +223,29 @@ module Oddb2xml
220
223
  puts "Refdata #{@type} remove leading '0' for #{ean13}" if $VERBOSE
221
224
  ean13 = ean13[1..-1]
222
225
  end
223
- # but in refdata_nonPharma we have a about 700 GTINs which are 14 characters and longer
224
226
  item = {}
225
227
  item[:ean13] = ean13
226
- item[:no8] = pac.SWMC_AUTHNR
228
+ item[:no8] = article.PackagedProduct.RegulatedAuthorisationIdentifier || ""
227
229
  item[:data_origin] = "refdata"
228
230
  item[:refdata] = true
229
- item[:_type] = (typ = pac.ATYPE.downcase.to_sym) ? typ : ""
230
- item[:last_change] = (date = Time.parse(pac.DT).to_s) ? date : "" # Date and time of last data change
231
- item[:desc_de] = (dscr = pac.NAME_DE) ? dscr : ""
232
- item[:desc_fr] = (dscr = pac.NAME_FR) ? dscr : ""
233
- item[:desc_it] = item[:desc_de] # refdata has no italian name
234
- item[:atc_code] = (code = pac.ATC) ? code.to_s : ""
235
- item[:company_name] = (nam = pac.AUTH_HOLDER_NAME) ? nam : ""
236
- item[:company_ean] = (gln = pac.AUTH_HOLDER_GLN) ? gln : ""
237
- data[item[:ean13]] = item
231
+ item[:_type] = @type.downcase.to_sym
232
+ item[:last_change] = "" # TODO: Date and time of last data change
233
+ item[:desc_de] = ""
234
+ item[:desc_fr] = ""
235
+ item[:desc_it] = ""
236
+ article.PackagedProduct.Name.each do |name|
237
+ if name.Language == "DE"
238
+ item[:desc_de] = name.FullName
239
+ elsif name.Language == "FR"
240
+ item[:desc_fr] = name.FullName
241
+ elsif name.Language == "IT"
242
+ item[:desc_it] = name.FullName
243
+ end
244
+ end
245
+ item[:atc_code] = article.MedicinalProduct.ProductClassification.Atc || ""
246
+ item[:company_name] = article.PackagedProduct.Holder.Name || ""
247
+ item[:company_ean] = article.PackagedProduct.Holder.Identifier || ""
248
+ data[ean13] = item
238
249
  end
239
250
  data
240
251
  end
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.9.8"
2
+ VERSION = "3.0.0"
3
3
  end
@@ -238,29 +238,69 @@ class MedicalInformationsEntry
238
238
  element :medicalInformations, class: MedicalInformationsContent
239
239
  end
240
240
 
241
- class SwissRegItemContentContent
241
+ class SwissRegProductClassification
242
242
  include SAXMachine
243
- attribute :DT
244
- element :ATYPE
245
- element :GTIN
246
- element :PHAR
247
- element :SWMC_AUTHNR
248
- element :NAME_DE
249
- element :NAME_FR
250
- element :ADDSCR
251
- element :ATC
252
- element :AUTH_HOLDER_NAME
253
- element :AUTH_HOLDER_GLN
243
+ element :ProductClass
244
+ element :Atc
254
245
  end
255
246
 
256
- class SwissRegArticleContent
247
+ class SwissRegMedicinalProduct
257
248
  include SAXMachine
258
- attribute :CREATION_DATETIME
259
- elements :ITEM, class: SwissRegItemContentContent
249
+ element :Identifier
250
+ element :Domain
251
+ element :LegalStatusOfSupply
252
+ element :RegulatedAuthorisationIdentifier
253
+ element :ProductClassification, class: SwissRegProductClassification
260
254
  end
261
255
 
262
- class SwissRegArticleEntry
256
+ class SwissRegHolder
263
257
  include SAXMachine
264
- element :CREATION_DATETIME
265
- element :ARTICLE, class: SwissRegArticleContent
258
+ element :Identifier
259
+ element :Name
260
+ end
261
+
262
+ class SwissRegName
263
+ include SAXMachine
264
+ element :Language
265
+ element :FullName
266
+ end
267
+
268
+ class SwissRegMarketingStatus
269
+ include SAXMachine
270
+ element :DateStart
271
+ end
272
+
273
+ class SwissRegPackagedProduct
274
+ include SAXMachine
275
+ element :Identifier
276
+ element :RegulatedAuthorisationIdentifier
277
+ element :DataCarrierIdentifier
278
+ element :Holder, class: SwissRegHolder
279
+ elements :Name, class: SwissRegName
280
+ element :MarketingStatus, class: SwissRegMarketingStatus
281
+ end
282
+
283
+ class SwissRegArticle
284
+ include SAXMachine
285
+ element :MedicinalProduct, class: SwissRegMedicinalProduct
286
+ element :PackagedProduct, class: SwissRegPackagedProduct
287
+ end
288
+
289
+ class SwissRegDocumentReference
290
+ include SAXMachine
291
+ element :Language
292
+ element :Url
293
+ end
294
+
295
+ class SwissRegProductPrice
296
+ include SAXMachine
297
+ element :RetailPrice
298
+ end
299
+
300
+ class SwissRegArticles
301
+ include SAXMachine
302
+ elements :Article, class: SwissRegArticle
303
+ elements :DocumentReference, class: SwissRegDocumentReference
304
+ element :Hpc
305
+ element :ProductPrice, class: SwissRegProductPrice
266
306
  end
data/oddb2xml.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  # We fix the version of the spec to newer versions only in the third position
21
21
  # hoping that these version fix only security/severe bugs
22
22
  # Consulted the Gemfile.lock to get
23
- spec.add_dependency "rubyzip" # , '~> 1.1.3'
23
+ spec.add_dependency "rubyzip", '~> 3.0.1'
24
24
  spec.add_dependency "minitar" # , '~> 0.5.2'
25
25
  spec.add_dependency "mechanize" # , '~> 2.5.1'
26
26
  spec.add_dependency "nokogiri", ">= 1.8.2"
@@ -85,7 +85,7 @@ end
85
85
  # Zips input_filenames (using the basename)
86
86
  def zip_files(zipfile_name, input_filenames)
87
87
  FileUtils.rm_f(zipfile_name)
88
- Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
88
+ Zip::File.open(zipfile_name, create: true) do |zipfile|
89
89
  input_filenames.each do |filename|
90
90
  puts "Add #{filename} #{File.size(filename)} bytes as #{File.basename(filename)} #{Dir.pwd}" if $VERBOSE
91
91
  zipfile.add(File.basename(filename), filename)
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oddb2xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.8
4
+ version: 3.0.0
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: 2025-04-09 00:00:00.000000000 Z
11
+ date: 2025-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.0.1
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: '0'
26
+ version: 3.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitar
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -565,7 +565,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
565
565
  - !ruby/object:Gem::Version
566
566
  version: '0'
567
567
  requirements: []
568
- rubygems_version: 3.4.1
568
+ rubygems_version: 3.5.22
569
569
  signing_key:
570
570
  specification_version: 4
571
571
  summary: oddb2xml creates xml files.