oddb2xml 2.7.1 → 2.7.5

Sign up to get free protection for your applications and to get access to all the features.
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
+ }