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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -2
- data/CHANGELOG.md +15 -0
- data/README.md +122 -37
- data/TODO.md +4 -0
- data/aipp.gemspec +8 -3
- data/lib/aipp.rb +14 -2
- data/lib/aipp/aip.rb +44 -29
- data/lib/aipp/downloader.rb +115 -0
- data/lib/aipp/executable.rb +6 -6
- data/lib/aipp/parser.rb +23 -23
- data/lib/aipp/patcher.rb +47 -0
- data/lib/aipp/pdf.rb +123 -0
- data/lib/aipp/regions/LF/AD-1.3.rb +162 -0
- data/lib/aipp/regions/LF/AD-1.3.yml +511 -0
- data/lib/aipp/regions/LF/AD-1.6.rb +31 -0
- data/lib/aipp/regions/LF/AD-2.rb +316 -0
- data/lib/aipp/regions/LF/AD-2.yml +185 -0
- data/lib/aipp/regions/LF/AD-3.1.rb-NEW +11 -0
- data/lib/aipp/regions/LF/ENR-2.1.rb +25 -24
- data/lib/aipp/regions/LF/ENR-4.1.rb +24 -23
- data/lib/aipp/regions/LF/ENR-4.3.rb +8 -6
- data/lib/aipp/regions/LF/ENR-5.1.rb +32 -22
- data/lib/aipp/regions/LF/ENR-5.5.rb-NEW +11 -0
- data/lib/aipp/regions/LF/helpers/AD_radio.rb +90 -0
- data/lib/aipp/regions/LF/helpers/URL.rb +26 -0
- data/lib/aipp/regions/LF/helpers/common.rb +186 -0
- data/lib/aipp/version.rb +1 -1
- data/lib/core_ext/enumerable.rb +52 -0
- data/lib/core_ext/nil_class.rb +10 -0
- data/lib/core_ext/object.rb +42 -0
- data/lib/core_ext/string.rb +105 -0
- data/spec/fixtures/archive.zip +0 -0
- data/spec/fixtures/document.pdf +0 -0
- data/spec/fixtures/document.pdf.json +1 -0
- data/spec/fixtures/new.html +6 -0
- data/spec/fixtures/new.pdf +0 -0
- data/spec/fixtures/new.txt +1 -0
- data/spec/lib/aipp/downloader_spec.rb +81 -0
- data/spec/lib/aipp/patcher_spec.rb +46 -0
- data/spec/lib/aipp/pdf_spec.rb +124 -0
- data/spec/lib/core_ext/enumberable_spec.rb +76 -0
- data/spec/lib/core_ext/nil_class_spec.rb +11 -0
- data/spec/lib/core_ext/string_spec.rb +88 -0
- data/spec/spec_helper.rb +1 -0
- metadata +123 -23
- data/lib/aipp/progress.rb +0 -40
- data/lib/aipp/refinements.rb +0 -114
- data/lib/aipp/regions/LF/helper.rb +0 -177
- 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,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
|
data/spec/spec_helper.rb
CHANGED
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.
|
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:
|
11
|
+
date: 2019-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
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:
|
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-
|
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-
|
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:
|
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.
|
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: '
|
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:
|
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/
|
243
|
-
- lib/aipp/
|
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/
|
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/
|
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.
|
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
|
-
|
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/
|
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
|