simple-trail 0.3.0 → 0.3.1
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/lib/simple_trail/parser/validate_gpx.rb +16 -0
- data/lib/simple_trail/parser/validate_gpx_string.rb +15 -0
- data/lib/simple_trail.rb +2 -0
- data/simple-trail.gemspec +1 -1
- data/spec/examples/not_a_gpx.gpx +121 -0
- data/spec/parser/validate_gpx_spec.rb +15 -0
- data/spec/parser/validate_gpx_string_spec.rb +15 -0
- metadata +9 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80b11153dae6617beaa321a66212e18b3d2f10aa986cbaccc07904faa15be4dd
|
4
|
+
data.tar.gz: a40a3b05bb2538c74f53185b5f2f5addc6932f14708e92d256be68ce26f21f7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 138f814cd98017dcd61aef761afc5c4a6ea1c21f426052ca56ed987928ce028e0d6da82e2aa13c2cdc03d41f93b9685fbfb0aa1dafc828b23357a758c8167bd0
|
7
|
+
data.tar.gz: c81fb032d0e916da5624407741055741e50bc955d146b69599ac7a5270787bb41f02c4b7642d966a4e6c1fde8a56defb6134283593b9dedfdfee7410df61e72e
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Parser
|
4
|
+
class ValidateGpx < Base
|
5
|
+
def initialize(filename)
|
6
|
+
@filename = filename
|
7
|
+
end
|
8
|
+
|
9
|
+
def validate_basics?
|
10
|
+
file = File.new(@filename)
|
11
|
+
@parsed_file = XmlHasher.parse(file)[:gpx]
|
12
|
+
|
13
|
+
!@parsed_file.nil?
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Parser
|
4
|
+
class ValidateGpxString < Base
|
5
|
+
def initialize(file_content)
|
6
|
+
@file_content = file_content
|
7
|
+
end
|
8
|
+
|
9
|
+
def validate_basics?
|
10
|
+
@parsed_file = XmlHasher.parse(@file_content)[:gpx]
|
11
|
+
|
12
|
+
!@parsed_file.nil?
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/simple_trail.rb
CHANGED
@@ -7,6 +7,8 @@ require File.expand_path('simple_trail/parser/base', __dir__)
|
|
7
7
|
require File.expand_path('simple_trail/parser/gpx', __dir__)
|
8
8
|
require File.expand_path('simple_trail/parser/gpx_string', __dir__)
|
9
9
|
require File.expand_path('simple_trail/parser/extract_points', __dir__)
|
10
|
+
require File.expand_path('simple_trail/parser/validate_gpx', __dir__)
|
11
|
+
require File.expand_path('simple_trail/parser/validate_gpx_string', __dir__)
|
10
12
|
require File.expand_path('simple_trail/manipulation/statistics', __dir__)
|
11
13
|
require File.expand_path('simple_trail/manipulation/straightener', __dir__)
|
12
14
|
require File.expand_path('simple_trail/manipulation/unifier', __dir__)
|
data/simple-trail.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'simple-trail'
|
8
|
-
s.version = '0.3.
|
8
|
+
s.version = '0.3.1'
|
9
9
|
s.date = '2020-08-03'
|
10
10
|
s.summary = 'Readind and manipulating GPX and other trail representation file'
|
11
11
|
s.description = 'Optimazing and manipulating GPX file data. For my private purposes mostly'
|
@@ -0,0 +1,121 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<catalog>
|
3
|
+
<book id="bk101">
|
4
|
+
<author>Gambardella, Matthew</author>
|
5
|
+
<title>XML Developer's Guide</title>
|
6
|
+
<genre>Computer</genre>
|
7
|
+
<price>44.95</price>
|
8
|
+
<publish_date>2000-10-01</publish_date>
|
9
|
+
<description>An in-depth look at creating applications
|
10
|
+
with XML.</description>
|
11
|
+
</book>
|
12
|
+
<book id="bk102">
|
13
|
+
<author>Ralls, Kim</author>
|
14
|
+
<title>Midnight Rain</title>
|
15
|
+
<genre>Fantasy</genre>
|
16
|
+
<price>5.95</price>
|
17
|
+
<publish_date>2000-12-16</publish_date>
|
18
|
+
<description>A former architect battles corporate zombies,
|
19
|
+
an evil sorceress, and her own childhood to become queen
|
20
|
+
of the world.</description>
|
21
|
+
</book>
|
22
|
+
<book id="bk103">
|
23
|
+
<author>Corets, Eva</author>
|
24
|
+
<title>Maeve Ascendant</title>
|
25
|
+
<genre>Fantasy</genre>
|
26
|
+
<price>5.95</price>
|
27
|
+
<publish_date>2000-11-17</publish_date>
|
28
|
+
<description>After the collapse of a nanotechnology
|
29
|
+
society in England, the young survivors lay the
|
30
|
+
foundation for a new society.</description>
|
31
|
+
</book>
|
32
|
+
<book id="bk104">
|
33
|
+
<author>Corets, Eva</author>
|
34
|
+
<title>Oberon's Legacy</title>
|
35
|
+
<genre>Fantasy</genre>
|
36
|
+
<price>5.95</price>
|
37
|
+
<publish_date>2001-03-10</publish_date>
|
38
|
+
<description>In post-apocalypse England, the mysterious
|
39
|
+
agent known only as Oberon helps to create a new life
|
40
|
+
for the inhabitants of London. Sequel to Maeve
|
41
|
+
Ascendant.</description>
|
42
|
+
</book>
|
43
|
+
<book id="bk105">
|
44
|
+
<author>Corets, Eva</author>
|
45
|
+
<title>The Sundered Grail</title>
|
46
|
+
<genre>Fantasy</genre>
|
47
|
+
<price>5.95</price>
|
48
|
+
<publish_date>2001-09-10</publish_date>
|
49
|
+
<description>The two daughters of Maeve, half-sisters,
|
50
|
+
battle one another for control of England. Sequel to
|
51
|
+
Oberon's Legacy.</description>
|
52
|
+
</book>
|
53
|
+
<book id="bk106">
|
54
|
+
<author>Randall, Cynthia</author>
|
55
|
+
<title>Lover Birds</title>
|
56
|
+
<genre>Romance</genre>
|
57
|
+
<price>4.95</price>
|
58
|
+
<publish_date>2000-09-02</publish_date>
|
59
|
+
<description>When Carla meets Paul at an ornithology
|
60
|
+
conference, tempers fly as feathers get ruffled.</description>
|
61
|
+
</book>
|
62
|
+
<book id="bk107">
|
63
|
+
<author>Thurman, Paula</author>
|
64
|
+
<title>Splish Splash</title>
|
65
|
+
<genre>Romance</genre>
|
66
|
+
<price>4.95</price>
|
67
|
+
<publish_date>2000-11-02</publish_date>
|
68
|
+
<description>A deep sea diver finds true love twenty
|
69
|
+
thousand leagues beneath the sea.</description>
|
70
|
+
</book>
|
71
|
+
<book id="bk108">
|
72
|
+
<author>Knorr, Stefan</author>
|
73
|
+
<title>Creepy Crawlies</title>
|
74
|
+
<genre>Horror</genre>
|
75
|
+
<price>4.95</price>
|
76
|
+
<publish_date>2000-12-06</publish_date>
|
77
|
+
<description>An anthology of horror stories about roaches,
|
78
|
+
centipedes, scorpions and other insects.</description>
|
79
|
+
</book>
|
80
|
+
<book id="bk109">
|
81
|
+
<author>Kress, Peter</author>
|
82
|
+
<title>Paradox Lost</title>
|
83
|
+
<genre>Science Fiction</genre>
|
84
|
+
<price>6.95</price>
|
85
|
+
<publish_date>2000-11-02</publish_date>
|
86
|
+
<description>After an inadvertant trip through a Heisenberg
|
87
|
+
Uncertainty Device, James Salway discovers the problems
|
88
|
+
of being quantum.</description>
|
89
|
+
</book>
|
90
|
+
<book id="bk110">
|
91
|
+
<author>O'Brien, Tim</author>
|
92
|
+
<title>Microsoft .NET: The Programming Bible</title>
|
93
|
+
<genre>Computer</genre>
|
94
|
+
<price>36.95</price>
|
95
|
+
<publish_date>2000-12-09</publish_date>
|
96
|
+
<description>Microsoft's .NET initiative is explored in
|
97
|
+
detail in this deep programmer's reference.</description>
|
98
|
+
</book>
|
99
|
+
<book id="bk111">
|
100
|
+
<author>O'Brien, Tim</author>
|
101
|
+
<title>MSXML3: A Comprehensive Guide</title>
|
102
|
+
<genre>Computer</genre>
|
103
|
+
<price>36.95</price>
|
104
|
+
<publish_date>2000-12-01</publish_date>
|
105
|
+
<description>The Microsoft MSXML3 parser is covered in
|
106
|
+
detail, with attention to XML DOM interfaces, XSLT processing,
|
107
|
+
SAX and more.</description>
|
108
|
+
</book>
|
109
|
+
<book id="bk112">
|
110
|
+
<author>Galos, Mike</author>
|
111
|
+
<title>Visual Studio 7: A Comprehensive Guide</title>
|
112
|
+
<genre>Computer</genre>
|
113
|
+
<price>49.95</price>
|
114
|
+
<publish_date>2001-04-16</publish_date>
|
115
|
+
<description>Microsoft Visual Studio 7 is explored in depth,
|
116
|
+
looking at how Visual Basic, Visual C++, C#, and ASP+ are
|
117
|
+
integrated into a comprehensive development
|
118
|
+
environment.</description>
|
119
|
+
</book>
|
120
|
+
</catalog>
|
121
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Parser::ValidateGpx do
|
6
|
+
it 'validates a proper file' do
|
7
|
+
gpx_validator = described_class.new('./spec/examples/test_1.gpx')
|
8
|
+
expect(gpx_validator.validate_basics?).to be(true)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns false if improper file' do
|
12
|
+
gpx_validator = described_class.new('./spec/examples/not_a_gpx.gpx')
|
13
|
+
expect(gpx_validator.validate_basics?).to be(false)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Parser::ValidateGpxString do
|
6
|
+
it 'validates the string' do
|
7
|
+
gpx_validator = described_class.new(File.new('./spec/examples/test_1.gpx').read)
|
8
|
+
expect(gpx_validator.validate_basics?).to be(true)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns false if improper file' do
|
12
|
+
gpx_validator = described_class.new(File.new('./spec/examples/not_a_gpx.gpx').read)
|
13
|
+
expect(gpx_validator.validate_basics?).to be(false)
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple-trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Staszek Zawadzki
|
@@ -100,9 +100,12 @@ files:
|
|
100
100
|
- lib/simple_trail/parser/extract_points.rb
|
101
101
|
- lib/simple_trail/parser/gpx.rb
|
102
102
|
- lib/simple_trail/parser/gpx_string.rb
|
103
|
+
- lib/simple_trail/parser/validate_gpx.rb
|
104
|
+
- lib/simple_trail/parser/validate_gpx_string.rb
|
103
105
|
- simple-trail.gemspec
|
104
106
|
- spec/examples/gss20-full-official.gpx
|
105
107
|
- spec/examples/kbl.gpx
|
108
|
+
- spec/examples/not_a_gpx.gpx
|
106
109
|
- spec/examples/pois.gpx
|
107
110
|
- spec/examples/test-xxl.gpx
|
108
111
|
- spec/examples/test_1.gpx
|
@@ -128,6 +131,8 @@ files:
|
|
128
131
|
- spec/parser/gpx_poi_spec.rb
|
129
132
|
- spec/parser/gpx_spec.rb
|
130
133
|
- spec/parser/gpx_string_spec.rb
|
134
|
+
- spec/parser/validate_gpx_spec.rb
|
135
|
+
- spec/parser/validate_gpx_string_spec.rb
|
131
136
|
- spec/spec_helper.rb
|
132
137
|
homepage: https://github.com/PadawanBreslau/simple-trail
|
133
138
|
licenses:
|
@@ -155,6 +160,7 @@ summary: Readind and manipulating GPX and other trail representation file
|
|
155
160
|
test_files:
|
156
161
|
- spec/examples/gss20-full-official.gpx
|
157
162
|
- spec/examples/kbl.gpx
|
163
|
+
- spec/examples/not_a_gpx.gpx
|
158
164
|
- spec/examples/pois.gpx
|
159
165
|
- spec/examples/test-xxl.gpx
|
160
166
|
- spec/examples/test_1.gpx
|
@@ -180,4 +186,6 @@ test_files:
|
|
180
186
|
- spec/parser/gpx_poi_spec.rb
|
181
187
|
- spec/parser/gpx_spec.rb
|
182
188
|
- spec/parser/gpx_string_spec.rb
|
189
|
+
- spec/parser/validate_gpx_spec.rb
|
190
|
+
- spec/parser/validate_gpx_string_spec.rb
|
183
191
|
- spec/spec_helper.rb
|