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
data/spec/options_spec.rb CHANGED
@@ -1,195 +1,192 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
1
+ require "spec_helper"
4
2
  require "#{Dir.pwd}/lib/oddb2xml/options"
5
3
 
4
+ Oddb2xml::DEFAULT_OPTS = {
5
+ fi: false,
6
+ address: false,
7
+ artikelstamm: false,
8
+ nonpharma: false,
9
+ extended: false,
10
+ compress_ext: nil,
11
+ format: :xml,
12
+ calc: false,
13
+ tag_suffix: nil,
14
+ ean14: false,
15
+ skip_download: false,
16
+ log: false,
17
+ percent: nil,
18
+ use_ra11zip: nil
19
+ }
20
+
6
21
  describe Oddb2xml::Options do
7
22
  include ServerMockHelper
8
- Default_opts = {
9
- :fi => false,
10
- :address => false,
11
- :artikelstamm => false,
12
- :nonpharma => false,
13
- :extended => false,
14
- :compress_ext => nil,
15
- :format => :xml,
16
- :calc => false,
17
- :tag_suffix => nil,
18
- :ean14 => false,
19
- :skip_download=> false,
20
- :log => false,
21
- :percent => nil,
22
- :use_ra11zip => nil,
23
- }
24
- context 'when no options is passed' do
25
- test_opts = Oddb2xml::Options.parse('-a')
26
- opts = Default_opts.clone
23
+ context "when no options is passed" do
24
+ test_opts = Oddb2xml::Options.parse("-a")
25
+ opts = Oddb2xml::DEFAULT_OPTS.clone
27
26
  opts[:nonpharma] = true
28
27
  specify { expect(test_opts).to eq opts }
29
28
  end
30
29
 
31
- context 'when -c tar.gz option is given' do
32
- test_opts = Oddb2xml::Options.parse('-c tar.gz')
33
- specify { expect(test_opts[:compress_ext]).to eq('tar.gz') }
34
- expected = Default_opts.clone
35
- expected[:compress_ext] = 'tar.gz'
30
+ context "when -c tar.gz option is given" do
31
+ test_opts = Oddb2xml::Options.parse("-c tar.gz")
32
+ specify { expect(test_opts[:compress_ext]).to eq("tar.gz") }
33
+ expected = Oddb2xml::DEFAULT_OPTS.clone
34
+ expected[:compress_ext] = "tar.gz"
36
35
  specify { expect(test_opts).to eq expected }
37
36
  end
38
37
 
39
- context 'when -c tar.gz option --skip-download is given' do
40
- test_opts = Oddb2xml::Options.parse('-c tar.gz --skip-download')
41
- expected = Default_opts.clone
42
- expected[:compress_ext] = 'tar.gz'
38
+ context "when -c tar.gz option --skip-download is given" do
39
+ test_opts = Oddb2xml::Options.parse("-c tar.gz --skip-download")
40
+ expected = Oddb2xml::DEFAULT_OPTS.clone
41
+ expected[:compress_ext] = "tar.gz"
43
42
  expected[:skip_download] = true
44
43
  specify { expect(test_opts).to eq expected }
45
44
  end
46
45
 
47
- context 'when -c tar.gz option --skip-download is given' do
48
- test_opts = Oddb2xml::Options.parse('-c tar.gz --skip-download')
49
- expected = Default_opts.clone
50
- expected[:compress_ext] = 'tar.gz'
46
+ context "when -c tar.gz option --skip-download is given" do
47
+ test_opts = Oddb2xml::Options.parse("-c tar.gz --skip-download")
48
+ expected = Oddb2xml::DEFAULT_OPTS.clone
49
+ expected[:compress_ext] = "tar.gz"
51
50
  expected[:skip_download] = true
52
51
  specify { expect(test_opts).to eq expected }
53
52
  end
54
53
 
55
- context 'when -a is given' do
56
- test_opts = Oddb2xml::Options.parse('-a')
57
- expected = Default_opts.clone
58
- expected[:nonpharma] = true
54
+ context "when -a is given" do
55
+ test_opts = Oddb2xml::Options.parse("-a")
56
+ expected = Oddb2xml::DEFAULT_OPTS.clone
57
+ expected[:nonpharma] = true
59
58
  specify { expect(test_opts).to eq expected }
60
59
  end
61
60
 
62
- context 'when --append is given' do
63
- test_opts = Oddb2xml::Options.parse('--append ')
64
- expected = Default_opts.clone
65
- expected[:nonpharma] = true
61
+ context "when --append is given" do
62
+ test_opts = Oddb2xml::Options.parse("--append ")
63
+ expected = Oddb2xml::DEFAULT_OPTS.clone
64
+ expected[:nonpharma] = true
66
65
  specify { expect(test_opts).to eq expected }
67
66
  end
68
67
 
69
- context 'when -e is given' do
70
- test_opts = Oddb2xml::Options.parse('-e')
71
- expected = Default_opts.clone
72
- expected[:extended] = true
73
- expected[:nonpharma] = true
74
- expected[:calc] = true
75
- expected[:price] = :zurrose
68
+ context "when -e is given" do
69
+ test_opts = Oddb2xml::Options.parse("-e")
70
+ expected = Oddb2xml::DEFAULT_OPTS.clone
71
+ expected[:extended] = true
72
+ expected[:nonpharma] = true
73
+ expected[:calc] = true
74
+ expected[:price] = :zurrose
76
75
  specify { expect(test_opts).to eq expected }
77
76
  end
78
77
 
79
- context 'when -e -I 80 is given' do
80
- test_opts = Oddb2xml::Options.parse('-e -I 80')
81
- expected = Default_opts.clone
82
- expected[:extended] = true
83
- expected[:nonpharma] = true
84
- expected[:calc] = true
85
- expected[:price] = :zurrose
86
- expected[:percent] = 80
78
+ context "when -e -I 80 is given" do
79
+ test_opts = Oddb2xml::Options.parse("-e -I 80")
80
+ expected = Oddb2xml::DEFAULT_OPTS.clone
81
+ expected[:extended] = true
82
+ expected[:nonpharma] = true
83
+ expected[:calc] = true
84
+ expected[:price] = :zurrose
85
+ expected[:percent] = 80
87
86
  specify { expect(test_opts).to eq expected }
88
87
  end
89
88
 
90
- context 'when -f dat is given' do
91
- test_opts = Oddb2xml::Options.parse('-f dat')
92
- expected = Default_opts.clone
93
- expected[:format] = :dat
89
+ context "when -f dat is given" do
90
+ test_opts = Oddb2xml::Options.parse("-f dat")
91
+ expected = Oddb2xml::DEFAULT_OPTS.clone
92
+ expected[:format] = :dat
94
93
  specify { expect(test_opts).to eq expected }
95
94
  end
96
95
 
97
- context 'when -f dat -I 80 is given' do
98
- test_opts = Oddb2xml::Options.parse('-f dat -I 80')
99
- expected = Default_opts.clone
100
- expected[:format] = :dat
96
+ context "when -f dat -I 80 is given" do
97
+ test_opts = Oddb2xml::Options.parse("-f dat -I 80")
98
+ expected = Oddb2xml::DEFAULT_OPTS.clone
99
+ expected[:format] = :dat
101
100
  expected[:percent] = 80
102
- expected[:price] = :zurrose
101
+ expected[:price] = :zurrose
103
102
  specify { expect(test_opts).to eq expected }
104
103
  end
105
104
 
106
- context 'when -I 80 is given' do
107
- test_opts = Oddb2xml::Options.parse('-I 80')
108
- expected = Default_opts.clone
109
- expected[:percent] = 80
110
- expected[:price] = :zurrose
105
+ context "when -I 80 is given" do
106
+ test_opts = Oddb2xml::Options.parse("-I 80")
107
+ expected = Oddb2xml::DEFAULT_OPTS.clone
108
+ expected[:percent] = 80
109
+ expected[:price] = :zurrose
111
110
  specify { expect(test_opts).to eq expected }
112
111
  end
113
112
 
114
- context 'when -o is given' do
115
- test_opts = Oddb2xml::Options.parse('-o')
116
- expected = Default_opts.clone
117
- expected[:fi] = true
113
+ context "when -o is given" do
114
+ test_opts = Oddb2xml::Options.parse("-o")
115
+ expected = Oddb2xml::DEFAULT_OPTS.clone
116
+ expected[:fi] = true
118
117
  specify { expect(test_opts).to eq expected }
119
118
  end
120
119
 
121
- context 'when -i ean14 is given' do
122
- test_opts = Oddb2xml::Options.parse('-i ean14')
123
- expected = Default_opts.clone
124
- expected[:ean14] = true
120
+ context "when -i ean14 is given" do
121
+ test_opts = Oddb2xml::Options.parse("-i ean14")
122
+ expected = Oddb2xml::DEFAULT_OPTS.clone
123
+ expected[:ean14] = true
125
124
  specify { expect(test_opts).to eq expected }
126
125
  end
127
126
 
128
- context 'when -x addr is given' do
129
- test_opts = Oddb2xml::Options.parse('-x addr')
130
- expected = Default_opts.clone
131
- expected[:address] = true
127
+ context "when -x addr is given" do
128
+ test_opts = Oddb2xml::Options.parse("-x addr")
129
+ expected = Oddb2xml::DEFAULT_OPTS.clone
130
+ expected[:address] = true
132
131
  specify { expect(test_opts).to eq expected }
133
132
  end
134
133
 
135
- context 'when -p zurrose is given' do
136
- test_opts = Oddb2xml::Options.parse('-p zurrose')
137
- expected = Default_opts.clone
138
- expected[:price] = :zurrose
134
+ context "when -p zurrose is given" do
135
+ test_opts = Oddb2xml::Options.parse("-p zurrose")
136
+ expected = Oddb2xml::DEFAULT_OPTS.clone
137
+ expected[:price] = :zurrose
139
138
  specify { expect(test_opts).to eq expected }
140
139
  end
141
140
 
142
- context 'when -o fi --log is given' do
143
- test_opts = Oddb2xml::Options.parse('-o fi --log')
144
- expected = Default_opts.clone
145
- expected[:fi] = true
146
- expected[:log] = true
141
+ context "when -o fi --log is given" do
142
+ test_opts = Oddb2xml::Options.parse("-o fi --log")
143
+ expected = Oddb2xml::DEFAULT_OPTS.clone
144
+ expected[:fi] = true
145
+ expected[:log] = true
147
146
  specify { expect(test_opts).to eq expected }
148
147
  end
149
148
 
150
- context 'when -a nonpharma -p zurrose is given' do
151
- args = '-a nonpharma -p zurrose'
149
+ context "when -a nonpharma -p zurrose is given" do
150
+ args = "-a nonpharma -p zurrose"
152
151
  test_opts = Oddb2xml::Options.parse(args) # .should raise
153
- expected = Default_opts.clone
154
- expected[:price] = :zurrose
155
- expected[:nonpharma] = true
152
+ expected = Oddb2xml::DEFAULT_OPTS.clone
153
+ expected[:price] = :zurrose
154
+ expected[:nonpharma] = true
156
155
  specify { expect(test_opts).to eq expected }
157
156
  end
158
157
 
159
- context 'when --artikelstamm is given' do
160
- args = '--artikelstamm'
158
+ context "when --artikelstamm is given" do
159
+ args = "--artikelstamm"
161
160
  test_opts = Oddb2xml::Options.parse(args) # .should raise
162
- expected = Default_opts.clone
163
- expected[:price] = :zurrose
164
- expected[:extended] = true
165
- expected[:artikelstamm] = true
161
+ expected = Oddb2xml::DEFAULT_OPTS.clone
162
+ expected[:price] = :zurrose
163
+ expected[:extended] = true
164
+ expected[:artikelstamm] = true
166
165
  specify { expect(test_opts).to eq expected }
167
166
  end
168
167
 
169
- context 'when -c tar.gz option is given' do
170
- test_opts = Oddb2xml::Options.parse('-c tar.gz')
171
- specify { expect(test_opts[:compress_ext]).to eq('tar.gz') }
172
- expected = Default_opts.clone
173
- expected[:compress_ext] = 'tar.gz'
168
+ context "when -c tar.gz option is given" do
169
+ test_opts = Oddb2xml::Options.parse("-c tar.gz")
170
+ specify { expect(test_opts[:compress_ext]).to eq("tar.gz") }
171
+ expected = Oddb2xml::DEFAULT_OPTS.clone
172
+ expected[:compress_ext] = "tar.gz"
174
173
  specify { expect(test_opts).to eq expected }
175
174
  end
176
175
 
177
- context 'when --use-ra11zip is given' do
178
- test_opts = Oddb2xml::Options.parse(' --use-ra11zip some_other_zip')
179
- expected = Default_opts.clone
180
- expected[:use_ra11zip] = 'some_other_zip'
176
+ context "when --use-ra11zip is given" do
177
+ test_opts = Oddb2xml::Options.parse(" --use-ra11zip some_other_zip")
178
+ expected = Oddb2xml::DEFAULT_OPTS.clone
179
+ expected[:use_ra11zip] = "some_other_zip"
181
180
  # expected[:price] = :zurrose
182
181
  # expected[:extended] = true
183
182
  # expected[:artikelstamm] = true
184
183
  specify { expect(test_opts).to eq expected }
185
184
  end
186
185
 
187
- context 'when -t swiss is given' do
188
- test_opts = Oddb2xml::Options.parse('-t swiss')
189
- expected = Default_opts.clone
190
- expected[:tag_suffix] = 'swiss'
186
+ context "when -t swiss is given" do
187
+ test_opts = Oddb2xml::Options.parse("-t swiss")
188
+ expected = Oddb2xml::DEFAULT_OPTS.clone
189
+ expected[:tag_suffix] = "swiss"
191
190
  specify { expect(test_opts).to eq expected }
192
191
  end
193
-
194
192
  end
195
-