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.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +1 -2
- data/.standard.yml +2 -0
- data/Gemfile +3 -3
- data/History.txt +24 -0
- data/README.md +3 -3
- data/Rakefile +24 -23
- data/bin/check_artikelstamm +11 -11
- data/bin/compare_v5 +23 -23
- data/bin/oddb2xml +14 -13
- data/lib/oddb2xml/builder.rb +1070 -1038
- data/lib/oddb2xml/calc.rb +232 -233
- data/lib/oddb2xml/chapter_70_hack.rb +38 -32
- data/lib/oddb2xml/cli.rb +252 -236
- data/lib/oddb2xml/compare.rb +70 -59
- data/lib/oddb2xml/compositions_syntax.rb +451 -430
- data/lib/oddb2xml/compressor.rb +20 -20
- data/lib/oddb2xml/downloader.rb +157 -129
- data/lib/oddb2xml/extractor.rb +295 -295
- data/lib/oddb2xml/options.rb +34 -35
- data/lib/oddb2xml/parslet_compositions.rb +265 -269
- data/lib/oddb2xml/semantic_check.rb +39 -33
- data/lib/oddb2xml/util.rb +163 -163
- data/lib/oddb2xml/version.rb +1 -1
- data/lib/oddb2xml/xml_definitions.rb +32 -33
- data/lib/oddb2xml.rb +1 -1
- data/oddb2xml.gemspec +34 -34
- data/shell.nix +17 -0
- data/spec/artikelstamm_spec.rb +111 -110
- data/spec/builder_spec.rb +490 -505
- data/spec/calc_spec.rb +552 -593
- data/spec/check_artikelstamm_spec.rb +26 -26
- data/spec/cli_spec.rb +173 -174
- data/spec/compare_spec.rb +9 -11
- data/spec/composition_syntax_spec.rb +390 -409
- data/spec/compressor_spec.rb +48 -48
- data/spec/data/transfer.dat +1 -0
- data/spec/data_helper.rb +47 -49
- data/spec/downloader_spec.rb +251 -260
- data/spec/extractor_spec.rb +171 -159
- data/spec/fixtures/vcr_cassettes/oddb2xml.json +1 -1
- data/spec/galenic_spec.rb +233 -256
- data/spec/options_spec.rb +116 -119
- data/spec/parslet_spec.rb +896 -863
- data/spec/spec_helper.rb +153 -153
- data/test_options.rb +39 -42
- data/tools/win_fetch_cacerts.rb +2 -3
- 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
|
4
|
+
require "sax-machine"
|
5
5
|
|
6
|
-
|
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, :
|
35
|
-
element :PublicPrice, :
|
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, :
|
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, :
|
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, :
|
83
|
-
element :PointLimitations, :
|
84
|
-
element :Prices, :
|
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, :
|
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, :
|
98
|
+
element :Limitations, class: LimitationsElement
|
99
99
|
end
|
100
100
|
|
101
101
|
class ItCodeEntry
|
102
102
|
include SAXMachine
|
103
|
-
element :ItCode, :
|
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, :
|
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, :
|
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, :
|
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, :
|
145
|
-
element :Substances, :
|
146
|
-
element :Packs, :
|
147
|
-
element :ItCodes, :
|
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, :
|
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, :
|
158
|
+
elements :Preparation, class: PreparationContent
|
159
159
|
end
|
160
160
|
|
161
161
|
class PreparationsEntry
|
162
162
|
include SAXMachine
|
163
|
-
element :Preparations, :
|
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, :
|
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, :
|
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, :
|
197
|
-
element :PHARMA, :
|
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, :
|
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, :
|
227
|
+
element :medicalInformation, class: MedicalInformationContent
|
229
228
|
end
|
230
229
|
|
231
230
|
class MedicalInformationsContent
|
232
231
|
include SAXMachine
|
233
|
-
elements :medicalInformation, :
|
232
|
+
elements :medicalInformation, class: MedicalInformationContent
|
234
233
|
end
|
235
234
|
|
236
235
|
class MedicalInformationsEntry
|
237
236
|
include SAXMachine
|
238
|
-
element :medicalInformations, :
|
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, :
|
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, :
|
264
|
+
element :ARTICLE, class: SwissRegArticleContent
|
266
265
|
end
|
data/lib/oddb2xml.rb
CHANGED
data/oddb2xml.gemspec
CHANGED
@@ -1,52 +1,52 @@
|
|
1
|
-
|
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
|
3
|
+
require "oddb2xml/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name
|
8
|
-
spec.version
|
9
|
-
spec.author
|
10
|
-
spec.email
|
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
|
13
|
-
spec.homepage
|
14
|
-
spec.license
|
15
|
-
spec.files
|
16
|
-
spec.executables
|
17
|
-
spec.test_files
|
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.
|
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
|
25
|
-
spec.add_dependency
|
26
|
-
spec.add_dependency
|
27
|
-
spec.add_dependency
|
28
|
-
spec.add_dependency
|
29
|
-
spec.add_dependency
|
30
|
-
spec.add_dependency
|
31
|
-
spec.add_dependency
|
32
|
-
spec.add_dependency
|
33
|
-
spec.add_dependency
|
34
|
-
spec.add_dependency
|
35
|
-
spec.add_dependency
|
36
|
-
spec.add_dependency
|
37
|
-
spec.add_dependency
|
38
|
-
spec.add_dependency
|
39
|
-
spec.add_dependency
|
40
|
-
spec.add_dependency
|
41
|
-
spec.add_dependency
|
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
|
+
}
|