oddb2xml 2.7.9 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +1 -0
  3. data/.github/workflows/codeql.yml +41 -0
  4. data/.github/workflows/ruby.yml +1 -1
  5. data/.gitignore +0 -0
  6. data/.rspec +0 -0
  7. data/.ruby-version +1 -0
  8. data/.standard.yml +0 -0
  9. data/Elexis_Artikelstamm_v003.xsd +0 -0
  10. data/Elexis_Artikelstamm_v5.xsd +4 -4
  11. data/Gemfile +2 -0
  12. data/Gemfile.lock +198 -0
  13. data/LICENSE +0 -0
  14. data/Manifest.txt +0 -0
  15. data/QA.md +0 -0
  16. data/README.md +0 -0
  17. data/Rakefile +0 -0
  18. data/artikelstamm.md +0 -0
  19. data/data/article_overrides.yaml +0 -0
  20. data/data/gal_forms.yaml +0 -0
  21. data/data/gal_groups.yaml +0 -0
  22. data/data/gtin2ignore.yaml +0 -0
  23. data/data/product_overrides.yaml +0 -0
  24. data/dokumentation_calc.textile +0 -0
  25. data/flake.lock +80 -0
  26. data/flake.nix +36 -0
  27. data/gemset.nix +814 -0
  28. data/lib/oddb2xml/builder.rb +40 -7
  29. data/lib/oddb2xml/calc.rb +2 -2
  30. data/lib/oddb2xml/chapter_70_hack.rb +0 -0
  31. data/lib/oddb2xml/cli.rb +15 -1
  32. data/lib/oddb2xml/compare.rb +0 -0
  33. data/lib/oddb2xml/compositions_syntax.rb +0 -0
  34. data/lib/oddb2xml/compressor.rb +0 -0
  35. data/lib/oddb2xml/downloader.rb +22 -0
  36. data/lib/oddb2xml/extractor.rb +30 -0
  37. data/lib/oddb2xml/options.rb +4 -0
  38. data/lib/oddb2xml/parslet_compositions.rb +0 -0
  39. data/lib/oddb2xml/util.rb +0 -0
  40. data/lib/oddb2xml/version.rb +1 -1
  41. data/lib/oddb2xml/xml_definitions.rb +0 -0
  42. data/lib/oddb2xml.rb +0 -0
  43. data/oddb_calc.xsd +0 -0
  44. data/spec/artikelstamm_spec.rb +7 -1
  45. data/spec/calc_spec.rb +0 -0
  46. data/spec/check_artikelstamm_spec.rb +0 -0
  47. data/spec/cli_spec.rb +0 -0
  48. data/spec/compare_spec.rb +0 -0
  49. data/spec/composition_syntax_spec.rb +0 -0
  50. data/spec/compressor_spec.rb +0 -0
  51. data/spec/data/AipsDownload.zip +0 -0
  52. data/spec/data/Elexis_Artikelstamm_v5.xsd +0 -0
  53. data/spec/data/GL_Diff_SB.xml +0 -0
  54. data/spec/data/ItCodes.xml +0 -0
  55. data/spec/data/PR121001.txt +0 -0
  56. data/spec/data/PR121002.txt +0 -0
  57. data/spec/data/Preparations.xml +0 -0
  58. data/spec/data/Publications.xls +0 -0
  59. data/spec/data/artikelstamm_N_010917.xml +0 -0
  60. data/spec/data/artikelstamm_N_011217.xml +0 -0
  61. data/spec/data/artikelstamm_P_010917.xml +0 -0
  62. data/spec/data/artikelstamm_P_011217.xml +0 -0
  63. data/spec/data/atc.csv +0 -0
  64. data/spec/data/check_artikelstamm/artikelstamm_v5_gtin_non_numeric.xml +0 -0
  65. data/spec/data/check_artikelstamm/artikelstamm_v5_gtin_not_uniq.xml +0 -0
  66. data/spec/data/check_artikelstamm/artikelstamm_v5_limitation_exists.xml +0 -0
  67. data/spec/data/check_artikelstamm/artikelstamm_v5_okay.xml +0 -0
  68. data/spec/data/check_artikelstamm/artikelstamm_v5_pharma_has_product.xml +0 -0
  69. data/spec/data/check_artikelstamm/artikelstamm_v5_prodno_not_uniq.xml +0 -0
  70. data/spec/data/check_artikelstamm/artikelstamm_v5_product_needs_article.xml +0 -0
  71. data/spec/data/column_c.txt +0 -0
  72. data/spec/data/compositions.txt +0 -0
  73. data/spec/data/compressor/oddb2xml_files_bm_update.txt +0 -0
  74. data/spec/data/compressor/oddb2xml_files_lppv.txt +0 -0
  75. data/spec/data/compressor/oddb2xml_files_nonpharma.xls +0 -0
  76. data/spec/data/epha_interactions.csv +0 -0
  77. data/spec/data/listen_neu.html +0 -0
  78. data/spec/data/medregbm_betrieb.txt +0 -0
  79. data/spec/data/medregbm_person.txt +0 -0
  80. data/spec/data/oddb2xml_files_bm_update.txt +0 -0
  81. data/spec/data/oddb2xml_files_lppv.txt +0 -0
  82. data/spec/data/oddb2xml_files_nonpharma.xls +0 -0
  83. data/spec/data/problems.txt +0 -0
  84. data/spec/data/refdata_NonPharma.xml +0 -0
  85. data/spec/data/refdata_Pharma.xml +0 -0
  86. data/spec/data/swissmedic_fridges.html +0 -0
  87. data/spec/data/swissmedic_info.html +0 -0
  88. data/spec/data/swissmedic_info_2.html +0 -0
  89. data/spec/data/swissmedic_orphan.xlsx +0 -0
  90. data/spec/data/swissmedic_orphans.html +0 -0
  91. data/spec/data/swissmedic_package.xlsx +0 -0
  92. data/spec/data/swissmedic_packages.html +0 -0
  93. data/spec/data/transfer.dat +0 -0
  94. data/spec/data/v5_first.xml +0 -0
  95. data/spec/data/v5_second.xml +0 -0
  96. data/spec/data/varia_De.htm +0 -0
  97. data/spec/data/vcr/transfer.dat +0 -0
  98. data/spec/data/vcr/transfer.zip +0 -0
  99. data/spec/data/wsdl_nonpharma.xml +0 -0
  100. data/spec/data/wsdl_pharma.xml +0 -0
  101. data/spec/fixtures/vcr_cassettes/artikelstamm.json +0 -0
  102. data/spec/galenic_spec.rb +0 -0
  103. data/spec/parslet_spec.rb +1 -1
  104. data/tools/cacert.pem +0 -0
  105. data/tools/set.bat +0 -0
  106. data/tools/win_fetch_cacerts.rb +0 -0
  107. metadata +13 -7
  108. data/shell.nix +0 -19
@@ -42,7 +42,7 @@ module Oddb2xml
42
42
  @@gtin2ignore ||= []
43
43
  attr_accessor :subject, :refdata, :items, :flags, :lppvs,
44
44
  :actions, :migel, :orphan,
45
- :infos, :packs, :infos_zur_rose,
45
+ :infos, :packs, :infos_zur_rose, :firstbase,
46
46
  :ean14, :tag_suffix,
47
47
  :companies, :people,
48
48
  :xsd
@@ -57,6 +57,7 @@ module Oddb2xml
57
57
  @packs = {}
58
58
  @migel = {}
59
59
  @infos_zur_rose ||= {}
60
+ @firstbase ||= {}
60
61
  @actions = []
61
62
  @orphan = []
62
63
  @ean14 = false
@@ -170,6 +171,23 @@ module Oddb2xml
170
171
  end
171
172
  end
172
173
  end
174
+ @firstbase.each do |ean13, obj|
175
+ description = obj[:trade_item_description_de]
176
+ if description.empty?
177
+ description = obj[:trade_item_description_en]
178
+ end
179
+ if (!description.empty? || !obj[:trade_item_description_fr].empty?) && @refdata[obj[:gtin]].nil?
180
+ entry = {
181
+ ean13: obj[:gtin],
182
+ desc_de: description,
183
+ desc_fr: obj[:trade_item_description_fr],
184
+ atc_code: "",
185
+ company_ean: obj[:gln],
186
+ firstbase: true
187
+ }
188
+ @articles << entry
189
+ end
190
+ end
173
191
  end
174
192
  Oddb2xml.log("prepare_articles done. Added #{nr_added} prices. Total #{@articles.size}")
175
193
  end
@@ -580,6 +598,20 @@ module Oddb2xml
580
598
  xml.CompositionSwissmedic obj[:composition_swissmedic] if obj[:composition_swissmedic]
581
599
  }
582
600
  end
601
+ @firstbase.each do |ean13, obj|
602
+ description = obj[:trade_item_description_de]
603
+ if description.empty?
604
+ description = obj[:trade_item_description_en]
605
+ end
606
+ if !description.empty? || !obj[:trade_item_description_fr].empty?
607
+ xml.PRD("DT" => "") {
608
+ xml.GTIN obj[:gtin]
609
+ xml.CPT
610
+ xml.DSCRD description
611
+ xml.DSCRF obj[:trade_item_description_fr]
612
+ }
613
+ end
614
+ end
583
615
  @products.sort.to_h.each do |ean13, obj|
584
616
  next if /^Q/i.match?(obj[:atc])
585
617
  seq = obj[:seq]
@@ -1514,21 +1546,21 @@ module Oddb2xml
1514
1546
  xml.GTIN pkg_gtin.to_s.rjust(13, "0")
1515
1547
  xml.SALECD("A")
1516
1548
  # maxLength for DSCR is 50 for Artikelstamm v3
1517
- xml.DSCR(name) # for g for zur_rose
1549
+ xml.DSCR(name) # for description for zur_rose
1518
1550
  name_fr = item[:name_fr] + " " + item[:desc_fr].strip + " " + package[:desc_fr] if package && package[:desc_fr]
1519
1551
  name_fr ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_fr] : nil
1520
1552
  # Zugelassenen Packungen has only german names
1521
1553
  name_fr ||= (obj[:name_fr] + ", " + obj[:desc_fr]).strip if obj[:name_fr]
1522
1554
  # ZuRorse has only german names
1523
1555
  name_fr ||= (item[:name_fr] + ", " + item[:desc_fr]) if item
1524
- xml.DSCRF(name_fr) if name_fr
1556
+ xml.DSCRF(name_fr)
1525
1557
  name_it = item[:name_it] + " " + item[:desc_it].strip + " " + package[:desc_it] if package && package[:desc_it]
1526
1558
  name_it ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_it] : nil
1527
1559
  # Zugelassenen Packungen has only german names
1528
1560
  name_it ||= (obj[:name_it] + ", " + obj[:desc_it]).strip if obj[:name_it]
1529
1561
  # ZuRorse has only german names
1530
1562
  name_it ||= (item[:name_it] + ", " + item[:desc_it]) if item
1531
- xml.DSCRI(name_it) if name_it
1563
+ xml.DSCRI(name_it)
1532
1564
  if obj[:company_name] || obj[:company_ean]
1533
1565
  xml.COMP do # Manufacturer
1534
1566
  xml.NAME obj[:company_name][0..99] # limit to 100 chars as in XSD
@@ -1641,7 +1673,7 @@ module Oddb2xml
1641
1673
  emit_salecd(xml, ean13, obj)
1642
1674
  description = obj[:desc_de] || obj[:description] # for description for zur_rose
1643
1675
  xml.DSCR(description)
1644
- xml.DSCRF(obj[:desc_fr]) if obj[:desc_fr] && !obj[:desc_fr].empty?
1676
+ xml.DSCRF(obj[:desc_fr])
1645
1677
  xml.DSCRI(obj[:desc_it]) if obj[:desc_it] && !obj[:desc_it].empty?
1646
1678
  if obj[:company_ean] && !obj[:company_ean].empty?
1647
1679
  xml.COMP do
@@ -1746,7 +1778,6 @@ module Oddb2xml
1746
1778
  nr_products += 1
1747
1779
  xml.PRODUCT do
1748
1780
  xml.PRODNO prodno
1749
-
1750
1781
  if sequence
1751
1782
  xml.SALECD("A") # these products are always active!
1752
1783
  name_de = "#{sequence[:name_de]} #{sequence[:desc_de]}".strip if sequence[:name_de]
@@ -1755,10 +1786,11 @@ module Oddb2xml
1755
1786
  else
1756
1787
  sequence[:desc_de]
1757
1788
  end
1789
+ name_fr ||= (ppac && ppac[:sequence_name])
1758
1790
  name_fr = "#{sequence[:name_fr]} #{sequence[:desc_fr]}".strip if sequence[:name_fr]
1759
1791
  name_it = "#{sequence[:name_it]} #{sequence[:desc_it]}".strip if sequence[:name_it]
1760
1792
  override(xml, prodno, :DSCR, name_de.strip)
1761
- override(xml, prodno, :DSCRF, name_fr.strip) if name_fr && !name_fr.empty?
1793
+ override(xml, prodno, :DSCRF, name_fr.strip)
1762
1794
  override(xml, prodno, :DSCRI, name_it.strip) if name_it && !name_it.empty?
1763
1795
  # use overriden ATC if possibel
1764
1796
  atc = sequence[:atc] || sequence[:atc_code]
@@ -1773,6 +1805,7 @@ module Oddb2xml
1773
1805
  xml.comment "Chapter70 hack prodno #{prodno} #{obj[:description].encode(xml: :text).gsub("--", "-")}"
1774
1806
  xml.SALECD("A") # these products are always active!
1775
1807
  xml.DSCR obj[:description]
1808
+ xml.DSCRF ""
1776
1809
  if @limitations.index(obj[:code])
1777
1810
  xml.LIMNAMEBAG obj[:code]
1778
1811
  used_limitations << obj[:code]
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"))
99
- @@galenic_forms = YAML.load_file(File.join(DATA_DIR, "gal_forms.yaml"))
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])
100
100
  @@new_galenic_forms = []
101
101
  @@names_without_galenic_forms = []
102
102
  @@rules_counter = {}
File without changes
data/lib/oddb2xml/cli.rb CHANGED
@@ -26,6 +26,7 @@ module Oddb2xml
26
26
  @packs = {} # [option] Packungen from Swissmedic for dat
27
27
  @infos_zur_rose = {} # [addition] infos_zur_rose and other infos from zurrose transfer.txt
28
28
  @migel = {} # [addition] additional Non Pharma products from files repo
29
+ @firstbase = {}
29
30
  @actions = [] # [addition] interactions from epha
30
31
  @orphan = [] # [addition] Orphaned drugs from Swissmedic xls
31
32
  # addresses
@@ -60,6 +61,9 @@ module Oddb2xml
60
61
  threads << download(:package) # swissmedic
61
62
  threads << download(:lppv) # oddb2xml_files
62
63
  threads << download(:bag) # bag.e-mediat
64
+ if @options[:firstbase]
65
+ threads << download(:firstbase) # https://github.com/zdavatz/oddb2xml/issues/63
66
+ end
63
67
  types.each do |type|
64
68
  threads << download(:refdata, type) # refdata
65
69
  end
@@ -85,6 +89,7 @@ module Oddb2xml
85
89
  puts "Validatied #{@the_files[:artikelstamm]}"
86
90
  else
87
91
  puts "Validating failed using #{cmd}"
92
+ require'pry'; binding.pry
88
93
  raise "Validating failed using #{cmd}"
89
94
  end
90
95
  end
@@ -124,7 +129,7 @@ module Oddb2xml
124
129
  builder.infos = @infos
125
130
  builder.packs = @packs
126
131
  # additional sources
127
- %w[actions orphan migel infos_zur_rose].each do |addition|
132
+ %w[actions orphan migel infos_zur_rose firstbase].each do |addition|
128
133
  builder.send("#{addition}=".intern, instance_variable_get("@#{addition}"))
129
134
  end
130
135
  end
@@ -312,6 +317,15 @@ module Oddb2xml
312
317
  @refdata_types[type]
313
318
  end
314
319
 
320
+ when :firstbase
321
+ downloader = FirstbaseDownloader.new(@options)
322
+ bin = downloader.download
323
+ Oddb2xml.log("FirstbaseDownloader bin #{File.size(bin)} bytes")
324
+ @mutex.synchronize do
325
+ @firstbase = FirstbaseExtractor.new(bin).to_hash
326
+ Oddb2xml.log("FirstbaseExtractor added #{@firstbase.size} firstbase items")
327
+ @firstbase
328
+ end
315
329
  end
316
330
  end
317
331
 
File without changes
File without changes
File without changes
@@ -381,4 +381,26 @@ module Oddb2xml
381
381
  read_xml_from_zip(/^AipsDownload_/iu, file)
382
382
  end
383
383
  end
384
+
385
+ class FirstbaseDownloader < Downloader
386
+ BASE_URL = "https://www.firstbase.ch"
387
+ include DownloadMethod
388
+ def initialize(type = :orphan, options = {})
389
+ @url = BASE_URL + "/sites/default/files/2023-09/firstbase_healthcare_public_data-dump%2C%2020230920.xlsx"
390
+ end
391
+
392
+ def download
393
+ @file2save = File.join(DOWNLOADS, "firstbase.xlsx")
394
+ report_download(@url, @file2save)
395
+ begin
396
+ download_as(@file2save, "w+")
397
+ return File.expand_path(@file2save)
398
+ rescue Timeout::Error, Errno::ETIMEDOUT
399
+ retrievable? ? retry : raise
400
+ ensure
401
+ Oddb2xml.download_finished(@file2save, false)
402
+ end
403
+ File.expand_path(@file2save)
404
+ end
405
+ end
384
406
  end
@@ -591,4 +591,34 @@ module Oddb2xml
591
591
  nil
592
592
  end
593
593
  end
594
+
595
+ class FirstbaseExtractor < Extractor
596
+ def initialize(file)
597
+ @sheet = RubyXL::Parser.parse(file).worksheets[0]
598
+ end
599
+
600
+ def to_hash
601
+ data = {}
602
+ return data unless @sheet
603
+ @sheet.each_with_index do |row, i|
604
+ next if i <= 1
605
+ gtin = row[0].value.to_s.gsub(/^0+/, '')
606
+ data[gtin] = {
607
+ gtin: gtin,
608
+ gln: row[1].value.to_s,
609
+ target_market: row[2] ? row[2].value.to_s: "",
610
+ gpc: row[3] ? row[3].value.to_s: "",
611
+ trade_item_description_de: row[4] ? row[4].value.to_s: "",
612
+ trade_item_description_en: row[5] ? row[5].value.to_s: "",
613
+ trade_item_description_fr: row[6] ? row[6].value.to_s: "",
614
+ trade_item_description_it: row[7] ? row[7].value.to_s: "",
615
+ manufacturer_name: row[8] ? row[8].value.to_s: "",
616
+ start_availability_date: row[9] ? row[9].value.to_s: "",
617
+ gross_weight: row[10] ? row[10].value.to_s: "",
618
+ net_weight: row[11] ? row[11].value.to_s: "",
619
+ }
620
+ end
621
+ data
622
+ end
623
+ end
594
624
  end
@@ -43,6 +43,7 @@ module Oddb2xml
43
43
  opt :log, "log important actions", short: :none
44
44
  opt :use_ra11zip, "Use the ra11.zip (a zipped transfer.dat from Galexis)",
45
45
  default: File.exist?("ra11.zip") ? "ra11.zip" : nil, type: :string
46
+ opt :firstbase, "Build all NONPHARMA articles on firstbase", short: "b", default: false
46
47
  end
47
48
 
48
49
  @opts[:percent] = @opts[:increment]
@@ -63,6 +64,9 @@ module Oddb2xml
63
64
  @opts[:extended] = true
64
65
  @opts[:price] = :zurrose
65
66
  end
67
+ if @opts[:firstbase]
68
+ @opts[:nonpharma] = true
69
+ end
66
70
  @opts[:price] = :zurrose if @opts[:price].is_a?(TrueClass)
67
71
  @opts[:price] = @opts[:price].to_sym if @opts[:price]
68
72
  @opts[:ean14] = @opts[:include]
File without changes
data/lib/oddb2xml/util.rb CHANGED
File without changes
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.7.9"
2
+ VERSION = "2.8.1"
3
3
  end
File without changes
data/lib/oddb2xml.rb CHANGED
File without changes
data/oddb_calc.xsd CHANGED
File without changes
@@ -75,11 +75,12 @@ describe Oddb2xml::Builder do
75
75
  expect(@inhalt.index(expected)).not_to be nil
76
76
  end
77
77
 
78
- it "should have a ATC for product PRIORIX TETRA" do
78
+ it "should have a DSCRF and ATC for product PRIORIX TETRA" do
79
79
  expected = %(<PRODUCT>
80
80
  <PRODNO>5815801</PRODNO>
81
81
  <SALECD>A</SALECD>
82
82
  <DSCR>PRIORIX TETRA Trockensub c Solv Fertspr</DSCR>
83
+ <DSCRF>Priorix-Tetra, Pulver und Lösungsmittel zur Herstellung einer Injektionslösung</DSCRF>
83
84
  <ATC>J07BD54</ATC>
84
85
  </PRODUCT>)
85
86
  expect(@inhalt.index(expected)).not_to be nil
@@ -118,6 +119,7 @@ describe Oddb2xml::Builder do
118
119
  <PRODNO>5559401</PRODNO>
119
120
  <SALECD>A</SALECD>
120
121
  <DSCR>Nutriflex Lipid plus, Infusionsemulsion, 1250ml</DSCR>
122
+ <DSCRF/>
121
123
  <ATC>B05BA10</ATC>
122
124
  </PRODUCT>)
123
125
  expect(@inhalt.index(expected)).not_to be nil
@@ -244,6 +246,7 @@ describe Oddb2xml::Builder do
244
246
  <PHAR>0055805</PHAR>
245
247
  <SALECD>A</SALECD>
246
248
  <DSCR>TENSOPLAST Kompressionsbinde 5cmx4.5m</DSCR>
249
+ <DSCRF/>
247
250
  <PEXF>0.00</PEXF>
248
251
  <PPUB>22.95</PPUB>
249
252
  </ITEM>),
@@ -458,12 +461,14 @@ describe Oddb2xml::Builder do
458
461
  <!--Chapter70 hack prodno 2069639 Ceres Urtinkturen gemäss L2 mit - im Kommentar-->
459
462
  <SALECD>A</SALECD>
460
463
  <DSCR>Ceres Urtinkturen gemäss L2 mit -- im Kommentar</DSCR>
464
+ <DSCRF/>
461
465
  </PRODUCT>),
462
466
  "Chapter 70 item" => %(<ITEM PHARMATYPE="P">
463
467
  <GTIN>2500000588532</GTIN>
464
468
  <PHAR>2069639</PHAR>
465
469
  <SALECD>A</SALECD>
466
470
  <DSCR>EINF ARZNEI Ceres Urtinktur spez 20ml</DSCR>
471
+ <DSCRF/>
467
472
  <PEXF>23.44</PEXF>
468
473
  <PPUB>31.30</PPUB>
469
474
  <!--Chapter70 hack 2500000588532 EINF ARZNEI Ceres Urtinktur spez 20ml-->
@@ -482,6 +487,7 @@ Der behandelnde Arzt ist verpflichtet, die erforderlichen Daten laufend im vorge
482
487
  <PRODNO>1336901</PRODNO>
483
488
  <SALECD>A</SALECD>
484
489
  <DSCR>Pethidin HCl Amino 100 mg/2 ml, Injektionslösung</DSCR>
490
+ <DSCRF/>
485
491
  <ATC>N02AB02</ATC>
486
492
  </PRODUCT>)}
487
493
 
data/spec/calc_spec.rb CHANGED
File without changes
File without changes
data/spec/cli_spec.rb CHANGED
File without changes
data/spec/compare_spec.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/data/atc.csv CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/galenic_spec.rb CHANGED
File without changes
data/spec/parslet_spec.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  VERBOSE_MESSAGES = false
2
- if File.exists?("#{Dir.pwd}/lib/oddb2xml/parslet_compositions.rb")
2
+ if File.exist?("#{Dir.pwd}/lib/oddb2xml/parslet_compositions.rb")
3
3
  require_relative "../lib/oddb2xml/parslet_compositions"
4
4
  else
5
5
  puts :ParseFailed
data/tools/cacert.pem CHANGED
File without changes
data/tools/set.bat CHANGED
File without changes
File without changes
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.9
4
+ version: 2.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 1980-01-01 00:00:00.000000000 Z
11
+ date: 2023-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -411,13 +411,17 @@ executables:
411
411
  extensions: []
412
412
  extra_rdoc_files: []
413
413
  files:
414
+ - ".envrc"
415
+ - ".github/workflows/codeql.yml"
414
416
  - ".github/workflows/ruby.yml"
415
417
  - ".gitignore"
416
418
  - ".rspec"
419
+ - ".ruby-version"
417
420
  - ".standard.yml"
418
421
  - Elexis_Artikelstamm_v003.xsd
419
422
  - Elexis_Artikelstamm_v5.xsd
420
423
  - Gemfile
424
+ - Gemfile.lock
421
425
  - History.txt
422
426
  - LICENSE
423
427
  - Manifest.txt
@@ -434,6 +438,9 @@ files:
434
438
  - data/gtin2ignore.yaml
435
439
  - data/product_overrides.yaml
436
440
  - dokumentation_calc.textile
441
+ - flake.lock
442
+ - flake.nix
443
+ - gemset.nix
437
444
  - lib/oddb2xml.rb
438
445
  - lib/oddb2xml/builder.rb
439
446
  - lib/oddb2xml/calc.rb
@@ -453,7 +460,6 @@ files:
453
460
  - oddb2xml.gemspec
454
461
  - oddb2xml.xsd
455
462
  - oddb_calc.xsd
456
- - shell.nix
457
463
  - spec/artikelstamm_spec.rb
458
464
  - spec/builder_spec.rb
459
465
  - spec/calc_spec.rb
@@ -529,7 +535,7 @@ homepage: https://github.com/zdavatz/oddb2xml
529
535
  licenses:
530
536
  - GPL-3.0
531
537
  metadata: {}
532
- post_install_message:
538
+ post_install_message:
533
539
  rdoc_options: []
534
540
  require_paths:
535
541
  - lib
@@ -544,8 +550,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
544
550
  - !ruby/object:Gem::Version
545
551
  version: '0'
546
552
  requirements: []
547
- rubygems_version: 3.2.26
548
- signing_key:
553
+ rubygems_version: 3.4.5
554
+ signing_key:
549
555
  specification_version: 4
550
556
  summary: oddb2xml creates xml files.
551
557
  test_files:
data/shell.nix DELETED
@@ -1,19 +0,0 @@
1
- # See https://nixos.wiki/wiki/Packaging/Ruby
2
- # A small helper script to get a development version for oddb2xml under NixOS
3
- with import <nixpkgs> {};
4
- stdenv.mkDerivation {
5
- name = "env";
6
- buildInputs = [
7
- ruby_3_1
8
- rubyPackages_3_0.safe_yaml
9
- ruby_3_1.devEnv
10
- git
11
- python
12
- libpcap
13
- libxml2
14
- libxslt
15
- pkg-config
16
- bundix
17
- gnumake
18
- ];
19
- }