oddb2xml 2.7.1 → 2.7.5

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -2
  3. data/.standard.yml +2 -0
  4. data/Gemfile +3 -3
  5. data/History.txt +24 -0
  6. data/README.md +3 -3
  7. data/Rakefile +24 -23
  8. data/bin/check_artikelstamm +11 -11
  9. data/bin/compare_v5 +23 -23
  10. data/bin/oddb2xml +14 -13
  11. data/lib/oddb2xml/builder.rb +1070 -1038
  12. data/lib/oddb2xml/calc.rb +232 -233
  13. data/lib/oddb2xml/chapter_70_hack.rb +38 -32
  14. data/lib/oddb2xml/cli.rb +252 -236
  15. data/lib/oddb2xml/compare.rb +70 -59
  16. data/lib/oddb2xml/compositions_syntax.rb +451 -430
  17. data/lib/oddb2xml/compressor.rb +20 -20
  18. data/lib/oddb2xml/downloader.rb +157 -129
  19. data/lib/oddb2xml/extractor.rb +295 -295
  20. data/lib/oddb2xml/options.rb +34 -35
  21. data/lib/oddb2xml/parslet_compositions.rb +265 -269
  22. data/lib/oddb2xml/semantic_check.rb +39 -33
  23. data/lib/oddb2xml/util.rb +163 -163
  24. data/lib/oddb2xml/version.rb +1 -1
  25. data/lib/oddb2xml/xml_definitions.rb +32 -33
  26. data/lib/oddb2xml.rb +1 -1
  27. data/oddb2xml.gemspec +34 -34
  28. data/shell.nix +17 -0
  29. data/spec/artikelstamm_spec.rb +111 -110
  30. data/spec/builder_spec.rb +490 -505
  31. data/spec/calc_spec.rb +552 -593
  32. data/spec/check_artikelstamm_spec.rb +26 -26
  33. data/spec/cli_spec.rb +173 -174
  34. data/spec/compare_spec.rb +9 -11
  35. data/spec/composition_syntax_spec.rb +390 -409
  36. data/spec/compressor_spec.rb +48 -48
  37. data/spec/data/transfer.dat +1 -0
  38. data/spec/data_helper.rb +47 -49
  39. data/spec/downloader_spec.rb +251 -260
  40. data/spec/extractor_spec.rb +171 -159
  41. data/spec/fixtures/vcr_cassettes/oddb2xml.json +1 -1
  42. data/spec/galenic_spec.rb +233 -256
  43. data/spec/options_spec.rb +116 -119
  44. data/spec/parslet_spec.rb +896 -863
  45. data/spec/spec_helper.rb +153 -153
  46. data/test_options.rb +39 -42
  47. data/tools/win_fetch_cacerts.rb +2 -3
  48. metadata +42 -12
@@ -1,9 +1,9 @@
1
1
  # Definitions for the sax-machine parse to parse
2
2
  # Preparations.xml
3
3
 
4
- require 'sax-machine'
4
+ require "sax-machine"
5
5
 
6
- Strip_For_Sax_Machine = '<?xml version="1.0" encoding="utf-8"?>'+"\n"
6
+ STRIP_FOR_SAX_MACHINE = '<?xml version="1.0" encoding="utf-8"?>' + "\n"
7
7
 
8
8
  class PriceElement
9
9
  include SAXMachine
@@ -31,8 +31,8 @@ end
31
31
 
32
32
  class PricesElement
33
33
  include SAXMachine
34
- element :ExFactoryPrice, :class => PriceElement
35
- element :PublicPrice, :class => PriceElement
34
+ element :ExFactoryPrice, class: PriceElement
35
+ element :PublicPrice, class: PriceElement
36
36
  end
37
37
 
38
38
  class LimitationElement
@@ -50,7 +50,7 @@ end
50
50
 
51
51
  class LimitationsElement
52
52
  include SAXMachine
53
- elements :Limitation, :class => LimitationElement
53
+ elements :Limitation, class: LimitationElement
54
54
  end
55
55
 
56
56
  class PointLimitationElement
@@ -63,7 +63,7 @@ end
63
63
 
64
64
  class PointLimitationsElement
65
65
  include SAXMachine
66
- elements :PointLimitation, :class => PointLimitationElement
66
+ elements :PointLimitation, class: PointLimitationElement
67
67
  end
68
68
 
69
69
  class PackContent
@@ -79,14 +79,14 @@ class PackContent
79
79
  element :FlagModal
80
80
  element :BagDossierNo
81
81
  element :GTIN
82
- element :Limitations, :class => LimitationsElement
83
- element :PointLimitations, :class => PointLimitationsElement
84
- element :Prices, :class => PricesElement
82
+ element :Limitations, class: LimitationsElement
83
+ element :PointLimitations, class: PointLimitationsElement
84
+ element :Prices, class: PricesElement
85
85
  end
86
86
 
87
87
  class PacksElement
88
88
  include SAXMachine
89
- elements :Pack, :class => PackContent
89
+ elements :Pack, class: PackContent
90
90
  end
91
91
 
92
92
  class ItCodeContent
@@ -95,18 +95,18 @@ class ItCodeContent
95
95
  element :DescriptionDe
96
96
  element :DescriptionFr
97
97
  element :DescriptionIt
98
- element :Limitations, :class => LimitationsElement
98
+ element :Limitations, class: LimitationsElement
99
99
  end
100
100
 
101
101
  class ItCodeEntry
102
102
  include SAXMachine
103
- element :ItCode, :class => ItCodeContent
103
+ element :ItCode, class: ItCodeContent
104
104
  end
105
105
 
106
106
  # handling attributes as suggested by https://github.com/pauldix/sax-machine/issues/30
107
107
  class ItCodesElement
108
108
  include SAXMachine
109
- elements :ItCode, :class => ItCodeContent
109
+ elements :ItCode, class: ItCodeContent
110
110
  end
111
111
 
112
112
  class SubstanceElement
@@ -118,7 +118,7 @@ end
118
118
 
119
119
  class SubstancesElement
120
120
  include SAXMachine
121
- elements :Substance, :class => SubstanceElement
121
+ elements :Substance, class: SubstanceElement
122
122
  end
123
123
 
124
124
  class PreparationContent
@@ -127,7 +127,7 @@ class PreparationContent
127
127
  element :NameFr
128
128
  element :NameDe
129
129
  element :NameIt
130
- element :Status, :class => StatusElement
130
+ element :Status, class: StatusElement
131
131
  element :Dummy
132
132
  element :DescriptionDe
133
133
  element :DescriptionFr
@@ -141,29 +141,28 @@ class PreparationContent
141
141
  element :CommentFr
142
142
  element :CommentIt
143
143
  element :VatInEXF
144
- element :Limitations, :class => LimitationsElement
145
- element :Substances, :class => SubstancesElement
146
- element :Packs, :class => PacksElement
147
- element :ItCodes, :class => ItCodesElement
144
+ element :Limitations, class: LimitationsElement
145
+ element :Substances, class: SubstancesElement
146
+ element :Packs, class: PacksElement
147
+ element :ItCodes, class: ItCodesElement
148
148
  end
149
149
 
150
150
  class PreparationEntry
151
151
  include SAXMachine
152
- element :Preparation, :class => PreparationContent
152
+ element :Preparation, class: PreparationContent
153
153
  end
154
154
 
155
155
  class PreparationsContent
156
156
  include SAXMachine
157
157
  attribute :ReleaseDate
158
- elements :Preparation, :class => PreparationContent
158
+ elements :Preparation, class: PreparationContent
159
159
  end
160
160
 
161
161
  class PreparationsEntry
162
162
  include SAXMachine
163
- element :Preparations, :class => PreparationsContent
163
+ element :Preparations, class: PreparationsContent
164
164
  end
165
165
 
166
-
167
166
  class CompElement
168
167
  include SAXMachine
169
168
  element :NAME
@@ -181,20 +180,20 @@ class ItemContent
181
180
  element :DSCR
182
181
  element :ADDSCR
183
182
  element :ATC
184
- element :COMP, :class => CompElement
183
+ element :COMP, class: CompElement
185
184
  end
186
185
 
187
186
  class PharmaContent
188
187
  include SAXMachine
189
188
  attribute :CREATION_DATETIME
190
- elements :ITEM, :class => ItemContent
189
+ elements :ITEM, class: ItemContent
191
190
  end
192
191
 
193
192
  class PharmaEntry
194
193
  include SAXMachine
195
194
  element :CREATION_DATETIME
196
- element :NONPHARMA, :as => :PHARMA, :class => PharmaContent
197
- element :PHARMA, :class => PharmaContent
195
+ element :NONPHARMA, as: :PHARMA, class: PharmaContent
196
+ element :PHARMA, class: PharmaContent
198
197
  end
199
198
 
200
199
  class ItemContent
@@ -208,7 +207,7 @@ class ItemContent
208
207
  element :DSCR
209
208
  element :ADDSCR
210
209
  element :ATC
211
- element :COMP, :class => CompElement
210
+ element :COMP, class: CompElement
212
211
  end
213
212
 
214
213
  class MedicalInformationContent
@@ -225,17 +224,17 @@ end
225
224
 
226
225
  class MedicalInformationEntry
227
226
  include SAXMachine
228
- element :medicalInformation, :class => MedicalInformationContent
227
+ element :medicalInformation, class: MedicalInformationContent
229
228
  end
230
229
 
231
230
  class MedicalInformationsContent
232
231
  include SAXMachine
233
- elements :medicalInformation, :class => MedicalInformationContent
232
+ elements :medicalInformation, class: MedicalInformationContent
234
233
  end
235
234
 
236
235
  class MedicalInformationsEntry
237
236
  include SAXMachine
238
- element :medicalInformations, :class => MedicalInformationsContent
237
+ element :medicalInformations, class: MedicalInformationsContent
239
238
  end
240
239
 
241
240
  class SwissRegItemContentContent
@@ -256,11 +255,11 @@ end
256
255
  class SwissRegArticleContent
257
256
  include SAXMachine
258
257
  attribute :CREATION_DATETIME
259
- elements :ITEM, :class => SwissRegItemContentContent
258
+ elements :ITEM, class: SwissRegItemContentContent
260
259
  end
261
260
 
262
261
  class SwissRegArticleEntry
263
262
  include SAXMachine
264
263
  element :CREATION_DATETIME
265
- element :ARTICLE, :class => SwissRegArticleContent
264
+ element :ARTICLE, class: SwissRegArticleContent
266
265
  end
data/lib/oddb2xml.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "oddb2xml/version"
2
- require 'oddb2xml/cli'
2
+ require "oddb2xml/cli"
3
3
 
4
4
  module Oddb2xml
5
5
  end
data/oddb2xml.gemspec CHANGED
@@ -1,52 +1,52 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'oddb2xml/version'
3
+ require "oddb2xml/version"
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "oddb2xml"
8
- spec.version = Oddb2xml::VERSION
9
- spec.author = "Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger"
10
- spec.email = "yasaka@ywesee.com, zdavatz@ywesee.com, ngiger@ywesee.com"
6
+ spec.name = "oddb2xml"
7
+ spec.version = Oddb2xml::VERSION
8
+ spec.author = "Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger"
9
+ spec.email = "yasaka@ywesee.com, zdavatz@ywesee.com, ngiger@ywesee.com"
11
10
  spec.description = "oddb2xml creates xml files using swissINDEX, BAG-XML and Swissmedic."
12
- spec.summary = "oddb2xml creates xml files."
13
- spec.homepage = "https://github.com/zdavatz/oddb2xml"
14
- spec.license = "GPL-3.0"
15
- spec.files = `git ls-files -z`.split("\x0")
16
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
11
+ spec.summary = "oddb2xml creates xml files."
12
+ spec.homepage = "https://github.com/zdavatz/oddb2xml"
13
+ spec.license = "GPL-3.0"
14
+ spec.files = `git ls-files -z`.split("\x0")
15
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
17
  spec.require_paths = ["lib"]
19
- spec.required_ruby_version = ">= 2.2.0"
18
+ spec.required_ruby_version = ">= 2.5.0"
20
19
 
21
20
  # We fix the version of the spec to newer versions only in the third position
22
21
  # hoping that these version fix only security/severe bugs
23
22
  # Consulted the Gemfile.lock to get
24
- spec.add_dependency 'rubyzip'#, '~> 1.1.3'
25
- spec.add_dependency 'minitar'#, '~> 0.5.2'
26
- spec.add_dependency 'mechanize'#, '~> 2.5.1'
27
- spec.add_dependency 'nokogiri', '>= 1.8.2'
28
- spec.add_dependency 'savon'#, '~> 2.11.0'
29
- spec.add_dependency 'spreadsheet'#, '~> 1.0.0'
30
- spec.add_dependency 'rubyXL', '~> 3.4.0'
31
- spec.add_dependency 'sax-machine'#, '~> 0.1.0'
32
- spec.add_dependency 'parslet'#, '~> 1.7.0'
33
- spec.add_dependency 'rubyntlm', '0.5.1'
34
- spec.add_dependency 'multi_json'#, '>= 0.3.2'
35
- spec.add_dependency 'httpi' #, '>= 2.4.1'
36
- spec.add_dependency 'optimist'
37
- spec.add_dependency 'xml-simple'
38
- spec.add_dependency 'ox'
39
- spec.add_dependency 'htmlentities'
40
- spec.add_dependency 'webrick'
41
- spec.add_dependency 'rexml'
23
+ spec.add_dependency "rubyzip" # , '~> 1.1.3'
24
+ spec.add_dependency "minitar" # , '~> 0.5.2'
25
+ spec.add_dependency "mechanize" # , '~> 2.5.1'
26
+ spec.add_dependency "nokogiri", ">= 1.8.2"
27
+ spec.add_dependency "savon" , '~> 2.12.0'
28
+ spec.add_dependency "spreadsheet" # , '~> 1.0.0'
29
+ spec.add_dependency "rubyXL", "~> 3.4.0"
30
+ spec.add_dependency "sax-machine" # , '~> 0.1.0'
31
+ spec.add_dependency "parslet" # , '~> 1.7.0'
32
+ spec.add_dependency "rubyntlm", "0.5.1"
33
+ spec.add_dependency "multi_json" # , '>= 0.3.2'
34
+ spec.add_dependency "httpi" # , '>= 2.4.1'
35
+ spec.add_dependency "optimist"
36
+ spec.add_dependency "xml-simple"
37
+ spec.add_dependency "ox"
38
+ spec.add_dependency "htmlentities"
39
+ spec.add_dependency "webrick"
40
+ spec.add_dependency "rexml"
41
+ spec.add_dependency "standardrb"
42
42
 
43
43
  spec.add_development_dependency "bundler"
44
44
  spec.add_development_dependency "rake"
45
45
  spec.add_development_dependency "rspec"
46
46
  spec.add_development_dependency "webmock"
47
- spec.add_development_dependency "rdoc"
47
+ spec.add_development_dependency "rdoc", "~> 6.3.3" # rdoc 6.4 depends on psych 4.0 which breaks savon!
48
48
  spec.add_development_dependency "vcr"
49
49
  spec.add_development_dependency "timecop"
50
50
  spec.add_development_dependency "flexmock"
51
+ spec.add_development_dependency "psych", "< 4.0.0"
51
52
  end
52
-
data/shell.nix ADDED
@@ -0,0 +1,17 @@
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_0.devEnv
8
+ git
9
+ python
10
+ libpcap
11
+ libxml2
12
+ libxslt
13
+ pkg-config
14
+ bundix
15
+ gnumake
16
+ ];
17
+ }