underpass 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 38e561ec9d01ca1013783c0ea8cedb34b00d52938db669d3f5feb4a10d7fd155
4
- data.tar.gz: a99031218fec8de7c13d48df9c54e222445a2eb9dbb3399b1ab0605fe390d263
2
+ SHA1:
3
+ metadata.gz: 11d35c1d3797aadc218d103eb479bff53656006e
4
+ data.tar.gz: 11274bfe826d9fad56468589b8684d700b05d65a
5
5
  SHA512:
6
- metadata.gz: 0d89ebcb48cb6309caee1947acde9f8c946568256017cf4387155952ed2c4e13dbfc8a1d226b4127db7580fe7b70ad7c7250094124f2b9b81eef26338db650e6
7
- data.tar.gz: 9ea52cceb5fcf0edb4ee634a4c012e6ffbc65c288be0f632fe77639f87aa6b4cee8996315eda23612515bc88cc72abd928f872249cbef95efb3f7e0712747cfe
6
+ metadata.gz: 841e51e09bfb4aff0878c796034d096bf73b660013ee65e0649708c238fa069b524958b3a36213e5d1aaecbaa1bbb5e7b604d4456a745e0bd631f03f7310bb57
7
+ data.tar.gz: 73a4d865183f8401e4dece8126f95fcd8b229d22a0a2d55e2e9d7b92b2a58bf39c067a9f4b75bf8ac06f2a2295b63502c6447f6b01b1fea878493ad67bf337a6
@@ -26,7 +26,7 @@ module Underpass
26
26
  end
27
27
 
28
28
  @ways.each_value do |way|
29
- @matches << polygon_from_way(way, @nodes) if way.key?(:tags)
29
+ @matches << way_matches(way) if way.key?(:tags)
30
30
  end
31
31
 
32
32
  @matches
@@ -34,6 +34,18 @@ module Underpass
34
34
 
35
35
  private
36
36
 
37
+ def way_matches(way)
38
+ if open_way?(way)
39
+ polygon_from_way(way, @nodes)
40
+ else
41
+ line_string_from_way(way, @nodes)
42
+ end
43
+ end
44
+
45
+ def open_way?(way)
46
+ Underpass::QL::Shape.open_way?(way)
47
+ end
48
+
37
49
  def point_from_node(node)
38
50
  Underpass::QL::Shape.point_from_node(node)
39
51
  end
@@ -42,6 +54,10 @@ module Underpass
42
54
  Underpass::QL::Shape.polygon_from_way(way, nodes)
43
55
  end
44
56
 
57
+ def line_string_from_way(way, nodes)
58
+ Underpass::QL::Shape.line_string_from_way(way, nodes)
59
+ end
60
+
45
61
  def extract_indexed_nodes(elements)
46
62
  nodes = elements.select { |e| e[:type] == 'node' }
47
63
  nodes.map { |e| [e[:id], e] }.to_h
@@ -5,6 +5,10 @@ module Underpass
5
5
  # Contains factories for various RGeo shapes from ways and nodes parsed
6
6
  # with the Parser class
7
7
  class Shape
8
+ def self.open_way?(way)
9
+ way[:nodes].first == way[:nodes].last
10
+ end
11
+
8
12
  def self.polygon_from_way(way, nodes)
9
13
  f = RGeo::Geographic.spherical_factory(srid: 4326)
10
14
  f.polygon(line_string_from_way(way, nodes))
@@ -26,6 +30,7 @@ module Underpass
26
30
 
27
31
  # There should be some sort of 'decorator' to return an object
28
32
  # with the shape and a copy of the tags as
33
+ # Bonus: try to make it RGeo::GeoJSON.encode compatible
29
34
  # {
30
35
  # tags: way[:tags],
31
36
  # shape: shape
@@ -13,7 +13,7 @@ module Underpass
13
13
  module VERSION
14
14
  MAJOR = 0
15
15
  MINOR = 0
16
- PATCH = 6
16
+ PATCH = 7
17
17
 
18
18
  STRING = [MAJOR, MINOR, PATCH].join('.')
19
19
  end
metadata CHANGED
@@ -1,55 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: underpass
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janos Rusiczki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-14 00:00:00.000000000 Z
11
+ date: 2019-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rgeo
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 2.0.0
20
17
  - - "~>"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '2.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
27
30
  - - ">="
28
31
  - !ruby/object:Gem::Version
29
32
  version: 2.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: guard
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
30
37
  - - "~>"
31
38
  - !ruby/object:Gem::Version
32
- version: '2.0'
39
+ version: 2.15.0
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.15.0
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 2.15.0
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.15.0
33
53
  - !ruby/object:Gem::Dependency
34
- name: rspec
54
+ name: guard-rspec
35
55
  requirement: !ruby/object:Gem::Requirement
36
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: 4.7.3
37
60
  - - ">="
38
61
  - !ruby/object:Gem::Version
39
- version: 3.8.0
62
+ version: 4.7.3
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
40
67
  - - "~>"
41
68
  - !ruby/object:Gem::Version
42
- version: '3.8'
69
+ version: 4.7.3
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 4.7.3
73
+ - !ruby/object:Gem::Dependency
74
+ name: guard-rubocop
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: 1.3.0
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.3.0
43
83
  type: :development
44
84
  prerelease: false
45
85
  version_requirements: !ruby/object:Gem::Requirement
46
86
  requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.3.0
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.3.0
93
+ - !ruby/object:Gem::Dependency
94
+ name: rspec
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '3.8'
47
100
  - - ">="
48
101
  - !ruby/object:Gem::Version
49
102
  version: 3.8.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
50
107
  - - "~>"
51
108
  - !ruby/object:Gem::Version
52
109
  version: '3.8'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 3.8.0
53
113
  - !ruby/object:Gem::Dependency
54
114
  name: simplecov
55
115
  requirement: !ruby/object:Gem::Requirement
@@ -102,7 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
162
  - !ruby/object:Gem::Version
103
163
  version: '0'
104
164
  requirements: []
105
- rubygems_version: 3.0.1
165
+ rubyforge_project:
166
+ rubygems_version: 2.6.14
106
167
  signing_key:
107
168
  specification_version: 4
108
169
  summary: A library that translates Overpass API responses into RGeo objects