aipp 0.2.1 → 0.2.2

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +1 -2
  4. data/CHANGELOG.md +15 -0
  5. data/README.md +122 -37
  6. data/TODO.md +4 -0
  7. data/aipp.gemspec +8 -3
  8. data/lib/aipp.rb +14 -2
  9. data/lib/aipp/aip.rb +44 -29
  10. data/lib/aipp/downloader.rb +115 -0
  11. data/lib/aipp/executable.rb +6 -6
  12. data/lib/aipp/parser.rb +23 -23
  13. data/lib/aipp/patcher.rb +47 -0
  14. data/lib/aipp/pdf.rb +123 -0
  15. data/lib/aipp/regions/LF/AD-1.3.rb +162 -0
  16. data/lib/aipp/regions/LF/AD-1.3.yml +511 -0
  17. data/lib/aipp/regions/LF/AD-1.6.rb +31 -0
  18. data/lib/aipp/regions/LF/AD-2.rb +316 -0
  19. data/lib/aipp/regions/LF/AD-2.yml +185 -0
  20. data/lib/aipp/regions/LF/AD-3.1.rb-NEW +11 -0
  21. data/lib/aipp/regions/LF/ENR-2.1.rb +25 -24
  22. data/lib/aipp/regions/LF/ENR-4.1.rb +24 -23
  23. data/lib/aipp/regions/LF/ENR-4.3.rb +8 -6
  24. data/lib/aipp/regions/LF/ENR-5.1.rb +32 -22
  25. data/lib/aipp/regions/LF/ENR-5.5.rb-NEW +11 -0
  26. data/lib/aipp/regions/LF/helpers/AD_radio.rb +90 -0
  27. data/lib/aipp/regions/LF/helpers/URL.rb +26 -0
  28. data/lib/aipp/regions/LF/helpers/common.rb +186 -0
  29. data/lib/aipp/version.rb +1 -1
  30. data/lib/core_ext/enumerable.rb +52 -0
  31. data/lib/core_ext/nil_class.rb +10 -0
  32. data/lib/core_ext/object.rb +42 -0
  33. data/lib/core_ext/string.rb +105 -0
  34. data/spec/fixtures/archive.zip +0 -0
  35. data/spec/fixtures/document.pdf +0 -0
  36. data/spec/fixtures/document.pdf.json +1 -0
  37. data/spec/fixtures/new.html +6 -0
  38. data/spec/fixtures/new.pdf +0 -0
  39. data/spec/fixtures/new.txt +1 -0
  40. data/spec/lib/aipp/downloader_spec.rb +81 -0
  41. data/spec/lib/aipp/patcher_spec.rb +46 -0
  42. data/spec/lib/aipp/pdf_spec.rb +124 -0
  43. data/spec/lib/core_ext/enumberable_spec.rb +76 -0
  44. data/spec/lib/core_ext/nil_class_spec.rb +11 -0
  45. data/spec/lib/core_ext/string_spec.rb +88 -0
  46. data/spec/spec_helper.rb +1 -0
  47. metadata +123 -23
  48. data/lib/aipp/progress.rb +0 -40
  49. data/lib/aipp/refinements.rb +0 -114
  50. data/lib/aipp/regions/LF/helper.rb +0 -177
  51. data/spec/lib/aipp/refinements_spec.rb +0 -123
@@ -0,0 +1,46 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ class Shoe
4
+ include AIPP::Patcher
5
+
6
+ attr_accessor :size
7
+
8
+ patch Shoe, :size do |parser, object, value|
9
+ case value
10
+ when 'S' then 36
11
+ when 'one-size-fits-all' then nil
12
+ else throw(:abort)
13
+ end
14
+ end
15
+ end
16
+
17
+ describe AIPP::Patcher do
18
+ subject do
19
+ Shoe.new.attach_patches
20
+ end
21
+
22
+ context "with patches attached" do
23
+ after do
24
+ subject.detach_patches
25
+ end
26
+
27
+ it "overwrites with non-nil values" do
28
+ subject.tap { |s| s.size = 'S' }.size.must_equal 36
29
+ end
30
+
31
+ it "overwrite with nil values" do
32
+ subject.tap { |s| s.size = 'one-size-fits-all' }.size.must_be_nil
33
+ end
34
+
35
+ it "skips overwrite if abort is thrown" do
36
+ subject.tap { |s| s.size = 42 }.size.must_equal 42
37
+ end
38
+ end
39
+
40
+ context "with patches detached" do
41
+ it "removes patches" do
42
+ subject.detach_patches
43
+ subject.tap { |s| s.size = 'S' }.size.must_equal 'S'
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,124 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe AIPP::PDF do
4
+ let :fixtures_dir do
5
+ Pathname(__FILE__).join('..', '..', '..', 'fixtures')
6
+ end
7
+
8
+ subject do
9
+ AIPP::PDF.new(fixtures_dir.join('document.pdf'))
10
+ end
11
+
12
+ describe :@page_ranges do
13
+ it "returns an array of page end positions" do
14
+ subject.instance_variable_get(:@page_ranges).must_equal [74, 149, 225]
15
+ end
16
+ end
17
+
18
+ describe :page_for do
19
+ it "finds the page for any given position" do
20
+ subject.send(:page_for, index: 0).must_equal 1
21
+ subject.send(:page_for, index: 50).must_equal 1
22
+ subject.send(:page_for, index: 74).must_equal 1
23
+ subject.send(:page_for, index: 75).must_equal 2
24
+ subject.send(:page_for, index: 149).must_equal 2
25
+ subject.send(:page_for, index: 150).must_equal 3
26
+ subject.send(:page_for, index: 223).must_equal 3
27
+ end
28
+ end
29
+
30
+ describe :from do
31
+ it "fences beginning to any position" do
32
+ subject.from(100).range.must_equal (100..223)
33
+ end
34
+
35
+ it "fences beginning to first existing position" do
36
+ subject.from(:begin).range.must_equal (0..223)
37
+ end
38
+ end
39
+
40
+ describe :to do
41
+ it "fences beginning to any position" do
42
+ subject.to(100).range.must_equal (0..100)
43
+ end
44
+
45
+ it "fences beginning to first existing position" do
46
+ subject.to(:end).range.must_equal (0..223)
47
+ end
48
+ end
49
+
50
+ context "without boundaries" do
51
+ describe :text do
52
+ it "returns the entire text" do
53
+ subject.text.must_match /\Apage 1, line 1/
54
+ subject.text.must_match /page 3, line 5\z/
55
+ end
56
+ end
57
+
58
+ describe :each_line do
59
+ it "maps lines to positions" do
60
+ target = [
61
+ ["page 1, line 1\n", 1, false],
62
+ ["page 1, line 2\n", 1, false],
63
+ ["page 1, line 3\n", 1, false],
64
+ ["page 1, line 4\n", 1, false],
65
+ ["page 1, line 5\f", 1, false],
66
+ ["page 2, line 1\n", 2, false],
67
+ ["page 2, line 2\n", 2, false],
68
+ ["page 2, line 3\n", 2, false],
69
+ ["page 2, line 4\n", 2, false],
70
+ ["page 2, line 5\f", 2, false],
71
+ ["page 3, line 1\n", 3, false],
72
+ ["page 3, line 2\n", 3, false],
73
+ ["page 3, line 3\n", 3, false],
74
+ ["page 3, line 4\n", 3, false],
75
+ ["page 3, line 5", 3, true]
76
+ ]
77
+ subject.each_line do |line, page, last|
78
+ target_line, target_page, target_last = target.shift
79
+ line.must_equal target_line
80
+ page.must_equal target_page
81
+ last.must_equal target_last
82
+ end
83
+ end
84
+
85
+ it "returns an enumerator if no block is given" do
86
+ subject.each_line.must_be_instance_of Enumerator
87
+ end
88
+ end
89
+ end
90
+
91
+ context "with boundaries" do
92
+ before do
93
+ subject.from(100).to(200)
94
+ end
95
+
96
+ describe :text do
97
+ it "returns the entire text" do
98
+ subject.text.must_match /\Ane 2/
99
+ subject.text.must_match /page 3\z/
100
+ end
101
+ end
102
+
103
+ describe :each_line do
104
+ it "maps lines to positions" do
105
+ target = [
106
+ ["ne 2\n", 2, false],
107
+ ["page 2, line 3\n", 2, false],
108
+ ["page 2, line 4\n", 2, false],
109
+ ["page 2, line 5\f", 2, false],
110
+ ["page 3, line 1\n", 3, false],
111
+ ["page 3, line 2\n", 3, false],
112
+ ["page 3, line 3\n", 3, false],
113
+ ["page 3", 3, true]
114
+ ]
115
+ subject.each_line do |line, page, last|
116
+ target_line, target_page, target_last = target.shift
117
+ line.must_equal target_line
118
+ page.must_equal target_page
119
+ last.must_equal target_last
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,76 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe Enumerable do
4
+
5
+ describe :split do
6
+ context "by object" do
7
+ it "must split at matching element" do
8
+ [1, 2, 0, 3, 4].split(0).must_equal [[1, 2], [3, 4]]
9
+ end
10
+
11
+ it "won't split when no element matches" do
12
+ [1, 2, 3].split(0).must_equal [[1, 2, 3]]
13
+ end
14
+
15
+ it "won't split zero length enumerable" do
16
+ [].split(0).must_equal []
17
+ end
18
+
19
+ it "must keep leading empty subarrays" do
20
+ [0, 1, 2, 0, 3, 4].split(0).must_equal [[], [1, 2], [3, 4]]
21
+ end
22
+
23
+ it "must keep empty subarrays in the middle" do
24
+ [1, 2, 0, 0, 3, 4].split(0).must_equal [[1, 2], [], [3, 4]]
25
+ end
26
+
27
+ it "must drop trailing empty subarrays" do
28
+ [1, 2, 0, 3, 4, 0].split(0).must_equal [[1, 2], [3, 4]]
29
+ end
30
+ end
31
+
32
+ context "by block" do
33
+ it "must split at matching element" do
34
+ [1, 2, 0, 3, 4].split { |e| e.zero? }.must_equal [[1, 2], [3, 4]]
35
+ end
36
+
37
+ it "won't split when no element matches" do
38
+ [1, 2, 3].split { |e| e.zero? }.must_equal [[1, 2, 3]]
39
+ end
40
+
41
+ it "won't split zero length enumerable" do
42
+ [].split { |e| e.zero? }.must_equal []
43
+ end
44
+
45
+ it "must keep leading empty subarrays" do
46
+ [0, 1, 2, 0, 3, 4].split { |e| e.zero? }.must_equal [[], [1, 2], [3, 4]]
47
+ end
48
+
49
+ it "must keep empty subarrays in the middle" do
50
+ [1, 2, 0, 0, 3, 4].split { |e| e.zero? }.must_equal [[1, 2], [], [3, 4]]
51
+ end
52
+
53
+ it "must drop trailing empty subarrays" do
54
+ [1, 2, 0, 3, 4, 0].split { |e| e.zero? }.must_equal [[1, 2], [3, 4]]
55
+ end
56
+ end
57
+ end
58
+
59
+ describe :group_by_chunks do
60
+ it "fails to group if the first element does not meet the chunk condition" do
61
+ subject = [10, 11, 12, 2, 20, 21 ]
62
+ -> { subject.group_by_chunks { |i| i < 10 } }.must_raise ArgumentError
63
+ end
64
+
65
+ it "must map matching elements to array of subsequent non-matching elements" do
66
+ subject = [1, 10, 11, 12, 2, 20, 21, 3, 30, 31, 32]
67
+ subject.group_by_chunks { |i| i < 10 }.must_equal(1 => [10, 11, 12], 2 => [20, 21], 3 => [30, 31, 32])
68
+ end
69
+
70
+ it "must map matching elements to empty array if no subsequent non-matching elements exist" do
71
+ subject = [1, 10, 11, 12, 2, 3, 30]
72
+ subject.group_by_chunks { |i| i < 10 }.must_equal(1 => [10, 11, 12], 2 => [], 3 => [30])
73
+ end
74
+ end
75
+
76
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe NilClass do
4
+
5
+ describe :blank_to_nil do
6
+ it "must return nil" do
7
+ nil.blank_to_nil.must_be :nil?
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,88 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe String do
4
+
5
+ describe :blank_to_nil do
6
+ it "must convert blank to nil" do
7
+ "\n \n ".blank_to_nil.must_be :nil?
8
+ end
9
+
10
+ it "must leave non-blank untouched" do
11
+ "foobar".blank_to_nil.must_equal "foobar"
12
+ end
13
+
14
+ it "must leave non-blank with whitespace untouched" do
15
+ "\nfoo bar\n".blank_to_nil.must_equal "\nfoo bar\n"
16
+ end
17
+ end
18
+
19
+ describe :compact do
20
+ it "must remove unneccessary whitespace" do
21
+ " foo\n\nbar \r".compact.must_equal "foo\nbar"
22
+ "foo\n \nbar".compact.must_equal "foo\nbar"
23
+ " ".compact.must_equal ""
24
+ "\n \r \v ".compact.must_equal ""
25
+ "okay".compact.must_equal "okay"
26
+ end
27
+ end
28
+
29
+ describe :cleanup do
30
+ it "must replace double apostrophes" do
31
+ "the ''Terror'' was a fine ship".cleanup.must_equal 'the "Terror" was a fine ship'
32
+ end
33
+
34
+ it "must replace funky apostrophes and quotes" do
35
+ "from ’a‘ to “b”".cleanup.must_equal %q(from 'a' to "b")
36
+ end
37
+
38
+ it "must remove whitespace within quotes" do
39
+ 'the " best " way to fly'.cleanup.must_equal 'the "best" way to fly'
40
+ %Q(the " best\nway " to fly).cleanup.must_equal %Q(the "best\nway" to fly)
41
+ end
42
+ end
43
+
44
+ describe :unglue do
45
+ it "must insert spaces between camel glued words" do
46
+ "thisString has spaceProblems".unglue.must_equal "this String has space Problems"
47
+ end
48
+
49
+ it "must insert spaces between three-or-more-letter and number-only words" do
50
+ "the first123meters of D25".unglue.must_equal "the first 123 meters of D25"
51
+ end
52
+ end
53
+
54
+ describe :correlate do
55
+ subject do
56
+ %q(Truck "Montréal" en route on N 3 sud)
57
+ end
58
+
59
+ it "must recognize similar words with 5 or more characters" do
60
+ subject.correlate("truck route").must_equal 2
61
+ end
62
+
63
+ it "must recognize street denominators with 2 or more characters" do
64
+ subject.correlate("truck N 3").must_equal 2
65
+ end
66
+
67
+ it "must ignore whitespace in road identifiers" do
68
+ subject.correlate("truck N3").must_equal 2
69
+ end
70
+
71
+ it "must get rid of accents and similar decorations" do
72
+ subject.correlate("truck Montreal").must_equal 2
73
+ end
74
+
75
+ it "must downcase" do
76
+ subject.correlate("truck montreal").must_equal 2
77
+ end
78
+
79
+ it "must honor synonyms" do
80
+ subject.correlate("truck south", ['south', 'sud']).must_equal 2
81
+ end
82
+
83
+ it "must ignore words with less than 5 characters" do
84
+ subject.correlate("en on for").must_equal 0
85
+ end
86
+ end
87
+
88
+ end
@@ -13,6 +13,7 @@ require 'minitest/reporters'
13
13
  Minitest::Reporters.use! [Minitest::Reporters::SpecReporter.new, Minitest::Sound::Reporter.new]
14
14
 
15
15
  require 'minitest/matchers'
16
+ require 'spy/integration'
16
17
 
17
18
  module AIPP
18
19
  def self.root
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aipp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Schwyn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-12 00:00:00.000000000 Z
11
+ date: 2019-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: minitest
42
+ name: minitest-reporters
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitest-reporters
56
+ name: minitest-sound
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: minitest-sound
70
+ name: minitest-matchers
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest-matchers
84
+ name: spy
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -126,22 +126,30 @@ dependencies:
126
126
  name: aixm
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
129
  - - ">="
133
130
  - !ruby/object:Gem::Version
134
- version: 0.3.2
131
+ version: 0.3.4
135
132
  type: :runtime
136
133
  prerelease: false
137
134
  version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 0.3.4
139
+ - !ruby/object:Gem::Dependency
140
+ name: activesupport
141
+ requirement: !ruby/object:Gem::Requirement
138
142
  requirements:
139
143
  - - "~>"
140
144
  - !ruby/object:Gem::Version
141
- version: '0'
142
- - - ">="
145
+ version: '5'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
143
151
  - !ruby/object:Gem::Version
144
- version: 0.3.2
152
+ version: '5'
145
153
  - !ruby/object:Gem::Dependency
146
154
  name: nokogiri
147
155
  requirement: !ruby/object:Gem::Requirement
@@ -170,6 +178,48 @@ dependencies:
170
178
  - - "~>"
171
179
  - !ruby/object:Gem::Version
172
180
  version: '2'
181
+ - !ruby/object:Gem::Dependency
182
+ name: pdf-reader
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '2'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '2'
195
+ - !ruby/object:Gem::Dependency
196
+ name: json
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '2'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '2'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubyzip
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '1'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '1'
173
223
  - !ruby/object:Gem::Dependency
174
224
  name: colorize
175
225
  requirement: !ruby/object:Gem::Requirement
@@ -212,6 +262,20 @@ dependencies:
212
262
  - - "~>"
213
263
  - !ruby/object:Gem::Version
214
264
  version: '1'
265
+ - !ruby/object:Gem::Dependency
266
+ name: pry-stack_explorer
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
215
279
  description: Parser for Aeronautical Information Publications (AIP).
216
280
  email:
217
281
  - ruby@bitcetera.com
@@ -231,27 +295,53 @@ files:
231
295
  - LICENSE.txt
232
296
  - README.md
233
297
  - Rakefile
298
+ - TODO.md
234
299
  - aipp.gemspec
235
300
  - exe/aip2aixm
236
301
  - exe/aip2ofmx
237
302
  - lib/aipp.rb
238
303
  - lib/aipp/aip.rb
239
304
  - lib/aipp/airac.rb
305
+ - lib/aipp/downloader.rb
240
306
  - lib/aipp/executable.rb
241
307
  - lib/aipp/parser.rb
242
- - lib/aipp/progress.rb
243
- - lib/aipp/refinements.rb
308
+ - lib/aipp/patcher.rb
309
+ - lib/aipp/pdf.rb
310
+ - lib/aipp/regions/LF/AD-1.3.rb
311
+ - lib/aipp/regions/LF/AD-1.3.yml
312
+ - lib/aipp/regions/LF/AD-1.6.rb
313
+ - lib/aipp/regions/LF/AD-2.rb
314
+ - lib/aipp/regions/LF/AD-2.yml
315
+ - lib/aipp/regions/LF/AD-3.1.rb-NEW
244
316
  - lib/aipp/regions/LF/ENR-2.1.rb
245
317
  - lib/aipp/regions/LF/ENR-4.1.rb
246
318
  - lib/aipp/regions/LF/ENR-4.3.rb
247
319
  - lib/aipp/regions/LF/ENR-5.1.rb
248
- - lib/aipp/regions/LF/helper.rb
320
+ - lib/aipp/regions/LF/ENR-5.5.rb-NEW
321
+ - lib/aipp/regions/LF/helpers/AD_radio.rb
322
+ - lib/aipp/regions/LF/helpers/URL.rb
323
+ - lib/aipp/regions/LF/helpers/common.rb
249
324
  - lib/aipp/t_hash.rb
250
325
  - lib/aipp/version.rb
326
+ - lib/core_ext/enumerable.rb
327
+ - lib/core_ext/nil_class.rb
328
+ - lib/core_ext/object.rb
329
+ - lib/core_ext/string.rb
330
+ - spec/fixtures/archive.zip
331
+ - spec/fixtures/document.pdf
332
+ - spec/fixtures/document.pdf.json
333
+ - spec/fixtures/new.html
334
+ - spec/fixtures/new.pdf
335
+ - spec/fixtures/new.txt
251
336
  - spec/lib/aipp/airac_spec.rb
252
- - spec/lib/aipp/refinements_spec.rb
337
+ - spec/lib/aipp/downloader_spec.rb
338
+ - spec/lib/aipp/patcher_spec.rb
339
+ - spec/lib/aipp/pdf_spec.rb
253
340
  - spec/lib/aipp/t_hash_spec.rb
254
341
  - spec/lib/aipp/version_spec.rb
342
+ - spec/lib/core_ext/enumberable_spec.rb
343
+ - spec/lib/core_ext/nil_class_spec.rb
344
+ - spec/lib/core_ext/string_spec.rb
255
345
  - spec/sounds/failure.mp3
256
346
  - spec/sounds/success.mp3
257
347
  - spec/spec_helper.rb
@@ -267,23 +357,33 @@ required_ruby_version: !ruby/object:Gem::Requirement
267
357
  requirements:
268
358
  - - ">="
269
359
  - !ruby/object:Gem::Version
270
- version: '2.5'
360
+ version: '2.6'
271
361
  required_rubygems_version: !ruby/object:Gem::Requirement
272
362
  requirements:
273
363
  - - ">="
274
364
  - !ruby/object:Gem::Version
275
365
  version: '0'
276
366
  requirements: []
277
- rubyforge_project:
278
- rubygems_version: 2.7.6
367
+ rubygems_version: 3.0.3
279
368
  signing_key:
280
369
  specification_version: 4
281
370
  summary: Parser for Aeronautical Information Publications (AIP).
282
371
  test_files:
372
+ - spec/fixtures/archive.zip
373
+ - spec/fixtures/document.pdf
374
+ - spec/fixtures/document.pdf.json
375
+ - spec/fixtures/new.html
376
+ - spec/fixtures/new.pdf
377
+ - spec/fixtures/new.txt
283
378
  - spec/lib/aipp/airac_spec.rb
284
- - spec/lib/aipp/refinements_spec.rb
379
+ - spec/lib/aipp/downloader_spec.rb
380
+ - spec/lib/aipp/patcher_spec.rb
381
+ - spec/lib/aipp/pdf_spec.rb
285
382
  - spec/lib/aipp/t_hash_spec.rb
286
383
  - spec/lib/aipp/version_spec.rb
384
+ - spec/lib/core_ext/enumberable_spec.rb
385
+ - spec/lib/core_ext/nil_class_spec.rb
386
+ - spec/lib/core_ext/string_spec.rb
287
387
  - spec/sounds/failure.mp3
288
388
  - spec/sounds/success.mp3
289
389
  - spec/spec_helper.rb