Skip to content

Commit 2d0f7bf

Browse files
committed
Update overpass_parser
1 parent 80deb17 commit 2d0f7bf

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

Gemfile.lock

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
GIT
22
remote: https://github.com/teritorio/overpass_parser-rb.git
3-
revision: 0b88a4eaf84d580bc761c6aea8a31663f63b20e9
3+
revision: f58f0da05054fe84521a61d32b4f2450490e6db6
44
specs:
55
overpass_parser (1.0.0)
66
rice (~> 4.0)
7+
sorbet-struct-comparable (~> 1.3.0)
78

89
GEM
910
remote: https://rubygems.org/
@@ -132,6 +133,8 @@ GEM
132133
sorbet-static-and-runtime (0.5.11295)
133134
sorbet (= 0.5.11295)
134135
sorbet-runtime (= 0.5.11295)
136+
sorbet-struct-comparable (1.3.0)
137+
sorbet-runtime (>= 0.5)
135138
spoom (1.2.4)
136139
erubi (>= 1.10.0)
137140
sorbet-static-and-runtime (>= 0.5.10187)

datasources/sources/overpass_select.rb

+8-11
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
require 'active_support/all'
55
require 'cgi'
66
require 'overpass_parser/visitor'
7+
require 'overpass_parser/nodes/query_objects'
8+
require 'overpass_parser/nodes/selectors'
79

810
require 'sorbet-runtime'
911

@@ -73,12 +75,12 @@ def initialize(job_id, destination_id, name, settings)
7375
end
7476

7577
def deep_select(object, &block)
76-
if object.is_a?(Array)
77-
object.collect{ |o|
78+
if object.is_a?(OverpassParser::Nodes::QueryObjects)
79+
object.selectors&.to_overpass
80+
elsif object.is_a?(OverpassParser::Nodes::Request) || object.is_a?(OverpassParser::Nodes::QueryUnion)
81+
object.queries.collect{ |o|
7882
deep_select(o, &block)
7983
}.flatten(1).compact
80-
elsif object.is_a?(Hash)
81-
deep_select(object.values, &block) + (block.call(object) ? [object] : [])
8284
end
8385
end
8486

@@ -88,18 +90,13 @@ def osm_tags
8890

8991
if @selectors.blank?
9092
tree = OverpassParser.tree(@settings.query)
91-
tags_all = {}
92-
selects = deep_select(tree) { |o| o[:type] == :query_object }.select{ |query_object|
93-
query_object[:selectors].present?
94-
}.collect{ |query_object|
95-
query_object[:selectors].to_overpass
96-
}
93+
selects = deep_select(tree[0])
9794

9895
super().deep_merge_array({
9996
'data' => selects.collect{ |select|
10097
{
10198
'select' => [select],
102-
'interest' => tags_all.merge(@settings.interest&.to_h{ |key| [key, nil] } || {}),
99+
'interest' => @settings.interest&.to_h{ |key| [key, nil] } || {},
103100
'sources' => [@job_id, @destination_id].uniq
104101
}
105102
}

0 commit comments

Comments
 (0)