oddb2xml 2.7.0 → 2.7.1
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 +40 -0
- data/History.txt +7 -0
- data/lib/oddb2xml/builder.rb +9 -13
- data/lib/oddb2xml/extractor.rb +0 -7
- data/lib/oddb2xml/util.rb +3 -1
- data/lib/oddb2xml/version.rb +1 -1
- data/oddb2xml.gemspec +2 -0
- data/spec/artikelstamm_spec.rb +3 -22
- data/spec/builder_spec.rb +12 -25
- data/spec/data/refdata_NonPharma.xml +0 -3
- data/spec/data/refdata_Pharma.xml +0 -26
- data/spec/extractor_spec.rb +5 -9
- metadata +32 -4
- data/.travis.yml +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c31777bcd85038bd65d38d67d6ebdf2197f174389403b76ff146b18d3ef4557e
|
4
|
+
data.tar.gz: 8d8930ed04518838084ae4aeb69181418b2eddb36cfa83ece2cbc84ccd06e1f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abe9685cc40ba1fbf9525c3cbeb9f332a98725e76621074c9f1df179c91e53cb50a4f15e78a800a28224351d3a47ec8aef0e3b9ee17787a8dccd519db65bc6d8
|
7
|
+
data.tar.gz: 415b9049a316af98279f7af0b602ecd85b0bd2e86493133af512d37b494d43155822ef754ad6dcaa39b1aa474fddba57081860588b7e896da13bf891e9b522d6
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on:
|
11
|
+
push:
|
12
|
+
branches: [ master ]
|
13
|
+
pull_request:
|
14
|
+
branches: [ master ]
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
test:
|
18
|
+
runs-on: ubuntu-latest
|
19
|
+
# Using a matrix fails, because /setup-ruby always invokes bundle install without any additional args
|
20
|
+
# Fixed by adding not defining the debugger group in the Gemfile
|
21
|
+
strategy:
|
22
|
+
fail-fast: false
|
23
|
+
matrix:
|
24
|
+
os: [ ubuntu]
|
25
|
+
ruby: [2.4, 2.5, 2.6, 2.7, 3.0, head]
|
26
|
+
continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
|
27
|
+
steps:
|
28
|
+
- uses: actions/checkout@v2
|
29
|
+
- uses: ruby/setup-ruby@v1
|
30
|
+
with:
|
31
|
+
ruby-version: ${{ matrix.ruby }}
|
32
|
+
bundler-cache: true
|
33
|
+
|
34
|
+
- name: Install dependencies
|
35
|
+
run: |
|
36
|
+
bundle config set path .bundle/gems --local
|
37
|
+
bundle config set without debugger --local
|
38
|
+
bundle install
|
39
|
+
- name: Test with RSpec
|
40
|
+
run: bundle exec rspec
|
data/History.txt
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
=== 2.7.1 / 03.02.2021
|
2
|
+
* travis-ci -> Github Actions
|
3
|
+
* limit DSCRD/DSCRF to 120 chars as specified in the XSD
|
4
|
+
* Use huge option for nokogiri as suggested by https://github.com/sparklemotion/nokogiri/issues/2187
|
5
|
+
* Adapt artikelstamm to refdata without pharmacode
|
6
|
+
* oddb_article get pharmacode where possible from transfer.dat
|
7
|
+
|
1
8
|
=== 2.7.0 / 05.11.2020
|
2
9
|
* Chapter70 hack nur als Kommentar
|
3
10
|
* Avoid double hyphen in comment
|
data/lib/oddb2xml/builder.rb
CHANGED
@@ -520,7 +520,7 @@ module Oddb2xml
|
|
520
520
|
return false
|
521
521
|
end
|
522
522
|
return false if !name || name.empty? || name.length < 3
|
523
|
-
name
|
523
|
+
name[0..119] # limit to maximal 120 chars as specified in the XSD
|
524
524
|
end
|
525
525
|
prepare_substances
|
526
526
|
prepare_products
|
@@ -886,8 +886,12 @@ module Oddb2xml
|
|
886
886
|
xml.ART('DT' => obj[:last_change] ? obj[:last_change] : '') do
|
887
887
|
nbr_records += 1
|
888
888
|
xml.REF_DATA (obj[:refdata] || @migel[pharma_code]) ? '1' : '0'
|
889
|
-
|
890
|
-
|
889
|
+
if obj[:pharmacode] && obj[:pharmacode].length > 0
|
890
|
+
xml.PHAR obj[:pharmacode]
|
891
|
+
elsif zur_rose
|
892
|
+
puts "Adding #{zur_rose[:pharmacode]} to article GTIN #{ean}"
|
893
|
+
xml.PHAR zur_rose[:pharmacode]
|
894
|
+
end
|
891
895
|
#xml.GRPCD
|
892
896
|
#xml.CDS01
|
893
897
|
#xml.CDS02
|
@@ -988,14 +992,7 @@ module Oddb2xml
|
|
988
992
|
xml.CDTYP 'E13'
|
989
993
|
xml.BC ean # /^9999|^0000|^0$/.match(ean.to_s) ? 0 : sprintf('%013d', ean)
|
990
994
|
xml.BCSTAT 'A' # P is alternative
|
991
|
-
#xml.PHAR2
|
992
995
|
} if ean
|
993
|
-
#xml.ARTCH {
|
994
|
-
#xml.PHAR2
|
995
|
-
#xml.CHTYPE
|
996
|
-
#xml.LINENO
|
997
|
-
#xml.NOUNITS
|
998
|
-
#}
|
999
996
|
if pac and pac[:prices]
|
1000
997
|
pac[:prices].each_pair do |key, price|
|
1001
998
|
xml.ARTPRI {
|
@@ -1413,7 +1410,7 @@ module Oddb2xml
|
|
1413
1410
|
return '--missing--'
|
1414
1411
|
end
|
1415
1412
|
return '--missing--' if !name || name.empty? || name.length < 3
|
1416
|
-
name
|
1413
|
+
name[0..119] # limit to maximal 120 chars as specified in the XSD
|
1417
1414
|
end
|
1418
1415
|
def override(xml, id, field, default_value)
|
1419
1416
|
has_overrides = /\d{13}/.match(id.to_s) ? @@article_overrides[id.to_i] : @@product_overrides[id.to_i]
|
@@ -1499,7 +1496,6 @@ module Oddb2xml
|
|
1499
1496
|
name ||= (item[:desc_de] + item[:name_de]) if item
|
1500
1497
|
name ||= obj[:sequence_name]
|
1501
1498
|
xml.GTIN pkg_gtin.to_s.rjust(13, '0')
|
1502
|
-
override(xml, pkg_gtin, :PHAR, pharma_code)
|
1503
1499
|
xml.SALECD('A')
|
1504
1500
|
# maxLength for DSCR is 50 for Artikelstamm v3
|
1505
1501
|
xml.DSCR(name) # for description for zur_rose
|
@@ -1598,7 +1594,7 @@ module Oddb2xml
|
|
1598
1594
|
next if /^#{Oddb2xml::FAKE_GTIN_START}/.match(ean13.to_s)
|
1599
1595
|
xml.ITEM({'PHARMATYPE' => patched_pharma_type }) do
|
1600
1596
|
xml.GTIN ean13.to_s.rjust(13, '0')
|
1601
|
-
xml.PHAR obj[:pharmacode]
|
1597
|
+
xml.PHAR obj[:pharmacode] if obj[:pharmacode] && obj[:pharmacode].length > 0
|
1602
1598
|
emit_salecd(xml, ean13, obj)
|
1603
1599
|
description = obj[:desc_de] || obj[:description] # for description for zur_rose
|
1604
1600
|
xml.DSCR(description)
|
data/lib/oddb2xml/extractor.rb
CHANGED
@@ -218,7 +218,6 @@ module Oddb2xml
|
|
218
218
|
item = {}
|
219
219
|
item[:ean13] = ean13
|
220
220
|
item[:no8] = pac.SWMC_AUTHNR
|
221
|
-
item[:pharmacode] = (phar = pac.PHAR.to_s) ? phar: '0'
|
222
221
|
item[:data_origin] = 'refdata'
|
223
222
|
item[:refdata] = true
|
224
223
|
item[:_type] = (typ = pac.ATYPE.downcase.to_sym) ? typ: ''
|
@@ -228,12 +227,6 @@ module Oddb2xml
|
|
228
227
|
item[:atc_code] = (code = pac.ATC) ? code.to_s : ''
|
229
228
|
item[:company_name] = (nam = pac.AUTH_HOLDER_NAME) ? nam: ''
|
230
229
|
item[:company_ean] = (gln = pac.AUTH_HOLDER_GLN) ? gln: ''
|
231
|
-
unless item[:pharmacode]
|
232
|
-
item[:pharmacode] = phar
|
233
|
-
unless data[item[:pharmacode]] # pharmacode => GTINs
|
234
|
-
data[item[:ean13]] = []
|
235
|
-
end
|
236
|
-
end
|
237
230
|
data[item[:ean13]] = item
|
238
231
|
end
|
239
232
|
data
|
data/lib/oddb2xml/util.rb
CHANGED
@@ -191,7 +191,9 @@ COLUMNS_FEBRUARY_2019= {
|
|
191
191
|
:drug_index => /Verz. bei betäubun.*smittel-haltigen Präparaten/i,
|
192
192
|
}
|
193
193
|
def Oddb2xml.add_hash(string)
|
194
|
-
doc = Nokogiri::XML.parse(string)
|
194
|
+
doc = Nokogiri::XML.parse(string) do |config|
|
195
|
+
config.huge
|
196
|
+
end
|
195
197
|
nr = 0
|
196
198
|
doc.root.elements.each do |node|
|
197
199
|
nr += 1
|
data/lib/oddb2xml/version.rb
CHANGED
data/oddb2xml.gemspec
CHANGED
@@ -37,6 +37,8 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.add_dependency 'xml-simple'
|
38
38
|
spec.add_dependency 'ox'
|
39
39
|
spec.add_dependency 'htmlentities'
|
40
|
+
spec.add_dependency 'webrick'
|
41
|
+
spec.add_dependency 'rexml'
|
40
42
|
|
41
43
|
spec.add_development_dependency "bundler"
|
42
44
|
spec.add_development_dependency "rake"
|
data/spec/artikelstamm_spec.rb
CHANGED
@@ -24,7 +24,7 @@ describe Oddb2xml::Builder do
|
|
24
24
|
unless @inhalt.index(expected_value)
|
25
25
|
puts expected_value
|
26
26
|
end
|
27
|
-
binding.pry
|
27
|
+
binding.pry if defined?(Pry) && !@inhalt.index(expected_value)
|
28
28
|
expect(@inhalt.index(expected_value)).not_to be nil
|
29
29
|
end
|
30
30
|
def common_run_init(options = {})
|
@@ -71,17 +71,16 @@ describe Oddb2xml::Builder do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
it 'should have a GTIN and a public price with 14 chars (ean14)' do
|
74
|
+
# Till January 2021 it was possible to find a price via transfer.dat
|
75
|
+
# as the pharmacode was given in the refdata_NonPharma.xml
|
74
76
|
expected = %(<ITEM PHARMATYPE="N">
|
75
77
|
<GTIN>68711428066649</GTIN>
|
76
|
-
<PHAR>5863450</PHAR>
|
77
78
|
<SALECD>A</SALECD>
|
78
79
|
<DSCR>3M MEDIPORE+PAD Absorbtionsverb 10x15cm 8 x 25 Stk</DSCR>
|
79
80
|
<DSCRF>3M MEDIPORE+PAD compr absorb 10x15cm 8 x 25 pce</DSCRF>
|
80
81
|
<COMP>
|
81
82
|
<GLN>7610182000007</GLN>
|
82
83
|
</COMP>
|
83
|
-
<PEXF>108.01</PEXF>
|
84
|
-
<PPUB>178.20</PPUB>
|
85
84
|
</ITEM>)
|
86
85
|
expect(@inhalt.index(expected)).not_to be nil
|
87
86
|
end
|
@@ -160,12 +159,6 @@ describe Oddb2xml::Builder do
|
|
160
159
|
expect(@inhalt.index('GTIN>0')).to be > 0
|
161
160
|
end
|
162
161
|
|
163
|
-
it 'should contain a PHAR 4236857 from refdata_NonPharma.xml' do
|
164
|
-
expect(@inhalt.index('<PHAR>4236863</PHAR>')).to be > 0
|
165
|
-
# Marco leaves the 14 GTIN digit in previous importes. As of January 2018 force it to the 13 digits
|
166
|
-
expect(@inhalt.index('<GTIN>0040565124346</GTIN>')).to be > 0
|
167
|
-
end
|
168
|
-
|
169
162
|
it 'should a DSCRF for 4042809018288 TENSOPLAST Kompressionsbinde 5cmx4.5m' do
|
170
163
|
skip("Where does the DSCR for 4042809018288 come from. It should be TENSOPLAST bande compression 5cmx4.5m")
|
171
164
|
end
|
@@ -215,8 +208,6 @@ describe Oddb2xml::Builder do
|
|
215
208
|
it 'should contain DIBASE with phar' do
|
216
209
|
expected = %(<ITEM PHARMATYPE="P">
|
217
210
|
<GTIN>7680658560014</GTIN>
|
218
|
-
<!--obsolete override-->
|
219
|
-
<PHAR>7199565</PHAR>
|
220
211
|
<SALECD>A</SALECD>
|
221
212
|
<DSCR>Dibase 10'000 Tropfen 10000 IE/ml Fl 10 ml</DSCR>
|
222
213
|
<DSCRF>Dibase 10'000 gouttes 10000 UI/ml fl 10 ml</DSCRF>
|
@@ -249,7 +240,6 @@ describe Oddb2xml::Builder do
|
|
249
240
|
tests = { 'item 7680403330459 CARBADERM only in Preparations(SL) with public price' =>
|
250
241
|
%(<ITEM PHARMATYPE="P">
|
251
242
|
<GTIN>7680403330459</GTIN>
|
252
|
-
<PHAR>3603779</PHAR>
|
253
243
|
<SALECD>A</SALECD>
|
254
244
|
<DSCR>Carbaderm Creme Tb 300 ml</DSCR>
|
255
245
|
<DSCRF>Carbaderm crème tb 300 ml</DSCRF>
|
@@ -271,7 +261,6 @@ describe Oddb2xml::Builder do
|
|
271
261
|
</ITEM>),
|
272
262
|
'product 3247501 LANSOYL' => '<ITEM PHARMATYPE="P">
|
273
263
|
<GTIN>7680324750190</GTIN>
|
274
|
-
<PHAR>0023722</PHAR>
|
275
264
|
<SALECD>A</SALECD>
|
276
265
|
<DSCR>LANSOYL Gel 225 g</DSCR>
|
277
266
|
<DSCRF>LANSOYL gel 225 g</DSCRF>
|
@@ -290,7 +279,6 @@ describe Oddb2xml::Builder do
|
|
290
279
|
'product 5366201 3TC' =>
|
291
280
|
%(<ITEM PHARMATYPE="P">
|
292
281
|
<GTIN>7680536620137</GTIN>
|
293
|
-
<PHAR>1699947</PHAR>
|
294
282
|
<SALECD>A</SALECD>
|
295
283
|
<DSCR>3TC Filmtabl 150 mg 60 Stk</DSCR>
|
296
284
|
<DSCRF>3TC cpr pell 150 mg 60 pce</DSCRF>
|
@@ -314,7 +302,6 @@ describe Oddb2xml::Builder do
|
|
314
302
|
'item 7680161050583 HIRUDOID 40g' =>
|
315
303
|
%(<ITEM PHARMATYPE="P">
|
316
304
|
<GTIN>7680161050583</GTIN>
|
317
|
-
<PHAR>2731179</PHAR>
|
318
305
|
<SALECD>A</SALECD>
|
319
306
|
<DSCR>Hirudoid Creme 3 mg/g 40 g</DSCR>
|
320
307
|
<DSCRF>Hirudoid crème 3 mg/g 40 g</DSCRF>
|
@@ -336,7 +323,6 @@ describe Oddb2xml::Builder do
|
|
336
323
|
'item 7680161050743 Hirudoid Creme 3 mg/g 100 g' =>
|
337
324
|
%( <ITEM PHARMATYPE="P">
|
338
325
|
<GTIN>7680161050743</GTIN>
|
339
|
-
<PHAR>2731179</PHAR>
|
340
326
|
<SALECD>A</SALECD>
|
341
327
|
<DSCR>Hirudoid Creme 3 mg/g 100 g</DSCR>
|
342
328
|
<DSCRF>Hirudoid crème 3 mg/g 100 g</DSCRF>
|
@@ -352,7 +338,6 @@ describe Oddb2xml::Builder do
|
|
352
338
|
</ITEM>),
|
353
339
|
'item 7680284860144 ANCOPIR' =>'<ITEM PHARMATYPE="P">
|
354
340
|
<GTIN>7680284860144</GTIN>
|
355
|
-
<PHAR>0177804</PHAR>
|
356
341
|
<SALECD>A</SALECD>
|
357
342
|
<DSCR>ANCOPIR Inj Lös 5 Amp 2 ml</DSCR>
|
358
343
|
<DSCRF>Ancopir, sol inj</DSCRF>
|
@@ -374,7 +359,6 @@ describe Oddb2xml::Builder do
|
|
374
359
|
</ITEM>',
|
375
360
|
'FERRO-GRADUMET price from ZurRose ' => %(<ITEM PHARMATYPE="P">
|
376
361
|
<GTIN>7680316440115</GTIN>
|
377
|
-
<PHAR>0020244</PHAR>
|
378
362
|
<SALECD>A</SALECD>
|
379
363
|
<DSCR>FERRO-GRADUMET Depottabl 30 Stk</DSCR>
|
380
364
|
<DSCRF>FERRO-GRADUMET cpr dépôt 30 pce</DSCRF>
|
@@ -402,7 +386,6 @@ describe Oddb2xml::Builder do
|
|
402
386
|
</PRODUCT>),
|
403
387
|
'nur aus Packungen Coeur-Vaisseaux Sérocytol,' => %(<ITEM PHARMATYPE="P">
|
404
388
|
<GTIN>7680002770014</GTIN>
|
405
|
-
<PHAR>0361815</PHAR>
|
406
389
|
<SALECD>A</SALECD>
|
407
390
|
<DSCR>SEROCYTOL Herz-Gefässe Supp 3 Stk</DSCR>
|
408
391
|
<DSCRF>SEROCYTOL Coeur-Vaisseaux supp 3 pce</DSCRF>
|
@@ -419,7 +402,6 @@ describe Oddb2xml::Builder do
|
|
419
402
|
</ITEM>),
|
420
403
|
'HUMALOG (Richter)' => %(<ITEM PHARMATYPE="P">
|
421
404
|
<GTIN>7680532900196</GTIN>
|
422
|
-
<PHAR>1699999</PHAR>
|
423
405
|
<SALECD>A</SALECD>
|
424
406
|
<DSCR>Humalog Inj Lös Durchstf 10 ml</DSCR>
|
425
407
|
<DSCRF>Humalog sol inj flac 10 ml</DSCRF>
|
@@ -450,7 +432,6 @@ describe Oddb2xml::Builder do
|
|
450
432
|
</PRODUCT>),
|
451
433
|
'Varilrix item' => %(<ITEM PHARMATYPE="P">
|
452
434
|
<GTIN>7680005850010</GTIN>
|
453
|
-
<PHAR>1770177</PHAR>
|
454
435
|
<SALECD>A</SALECD>
|
455
436
|
<DSCR>Varilrix Trockensub c solv Fertspr 0.500 ml</DSCR>
|
456
437
|
<DSCRF>Varilrix subst sèche c solv ser prê 0.500 ml</DSCRF>
|
data/spec/builder_spec.rb
CHANGED
@@ -39,7 +39,6 @@ ARTICLE_ZURROSE_ELEMENTS = [
|
|
39
39
|
]
|
40
40
|
|
41
41
|
ARTICLE_NAROPIN = %(<REF_DATA>1</REF_DATA>
|
42
|
-
<PHAR>1882189</PHAR>
|
43
42
|
<SMCAT>B</SMCAT>
|
44
43
|
<SMNO>54015011</SMNO>
|
45
44
|
<PRODNO>5401501</PRODNO>
|
@@ -259,16 +258,6 @@ def check_result(inhalt, nbr_record)
|
|
259
258
|
expect(m[1].to_i).to eq nbr_record
|
260
259
|
end
|
261
260
|
|
262
|
-
def checkItemForRefdata(doc, pharmacode, isRefdata)
|
263
|
-
article = XPath.match( doc, "//ART[PHAR=#{pharmacode.to_s}]").first
|
264
|
-
name = article.elements['DSCRD'].text
|
265
|
-
refdata = article.elements['REF_DATA'].text
|
266
|
-
smno = article.elements['SMNO'] ? article.elements['SMNO'].text : 'nil'
|
267
|
-
puts "checking doc for gtin #{gtin} isRefdata #{isRefdata} == #{refdata}. SMNO: #{smno} #{name}" if $VERBOSE
|
268
|
-
expect(article.elements['REF_DATA'].text).to eq(isRefdata.to_s)
|
269
|
-
article
|
270
|
-
end
|
271
|
-
|
272
261
|
['article', 'betrieb', 'code', 'interaction', 'limitation', 'medizinalperson', 'product', 'substance'].each do |cat|
|
273
262
|
eval "
|
274
263
|
def oddb_#{cat}_xml
|
@@ -408,7 +397,7 @@ def checkArticleXml(checkERYTHROCIN = true)
|
|
408
397
|
expect(desitin.elements['DSCRD'].text).to eq("LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk")
|
409
398
|
expect(desitin.elements['DSCRF'].text).to eq('LEVETIRACETAM DESITIN mini cpr pel 250 mg 30 pce')
|
410
399
|
expect(desitin.elements['REF_DATA'].text).to eq('1')
|
411
|
-
expect(desitin.elements['PHAR'].text).to eq('5819012')
|
400
|
+
expect(desitin.elements['PHAR'].text).to eq('5819012')
|
412
401
|
expect(desitin.elements['SMCAT'].text).to eq('B')
|
413
402
|
expect(desitin.elements['SMNO'].text).to eq('62069008')
|
414
403
|
expect(desitin.elements['VAT'].text).to eq('2')
|
@@ -473,7 +462,7 @@ def checkProductXml(nbr_record = -1)
|
|
473
462
|
end
|
474
463
|
|
475
464
|
describe Oddb2xml::Builder do
|
476
|
-
NrExtendedArticles =
|
465
|
+
NrExtendedArticles = 80
|
477
466
|
NrSubstances = 28
|
478
467
|
NrLimitations = 15
|
479
468
|
|
@@ -482,7 +471,7 @@ describe Oddb2xml::Builder do
|
|
482
471
|
NrProdno = 31
|
483
472
|
NrPackages = 46
|
484
473
|
NrProducts = 40
|
485
|
-
RegExpDesitin = /
|
474
|
+
RegExpDesitin = /1120000000LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk/
|
486
475
|
include ServerMockHelper
|
487
476
|
def common_run_init(options = {})
|
488
477
|
@savedDir = Dir.pwd
|
@@ -516,6 +505,11 @@ describe Oddb2xml::Builder do
|
|
516
505
|
check_result(@inhalt, NrProducts)
|
517
506
|
end
|
518
507
|
|
508
|
+
it 'should have a correct NBR_RECORD in oddb_products.xml' do
|
509
|
+
oddb_product_xml = oddb_article_xml.sub('oddb_article.xml', 'oddb_product.xml')
|
510
|
+
check_result(File.read(oddb_product_xml), 46)
|
511
|
+
end
|
512
|
+
|
519
513
|
it 'oddb_article.xml should contain a SHA256' do
|
520
514
|
expect(XPath.match(@rexml, "//ART" ).first.attributes['SHA256'].size).to eq 64
|
521
515
|
expect(XPath.match(@rexml, "//ART" ).size).to eq XPath.match(@rexml, "//ART" ).size
|
@@ -821,19 +815,12 @@ describe Oddb2xml::Builder do
|
|
821
815
|
|
822
816
|
it 'should generate the flag non-refdata' do
|
823
817
|
doc = REXML::Document.new File.new(checkAndGetArticleXmlName('non-refdata'))
|
824
|
-
expect(XPath.match( doc, "//REF_DATA" ).size).to
|
825
|
-
checkItemForRefdata(doc, "1699947", 1) # 3TC Filmtabl 150 mg SMNO 53662013 IKSNR 53‘662, 53‘663
|
826
|
-
checkItemForRefdata(doc, "0598003", 0) # SOFRADEX Gtt Auric 8 ml
|
827
|
-
checkItemForRefdata(doc, "5366964", 0) # 1-DAY ACUVUE moist jour
|
828
|
-
unless SkipMigelDownloader
|
829
|
-
novopen = checkItemForRefdata(doc, "3036984", 1) # NovoPen 4 Injektionsgerät blue In NonPharma (a MiGel product)
|
830
|
-
expect(novopen.elements['ARTBAR/BC'].text).to eq '0'
|
831
|
-
end
|
818
|
+
expect(XPath.match( doc, "//REF_DATA" ).size).to eq NrExtendedArticles
|
832
819
|
end
|
833
820
|
|
834
821
|
it 'should generate SALECD A for migel (NINCD 13)' do
|
835
822
|
doc = REXML::Document.new File.new(checkAndGetArticleXmlName)
|
836
|
-
article = XPath.match( doc, "//ART[
|
823
|
+
article = XPath.match( doc, "//ART[DSCRD='ACTICOAT Flex 7 Wundverband 10x12.5cm 5 Stk']").first
|
837
824
|
expect(article.elements['SALECD'].text).to eq('A')
|
838
825
|
expect(article.elements['ARTINS/NINCD'].text).to eq('13')
|
839
826
|
end
|
@@ -860,12 +847,12 @@ describe Oddb2xml::Builder do
|
|
860
847
|
end
|
861
848
|
|
862
849
|
it 'should load correct number of nonpharma' do
|
850
|
+
puts checkAndGetArticleXmlName
|
863
851
|
doc = REXML::Document.new File.new(checkAndGetArticleXmlName)
|
864
852
|
dscrds = XPath.match( doc, "//ART" )
|
865
853
|
expect(dscrds.size).to eq(NrExtendedArticles)
|
866
|
-
expect(XPath.match( doc, "//PHAR" ).find_all{|x| x.text.match('1699947') }.size).to eq(1) # swissmedic_packages Cardio-Pulmo-Rénal Sérocytol, suppositoire
|
867
|
-
expect(XPath.match( doc, "//PHAR" ).find_all{|x| x.text.match('2465312') }.size).to eq(1) # from refdata_pharma.xml"
|
868
854
|
expect(XPath.match( doc, "//PHAR" ).find_all{|x| x.text.match('0000000') }.size).to eq(0) # 0 is not a valid pharmacode
|
855
|
+
expect(XPath.match( doc, "//PHAR" ).find_all{|x| x.text.match(/\d+/)}.size).to eq 65
|
869
856
|
end
|
870
857
|
|
871
858
|
it 'should have a correct NBR_RECORD in oddb_limitation.xml' do
|
@@ -5,7 +5,6 @@
|
|
5
5
|
<ITEM DT="2015-11-24 00:00:00 +000">
|
6
6
|
<ATYPE>NONPHARMA</ATYPE>
|
7
7
|
<GTIN>7611600441020</GTIN>
|
8
|
-
<PHAR>0058519</PHAR>
|
9
8
|
<NAME_DE>TUBEGAZE Verband weiss Nr 12 20m Finger gross</NAME_DE>
|
10
9
|
<NAME_FR>TUBEGAZE pans tubul blanc Nr 12 20m doigts grands</NAME_FR>
|
11
10
|
<AUTH_HOLDER_NAME>IVF HARTMANN AG</AUTH_HOLDER_NAME>
|
@@ -14,7 +13,6 @@
|
|
14
13
|
<ITEM DT="2015-11-24 00:00:00 +000">
|
15
14
|
<ATYPE>NONPHARMA</ATYPE>
|
16
15
|
<GTIN>00040565124308</GTIN>
|
17
|
-
<PHAR>4236863</PHAR>
|
18
16
|
<NAME_DE>ACTICOAT Flex 7 Wundverband 10x12.5cm 5 Stk</NAME_DE>
|
19
17
|
<NAME_FR>ACTICOAT Flex 7 pansement vulné 10x12.5cm 5 pce</NAME_FR>
|
20
18
|
<AUTH_HOLDER_NAME>Smith & Nephew Schweiz AG</AUTH_HOLDER_NAME>
|
@@ -32,7 +30,6 @@
|
|
32
30
|
<ITEM DT="2018-03-16T00:00:00">
|
33
31
|
<ATYPE>NONPHARMA</ATYPE>
|
34
32
|
<GTIN>68711428066649</GTIN>
|
35
|
-
<PHAR>5863450</PHAR>
|
36
33
|
<NAME_DE>3M MEDIPORE+PAD Absorbtionsverb 10x15cm 8 x 25 Stk</NAME_DE>
|
37
34
|
<NAME_FR>3M MEDIPORE+PAD compr absorb 10x15cm 8 x 25 pce</NAME_FR>
|
38
35
|
<AUTH_HOLDER_NAME>3M (Schweiz) GmbH (Professional Health Care)</AUTH_HOLDER_NAME>
|
@@ -5,7 +5,6 @@
|
|
5
5
|
<ITEM DT="2018-12-05T00:00:00">
|
6
6
|
<ATYPE>PHARMA</ATYPE>
|
7
7
|
<GTIN>7680005850010</GTIN>
|
8
|
-
<PHAR>1770177</PHAR>
|
9
8
|
<SWMC_AUTHNR>00585001</SWMC_AUTHNR>
|
10
9
|
<NAME_DE>VARILRIX Trockensub c Solv Fertspr 0.5 ml</NAME_DE>
|
11
10
|
<NAME_FR>VARILRIX subst sèche c solv ser pré 0.5 ml</NAME_FR>
|
@@ -16,7 +15,6 @@
|
|
16
15
|
<ITEM DT="2017-12-14T00:00:00">
|
17
16
|
<ATYPE>PHARMA</ATYPE>
|
18
17
|
<GTIN>7680545340019</GTIN>
|
19
|
-
<PHAR>6749124</PHAR>
|
20
18
|
<SWMC_AUTHNR>54534001</SWMC_AUTHNR>
|
21
19
|
<NAME_DE>TEBOKAN Filmtabl 240 mg 30 Stk</NAME_DE>
|
22
20
|
<NAME_FR>TEBOKAN cpr pell 240 mg 30 pce</NAME_FR>
|
@@ -27,7 +25,6 @@
|
|
27
25
|
<ITEM DT="2017-12-14T00:00:00">
|
28
26
|
<ATYPE>PHARMA</ATYPE>
|
29
27
|
<GTIN>7680540150118</GTIN>
|
30
|
-
<PHAR>1882189</PHAR>
|
31
28
|
<SWMC_AUTHNR>54015011</SWMC_AUTHNR>
|
32
29
|
<NAME_DE>NAROPIN Inj Lös 0.2 % 10ml Duofit Amp 5 Stk</NAME_DE>
|
33
30
|
<NAME_FR>NAROPIN sol inj 0.2 % 10ml amp duofit 5 pce</NAME_FR>
|
@@ -38,7 +35,6 @@
|
|
38
35
|
<ITEM DT="2017-12-08T00:00:00">
|
39
36
|
<ATYPE>PHARMA</ATYPE>
|
40
37
|
<GTIN>7680563520172</GTIN>
|
41
|
-
<PHAR>6477223</PHAR>
|
42
38
|
<SWMC_AUTHNR>56352017</SWMC_AUTHNR>
|
43
39
|
<NAME_DE>ADVATE Trockensub 250 IE c Solv 2 ml Durchstf</NAME_DE>
|
44
40
|
<NAME_FR>ADVATE subst sèche 250 UI c solv 2 ml flac</NAME_FR>
|
@@ -49,7 +45,6 @@
|
|
49
45
|
<ITEM DT="2018-09-20T00:00:00">
|
50
46
|
<ATYPE>PHARMA</ATYPE>
|
51
47
|
<GTIN>7680658560014</GTIN>
|
52
|
-
<PHAR>7199565</PHAR>
|
53
48
|
<SWMC_AUTHNR>65856001</SWMC_AUTHNR>
|
54
49
|
<NAME_DE>DIBASE Tropfen 10000 IE/ml Fl 10 ml</NAME_DE>
|
55
50
|
<NAME_FR>DIBASE gouttes 10000 UI/ml fl 10 ml</NAME_FR>
|
@@ -60,7 +55,6 @@
|
|
60
55
|
<ITEM DT="2017-12-08T00:00:00">
|
61
56
|
<ATYPE>PHARMA</ATYPE>
|
62
57
|
<GTIN>7680555580054</GTIN>
|
63
|
-
<PHAR>2465312</PHAR>
|
64
58
|
<SWMC_AUTHNR>55558005</SWMC_AUTHNR>
|
65
59
|
<NAME_DE>ZYVOXID Filmtabl 600 mg 10 Stk</NAME_DE>
|
66
60
|
<NAME_FR>ZYVOXID cpr pell 600 mg 10 pce</NAME_FR>
|
@@ -71,7 +65,6 @@
|
|
71
65
|
<ITEM DT="2017-12-08T00:00:00">
|
72
66
|
<ATYPE>PHARMA</ATYPE>
|
73
67
|
<GTIN>7680620690084</GTIN>
|
74
|
-
<PHAR>5819012</PHAR>
|
75
68
|
<SWMC_AUTHNR>62069008</SWMC_AUTHNR>
|
76
69
|
<NAME_DE>LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk</NAME_DE>
|
77
70
|
<NAME_FR>LEVETIRACETAM DESITIN mini cpr pel 250 mg 30 pce</NAME_FR>
|
@@ -82,7 +75,6 @@
|
|
82
75
|
<ITEM DT="2017-12-08T00:00:00">
|
83
76
|
<ATYPE>PHARMA</ATYPE>
|
84
77
|
<GTIN>7680353660163</GTIN>
|
85
|
-
<PHAR>0020273</PHAR>
|
86
78
|
<SWMC_AUTHNR>35366016</SWMC_AUTHNR>
|
87
79
|
<NAME_DE>KENDURAL Depottabl 30 Stk</NAME_DE>
|
88
80
|
<NAME_FR>KENDURAL cpr dépôt 30 pce</NAME_FR>
|
@@ -93,7 +85,6 @@
|
|
93
85
|
<ITEM DT="2017-12-08T00:00:00">
|
94
86
|
<ATYPE>PHARMA</ATYPE>
|
95
87
|
<GTIN>7680536620137</GTIN>
|
96
|
-
<PHAR>1699947</PHAR>
|
97
88
|
<SWMC_AUTHNR>53662013</SWMC_AUTHNR>
|
98
89
|
<NAME_DE>3TC Filmtabl 150 mg 60 Stk</NAME_DE>
|
99
90
|
<NAME_FR>3TC cpr pell 150 mg 60 pce</NAME_FR>
|
@@ -104,7 +95,6 @@
|
|
104
95
|
<ITEM DT="2017-12-08T00:00:00">
|
105
96
|
<ATYPE>PHARMA</ATYPE>
|
106
97
|
<GTIN>7680161050583</GTIN>
|
107
|
-
<PHAR>2731179</PHAR>
|
108
98
|
<SWMC_AUTHNR>16105058</SWMC_AUTHNR>
|
109
99
|
<NAME_DE>HIRUDOID Creme 3 mg/g 40 g</NAME_DE>
|
110
100
|
<NAME_FR>HIRUDOID crème 3 mg/g 40 g</NAME_FR>
|
@@ -115,7 +105,6 @@
|
|
115
105
|
<ITEM DT="2017-12-08T00:00:00">
|
116
106
|
<ATYPE>PHARMA</ATYPE>
|
117
107
|
<GTIN>7680324750190</GTIN>
|
118
|
-
<PHAR>0023722</PHAR>
|
119
108
|
<SWMC_AUTHNR>32475019</SWMC_AUTHNR>
|
120
109
|
<NAME_DE>LANSOYL Gel 225 g</NAME_DE>
|
121
110
|
<NAME_FR>LANSOYL gel 225 g</NAME_FR>
|
@@ -126,7 +115,6 @@
|
|
126
115
|
<ITEM DT="2017-12-08T00:00:00">
|
127
116
|
<ATYPE>PHARMA</ATYPE>
|
128
117
|
<GTIN>7680573230016</GTIN>
|
129
|
-
<PHAR>6824802</PHAR>
|
130
118
|
<SWMC_AUTHNR>57323001</SWMC_AUTHNR>
|
131
119
|
<NAME_DE>LANSOPRAZOL Mepha Kaps 15 mg Fl 60 Stk</NAME_DE>
|
132
120
|
<NAME_FR>LANSOPRAZOL Mepha caps 15 mg fl 60 pce</NAME_FR>
|
@@ -137,7 +125,6 @@
|
|
137
125
|
<ITEM DT="2017-12-08T00:00:00">
|
138
126
|
<ATYPE>PHARMA</ATYPE>
|
139
127
|
<GTIN>7680532900196</GTIN>
|
140
|
-
<PHAR>1699999</PHAR>
|
141
128
|
<SWMC_AUTHNR>53290019</SWMC_AUTHNR>
|
142
129
|
<NAME_DE>HUMALOG Inj Lös 100 IE/ml Durchstf 10 ml</NAME_DE>
|
143
130
|
<NAME_FR>HUMALOG sol inj 100 UI/ml flac 10 ml</NAME_FR>
|
@@ -148,7 +135,6 @@
|
|
148
135
|
<ITEM DT="2017-12-01T00:00:00">
|
149
136
|
<ATYPE>PHARMA</ATYPE>
|
150
137
|
<GTIN>7680002770014</GTIN>
|
151
|
-
<PHAR>0361815</PHAR>
|
152
138
|
<SWMC_AUTHNR>00277001</SWMC_AUTHNR>
|
153
139
|
<NAME_DE>SEROCYTOL Herz-Gefässe Supp 3 Stk</NAME_DE>
|
154
140
|
<NAME_FR>SEROCYTOL Coeur-Vaisseaux supp 3 pce</NAME_FR>
|
@@ -159,7 +145,6 @@
|
|
159
145
|
<ITEM DT="2017-12-01T00:00:00">
|
160
146
|
<ATYPE>PHARMA</ATYPE>
|
161
147
|
<GTIN>7680002780013</GTIN>
|
162
|
-
<PHAR>0361821</PHAR>
|
163
148
|
<SWMC_AUTHNR>00278001</SWMC_AUTHNR>
|
164
149
|
<NAME_DE>SEROCYTOL Kolon Supp 3 Stk</NAME_DE>
|
165
150
|
<NAME_FR>SEROCYTOL Côlon supp 3 pce</NAME_FR>
|
@@ -170,7 +155,6 @@
|
|
170
155
|
<ITEM DT="2017-12-01T00:00:00">
|
171
156
|
<ATYPE>PHARMA</ATYPE>
|
172
157
|
<GTIN>7680406620144</GTIN>
|
173
|
-
<PHAR>0769841</PHAR>
|
174
158
|
<SWMC_AUTHNR>40662014</SWMC_AUTHNR>
|
175
159
|
<NAME_DE>PEVISONE Creme 15 g</NAME_DE>
|
176
160
|
<NAME_FR>PEVISONE crème 15 g</NAME_FR>
|
@@ -181,7 +165,6 @@
|
|
181
165
|
<ITEM DT="2017-12-01T00:00:00">
|
182
166
|
<ATYPE>PHARMA</ATYPE>
|
183
167
|
<GTIN>7680406620229</GTIN>
|
184
|
-
<PHAR>0863244</PHAR>
|
185
168
|
<SWMC_AUTHNR>40662022</SWMC_AUTHNR>
|
186
169
|
<NAME_DE>PEVISONE Creme 30 g</NAME_DE>
|
187
170
|
<NAME_FR>PEVISONE crème 30 g</NAME_FR>
|
@@ -192,7 +175,6 @@
|
|
192
175
|
<ITEM DT="2017-11-03T00:00:00">
|
193
176
|
<ATYPE>PHARMA</ATYPE>
|
194
177
|
<GTIN>7680587340015</GTIN>
|
195
|
-
<PHAR>4153628</PHAR>
|
196
178
|
<SWMC_AUTHNR>58734001</SWMC_AUTHNR>
|
197
179
|
<NAME_DE>YONDELIS Trockensub 0.25 mg Durchstf</NAME_DE>
|
198
180
|
<NAME_FR>YONDELIS subst sèche 0.25 mg flac</NAME_FR>
|
@@ -203,7 +185,6 @@
|
|
203
185
|
<ITEM DT="2017-11-03T00:00:00">
|
204
186
|
<ATYPE>PHARMA</ATYPE>
|
205
187
|
<GTIN>7680627160016</GTIN>
|
206
|
-
<PHAR>5301924</PHAR>
|
207
188
|
<SWMC_AUTHNR>62716001</SWMC_AUTHNR>
|
208
189
|
<NAME_DE>COOP VITALITY Bronchialpastillen 40 Stk</NAME_DE>
|
209
190
|
<NAME_FR>COOP VITALITY pastilles bronchiques 40 pce</NAME_FR>
|
@@ -214,7 +195,6 @@
|
|
214
195
|
<ITEM DT="2018-01-30T00:00:00">
|
215
196
|
<ATYPE>PHARMA</ATYPE>
|
216
197
|
<GTIN>7680651600014</GTIN>
|
217
|
-
<PHAR>6571270</PHAR>
|
218
198
|
<SWMC_AUTHNR>65160001</SWMC_AUTHNR>
|
219
199
|
<NAME_DE>LYNPARZA Kaps 50 mg 448 Stk</NAME_DE>
|
220
200
|
<NAME_FR>LYNPARZA caps 50 mg 448 pce</NAME_FR>
|
@@ -225,7 +205,6 @@
|
|
225
205
|
<ITEM DT="2018-02-09T00:00:00">
|
226
206
|
<ATYPE>PHARMA</ATYPE>
|
227
207
|
<GTIN>7680316440115</GTIN>
|
228
|
-
<PHAR>0020244</PHAR>
|
229
208
|
<SWMC_AUTHNR>31644011</SWMC_AUTHNR>
|
230
209
|
<NAME_DE>FERRO-GRADUMET Depottabl 30 Stk</NAME_DE>
|
231
210
|
<NAME_FR>FERRO-GRADUMET cpr dépôt 30 pce</NAME_FR>
|
@@ -236,7 +215,6 @@
|
|
236
215
|
<ITEM DT="2018-03-16T00:00:00">
|
237
216
|
<ATYPE>PHARMA</ATYPE>
|
238
217
|
<GTIN>7680581580011</GTIN>
|
239
|
-
<PHAR>3656617</PHAR>
|
240
218
|
<SWMC_AUTHNR>58158001</SWMC_AUTHNR>
|
241
219
|
<NAME_DE>PRIORIX TETRA Trockensub c Solv Fertspr</NAME_DE>
|
242
220
|
<NAME_FR>PRIORIX TETRA subst sèche c solv ser pré</NAME_FR>
|
@@ -247,7 +225,6 @@
|
|
247
225
|
<ITEM DT="2018-03-23T00:00:00">
|
248
226
|
<ATYPE>PHARMA</ATYPE>
|
249
227
|
<GTIN>7680444470107</GTIN>
|
250
|
-
<PHAR>0919766</PHAR>
|
251
228
|
<SWMC_AUTHNR>44447010</SWMC_AUTHNR>
|
252
229
|
<NAME_DE>LOPRESOR Retard Divitabs 200 mg 14 Stk</NAME_DE>
|
253
230
|
<NAME_FR>LOPRESOR Retard Divitabs 200 mg 14 pce</NAME_FR>
|
@@ -258,7 +235,6 @@
|
|
258
235
|
<ITEM DT="2018-03-23T00:00:00">
|
259
236
|
<ATYPE>PHARMA</ATYPE>
|
260
237
|
<GTIN>7680444470299</GTIN>
|
261
|
-
<PHAR>0919772</PHAR>
|
262
238
|
<SWMC_AUTHNR>44447029</SWMC_AUTHNR>
|
263
239
|
<NAME_DE>LOPRESOR Retard Divitabs 200 mg 56 Stk</NAME_DE>
|
264
240
|
<NAME_FR>LOPRESOR Retard Divitabs 200 mg 56 pce</NAME_FR>
|
@@ -269,7 +245,6 @@
|
|
269
245
|
<ITEM DT="2018-03-23T00:00:00">
|
270
246
|
<ATYPE>PHARMA</ATYPE>
|
271
247
|
<GTIN>7680152190687</GTIN>
|
272
|
-
<PHAR>0544042</PHAR>
|
273
248
|
<SWMC_AUTHNR>15219068</SWMC_AUTHNR>
|
274
249
|
<NAME_DE>ZYMAFLUOR Tabl 0.25 mg Ds 400 Stk</NAME_DE>
|
275
250
|
<NAME_FR>ZYMAFLUOR cpr 0.25 mg bte 400 pce</NAME_FR>
|
@@ -280,7 +255,6 @@
|
|
280
255
|
<ITEM DT="2018-03-23T00:00:00">
|
281
256
|
<ATYPE>PHARMA</ATYPE>
|
282
257
|
<GTIN>7680434540995</GTIN>
|
283
|
-
<PHAR>2381532</PHAR>
|
284
258
|
<SWMC_AUTHNR>43454099</SWMC_AUTHNR>
|
285
259
|
<NAME_DE>KAMILLIN Medipharm Bad liq 10 Btl 40 ml</NAME_DE>
|
286
260
|
<NAME_FR>KAMILLIN Medipharm bain liq 10 sach 40 ml</NAME_FR>
|
data/spec/extractor_spec.rb
CHANGED
@@ -51,7 +51,7 @@ end unless SkipMigelDownloader
|
|
51
51
|
describe Oddb2xml::RefdataExtractor do
|
52
52
|
before(:all) { common_before }
|
53
53
|
after(:all) { common_after }
|
54
|
-
|
54
|
+
Last_change = '2015-11-24 00:00:00 +0000'
|
55
55
|
|
56
56
|
context 'should handle pharma articles' do
|
57
57
|
subject do
|
@@ -60,17 +60,15 @@ describe Oddb2xml::RefdataExtractor do
|
|
60
60
|
@pharma_items = Oddb2xml::RefdataExtractor.new(xml, 'PHARMA').to_hash
|
61
61
|
end
|
62
62
|
|
63
|
-
it "should have correct info for
|
63
|
+
it "should have correct info for no8 62069008 correctly" do
|
64
64
|
@pharma_items = subject.to_hash
|
65
|
-
|
66
|
-
item_found = @pharma_items.values.find{ |x| x[:pharmacode].eql?(pharma_code_LEVETIRACETAM)}
|
65
|
+
item_found = @pharma_items.values.find{ |x| x[:ean13].eql?(Oddb2xml::LEVETIRACETAM_GTIN)}
|
67
66
|
expect(item_found).not_to be nil
|
68
67
|
expected = {:data_origin=>"refdata",
|
69
68
|
:refdata=>true,
|
70
69
|
:_type=>:pharma,
|
71
70
|
:ean13=> Oddb2xml::LEVETIRACETAM_GTIN.to_s,
|
72
71
|
:no8 => "62069008",
|
73
|
-
:pharmacode=> pharma_code_LEVETIRACETAM,
|
74
72
|
:data_origin => "refdata",
|
75
73
|
:desc_de=>"LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk",
|
76
74
|
:desc_fr=>"LEVETIRACETAM DESITIN mini cpr pel 250 mg 30 pce",
|
@@ -90,15 +88,13 @@ describe Oddb2xml::RefdataExtractor do
|
|
90
88
|
|
91
89
|
it "should have correct info for nonpharma with pharmacode 0058502 correctly" do
|
92
90
|
@non_pharma_items = subject.to_hash
|
93
|
-
|
94
|
-
item_found = @non_pharma_items.values.find{ |x| x[:pharmacode].eql?(pharma_code_TUBEGAZE)}
|
91
|
+
item_found = @non_pharma_items.values.find{ |x| x[:ean13].eql?('7611600441020')}
|
95
92
|
expect(item_found).not_to be nil
|
96
93
|
expected = {:refdata=>true,
|
97
94
|
:_type=>:nonpharma,
|
98
95
|
:ean13=>'7611600441020',
|
99
96
|
:no8 => nil,
|
100
|
-
:
|
101
|
-
:last_change => @@last_change,
|
97
|
+
:last_change => Last_change,
|
102
98
|
:data_origin => "refdata",
|
103
99
|
:desc_de=>"TUBEGAZE Verband weiss Nr 12 20m Finger gross",
|
104
100
|
:desc_fr=>"TUBEGAZE pans tubul blanc Nr 12 20m doigts grands",
|
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.7.
|
4
|
+
version: 2.7.1
|
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:
|
11
|
+
date: 2021-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -234,6 +234,34 @@ dependencies:
|
|
234
234
|
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: webrick
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rexml
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :runtime
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
237
265
|
- !ruby/object:Gem::Dependency
|
238
266
|
name: bundler
|
239
267
|
requirement: !ruby/object:Gem::Requirement
|
@@ -355,9 +383,9 @@ executables:
|
|
355
383
|
extensions: []
|
356
384
|
extra_rdoc_files: []
|
357
385
|
files:
|
386
|
+
- ".github/workflows/ruby.yml"
|
358
387
|
- ".gitignore"
|
359
388
|
- ".rspec"
|
360
|
-
- ".travis.yml"
|
361
389
|
- Elexis_Artikelstamm_v003.xsd
|
362
390
|
- Elexis_Artikelstamm_v5.xsd
|
363
391
|
- Gemfile
|
@@ -486,7 +514,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
486
514
|
- !ruby/object:Gem::Version
|
487
515
|
version: '0'
|
488
516
|
requirements: []
|
489
|
-
rubygems_version: 3.
|
517
|
+
rubygems_version: 3.2.4
|
490
518
|
signing_key:
|
491
519
|
specification_version: 4
|
492
520
|
summary: oddb2xml creates xml files.
|
data/.travis.yml
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
bundler_args: --without debugger
|
4
|
-
|
5
|
-
cache: bundler
|
6
|
-
sudo: false
|
7
|
-
|
8
|
-
before_install:
|
9
|
-
- gem --version
|
10
|
-
|
11
|
-
script: bundle exec rspec
|
12
|
-
|
13
|
-
rvm:
|
14
|
-
- 2.4
|
15
|
-
- 2.5
|
16
|
-
- 2.6
|
17
|
-
- 2.7
|
18
|
-
- ruby-head
|
19
|
-
|
20
|
-
matrix:
|
21
|
-
allow_failures:
|
22
|
-
- rvm: ruby-head
|
23
|
-
|
24
|
-
notifications:
|
25
|
-
email:
|
26
|
-
recipients:
|
27
|
-
- ngiger@ywesee.com
|
28
|
-
- yasaka@ywesee.com
|
29
|
-
- zdavatz@ywesee.com
|