cartocss_helper 5.0.0 → 5.3.0
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 +5 -5
- data/lib/cartocss_helper/configuration.rb +8 -1
- data/lib/cartocss_helper/data_file_handling.rb +2 -1
- data/lib/cartocss_helper/git.rb +2 -0
- data/lib/cartocss_helper/heuristic.rb +2 -0
- data/lib/cartocss_helper/history_downloader.rb +35 -0
- data/lib/cartocss_helper/image_generator.rb +2 -1
- data/lib/cartocss_helper/notes_downloader.rb +2 -4
- data/lib/cartocss_helper/overpass_downloader.rb +37 -5
- data/lib/cartocss_helper/overpass_query_generator.rb +47 -38
- data/lib/cartocss_helper/renderer_handler.rb +2 -0
- data/lib/cartocss_helper/style_specific/default_osm_style.rb +2 -0
- data/lib/cartocss_helper/style_specific/style_specific.rb +2 -0
- data/lib/cartocss_helper/tag_lister.rb +2 -0
- data/lib/cartocss_helper/util/filehelper.rb +2 -1
- data/lib/cartocss_helper/util/generic_cached_downloader.rb +2 -0
- data/lib/cartocss_helper/util/generic_downloader.rb +2 -0
- data/lib/cartocss_helper/util/logger.rb +2 -0
- data/lib/cartocss_helper/util/rest-client_wrapper.rb +4 -0
- data/lib/cartocss_helper/util/systemhelper.rb +2 -0
- data/lib/cartocss_helper/validator.rb +2 -1
- data/lib/cartocss_helper/visualise_changes_diff_from_images.rb +2 -0
- data/lib/cartocss_helper/visualise_changes_image_generation.rb +2 -0
- data/lib/cartocss_helper.rb +3 -1
- data/lib/data/testing_locations.rb +2 -0
- metadata +26 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 24a2a7383e9f2b78c6cf6030f0364646a7a1b5334a0b6045ae7e87c8f64cd80d
|
4
|
+
data.tar.gz: e128e7c79ab18d866e75e9f6ad6c750a7b3bd966cff179beec672f1f48efb0db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9178c18bea33811ed65f5bef2f08f7553291a46ce2d37e6550d7d878b9d8eed8217c23e63a2a991e8c59fc54a3912b66d76df107dc391f312b71ef0604b6acfe
|
7
|
+
data.tar.gz: 4a4b630a3b59b43680c4832e1afb7e059301afb8cd0576ebe57d14fff220857ca1f8289d3547af802d8d4946e87676e4dc76776f2579c3b54e4c0df7da4f95a2
|
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'fileutils'
|
3
4
|
require 'find'
|
4
5
|
|
@@ -102,6 +103,12 @@ module CartoCSSHelper::Configuration
|
|
102
103
|
return location
|
103
104
|
end
|
104
105
|
|
106
|
+
def get_path_to_folder_for_history_api_cache
|
107
|
+
location = File.join(get_path_to_folder_for_cache, 'history-api', '')
|
108
|
+
FileUtils.mkdir_p location
|
109
|
+
return location
|
110
|
+
end
|
111
|
+
|
105
112
|
def get_data_filename
|
106
113
|
return get_path_to_folder_for_branch_specific_cache + 'data.osm'
|
107
114
|
end
|
data/lib/cartocss_helper/git.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'util/generic_cached_downloader.rb'
|
4
|
+
|
5
|
+
module CartoCSSHelper
|
6
|
+
class HistoryDownloader
|
7
|
+
def self.cache_filename(type, id)
|
8
|
+
url = HistoryDownloader.format_query_into_url(type, id)
|
9
|
+
return CartoCSSHelper::Configuration.get_path_to_folder_for_history_api_cache + url.delete("/") + ".cache"
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.run_history_query(type, id, invalidate_cache: false)
|
13
|
+
timeout = HistoryDownloader.get_allowed_timeout_in_seconds
|
14
|
+
downloader = GenericCachedDownloader.new(timeout: timeout, stop_on_timeout: false)
|
15
|
+
file = cache_filename(type, id)
|
16
|
+
url = HistoryDownloader.format_query_into_url(type, id)
|
17
|
+
return downloader.get_specified_resource(url, file, invalidate_cache: invalidate_cache)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.cache_timestamp(type, id)
|
21
|
+
downloader = GenericCachedDownloader.new
|
22
|
+
file = cache_filename(type, id)
|
23
|
+
return downloader.get_cache_timestamp(file)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.get_allowed_timeout_in_seconds
|
27
|
+
return 10 * 60
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.format_query_into_url(type, id)
|
31
|
+
# documentated at https://wiki.openstreetmap.org/wiki/API_v0.6
|
32
|
+
return "http://api.openstreetmap.org/api/0.6/#{type}/#{id}/history"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'util/generic_cached_downloader.rb'
|
2
4
|
|
3
5
|
module CartoCSSHelper
|
@@ -40,9 +42,5 @@ module CartoCSSHelper
|
|
40
42
|
max_longitude = longitude + size / 2
|
41
43
|
return "#{min_longitude},#{min_latitude},#{max_longitude},#{max_latitude}"
|
42
44
|
end
|
43
|
-
|
44
|
-
def self.get_overpass_instance_url
|
45
|
-
return CartoCSSHelper::Configuration.get_overpass_instance_url
|
46
|
-
end
|
47
45
|
end
|
48
46
|
end
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'util/generic_downloader.rb'
|
2
4
|
require_relative 'util/generic_cached_downloader.rb'
|
3
|
-
require 'uri' # for URI.escape
|
4
5
|
require 'digest/sha1'
|
6
|
+
require 'addressable/uri'
|
5
7
|
|
6
8
|
module CartoCSSHelper
|
7
9
|
class OverpassDownloader
|
@@ -40,7 +42,12 @@ module CartoCSSHelper
|
|
40
42
|
puts
|
41
43
|
puts url
|
42
44
|
puts
|
45
|
+
puts "url with %20 replaced back by spaces, %22 by \", newline by %0A"
|
46
|
+
puts url.replace("%20", " ").replace("%22", '"').replace("\n", "%0A")
|
47
|
+
puts
|
43
48
|
puts e
|
49
|
+
elsif e.http_code == 414
|
50
|
+
puts 'see https://github.com/matkoniecz/CartoCSSHelper/issues/35'
|
44
51
|
end
|
45
52
|
raise e
|
46
53
|
end
|
@@ -49,13 +56,38 @@ module CartoCSSHelper
|
|
49
56
|
return 10 * 60
|
50
57
|
end
|
51
58
|
|
52
|
-
def self.
|
53
|
-
|
59
|
+
def self.escape_query(query)
|
60
|
+
# code causing bug - (// inside quotes, as predicted) - why it was even added?
|
61
|
+
#query = query.gsub(/\/\/.*\n/, '') # add proper parsing - it will mutilate // inside quotes etc
|
62
|
+
# TODO: replace complaint above by a test
|
63
|
+
# maybe URI.escape(query, "/") is sufficient?
|
64
|
+
|
65
|
+
# escape backslash - turns \ into \\
|
54
66
|
query = query.gsub('\\', '\\\\')
|
55
|
-
|
67
|
+
|
68
|
+
# newlines, tabs added in query for readability may be safely deleted
|
69
|
+
#query = query.delete("\n") - can be escaped! Results in nicer Overpass failures
|
56
70
|
query = query.delete("\t")
|
71
|
+
|
72
|
+
#query = URI.escape(query) # no escaping for / [add require 'uri' to use it]
|
73
|
+
#query = URI.escape(query, "/") # escapes only / [add require 'uri' to use it]
|
74
|
+
#query = CGI.escape(query) # escapes spaces to + sign
|
75
|
+
query = Addressable::URI.encode_component(query, Addressable::URI::CharacterClasses::QUERY)
|
76
|
+
query = query.gsub("/", "%2F") # escape slashes manually
|
77
|
+
|
78
|
+
# inside query also & and + must be escaped (entire query is an url parameter)
|
79
|
+
query = query.gsub("&", "%26")
|
80
|
+
query = query.gsub('+', '%2B')
|
81
|
+
return query
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.format_query_into_url(query)
|
85
|
+
query = escape_query(query)
|
86
|
+
if query.length > 8174 #8175 is too much and allows crashes
|
87
|
+
raise 'see https://github.com/matkoniecz/CartoCSSHelper/issues/35'
|
88
|
+
end
|
57
89
|
base_overpass_url = OverpassDownloader.get_overpass_instance_url
|
58
|
-
return base_overpass_url + '/interpreter?data=' +
|
90
|
+
return base_overpass_url + '/interpreter?data=' + query
|
59
91
|
end
|
60
92
|
|
61
93
|
def self.get_overpass_instance_url
|
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'digest/sha1'
|
3
4
|
require 'sys/filesystem'
|
4
5
|
require_relative 'overpass_downloader.rb'
|
@@ -32,35 +33,35 @@ module CartoCSSHelper
|
|
32
33
|
return "#{min_latitude},#{min_longitude},#{max_latitude},#{max_longitude}"
|
33
34
|
end
|
34
35
|
|
35
|
-
def self.find_data_pair(tags_a, tags_b, latitude, longitude, type_a, type_b, bb_size: 0.1, distance_in_meters: 20)
|
36
|
+
def self.find_data_pair(tags_a, tags_b, latitude, longitude, type_a, type_b, bb_size: 0.1, distance_in_meters: 20, invalidate_cache: false)
|
36
37
|
return nil, nil if bb_size > 0.5
|
37
38
|
bb = overpass_bbox_string(latitude, longitude, bb_size.to_f)
|
38
39
|
query = OverpassQueryGenerator.get_query_to_find_data_pair(bb, tags_a, tags_b, type_a, type_b, distance_in_meters: distance_in_meters)
|
39
40
|
description = "find #{VisualDiff.tag_dict_to_string(tags_a)} nearby #{VisualDiff.tag_dict_to_string(tags_b)} - bb size: #{bb_size}"
|
40
|
-
list = OverpassQueryGenerator.get_overpass_query_results(query, description)
|
41
|
+
list = OverpassQueryGenerator.get_overpass_query_results(query, description, invalidate_cache: invalidate_cache)
|
41
42
|
if list.length != 0
|
42
43
|
return OverpassQueryGenerator.list_returned_by_overpass_to_a_single_location(list)
|
43
44
|
end
|
44
45
|
return OverpassQueryGenerator.find_data_pair(tags_a, tags_b, latitude, longitude, type_a, type_b, bb_size: bb_size * 2, distance_in_meters: distance_in_meters)
|
45
46
|
end
|
46
47
|
|
47
|
-
def self.get_file_with_downloaded_osm_data_for_location(latitude, longitude, size)
|
48
|
+
def self.get_file_with_downloaded_osm_data_for_location(latitude, longitude, size, invalidate_cache: false)
|
48
49
|
query = get_query_to_download_data_around_location(latitude, longitude, size)
|
49
50
|
description = "download data for #{latitude} #{longitude} (#{size})"
|
50
|
-
get_overpass_query_results(query, description)
|
51
|
+
get_overpass_query_results(query, description, invalidate_cache: invalidate_cache)
|
51
52
|
|
52
53
|
filename = OverpassDownloader.cache_filename(query)
|
53
54
|
return filename
|
54
55
|
end
|
55
56
|
|
56
|
-
def self.download_osm_data_for_location(latitude, longitude, size, accept_cache = true)
|
57
|
+
def self.download_osm_data_for_location(latitude, longitude, size, accept_cache = true) # TODO: conflict with invalidate_cache
|
57
58
|
filename = CartoCSSHelper::Configuration.get_path_to_folder_for_cache + "#{latitude} #{longitude} #{size}.osm"
|
58
59
|
if File.exist?(filename)
|
59
60
|
return filename if accept_cache
|
60
61
|
SystemHelper.delete_file(filename, 'query refusing to accept cache was used')
|
61
62
|
end
|
62
63
|
query = get_query_to_download_data_around_location(latitude, longitude, size)
|
63
|
-
text = get_overpass_query_results(query, "download data for #{latitude} #{longitude} (#{size})")
|
64
|
+
text = get_overpass_query_results(query, "download data for #{latitude} #{longitude} (#{size})", invalidate_cache: false)
|
64
65
|
File.new(filename, 'w') do |file|
|
65
66
|
file.write text
|
66
67
|
end
|
@@ -84,17 +85,17 @@ module CartoCSSHelper
|
|
84
85
|
return query
|
85
86
|
end
|
86
87
|
|
87
|
-
def self.get_elements_near_given_location(tags, type, latitude, longitude, range_in_meters)
|
88
|
+
def self.get_elements_near_given_location(tags, type, latitude, longitude, range_in_meters, invalidate_cache: false)
|
88
89
|
description = "find #{tags} #{type} within #{range_in_meters / 1000}km from #{latitude}, #{longitude}"
|
89
90
|
query = OverpassQueryGenerator.get_query_to_get_location(tags, type, latitude, longitude, range_in_meters)
|
90
|
-
list = OverpassQueryGenerator.get_overpass_query_results(query, description)
|
91
|
+
list = OverpassQueryGenerator.get_overpass_query_results(query, description, invalidate_cache: invalidate_cache)
|
91
92
|
return list_returned_by_overpass_to_array(list)
|
92
93
|
end
|
93
94
|
|
94
|
-
def self.get_elements_across_world(tags, type)
|
95
|
+
def self.get_elements_across_world(tags, type, invalidate_cache: false)
|
95
96
|
description = "find #{tags} #{type} across the world"
|
96
97
|
query = OverpassQueryGenerator.get_query_to_get_location(tags, type, 0, 0, :infinity)
|
97
|
-
list = OverpassQueryGenerator.get_overpass_query_results(query, description)
|
98
|
+
list = OverpassQueryGenerator.get_overpass_query_results(query, description, invalidate_cache: invalidate_cache)
|
98
99
|
return list_returned_by_overpass_to_array(list)
|
99
100
|
end
|
100
101
|
|
@@ -134,7 +135,11 @@ module CartoCSSHelper
|
|
134
135
|
return get_query_to_get_location_set_format(tags, type, latitude, longitude, range, "[out:csv(::lat,::lon;false)]")
|
135
136
|
end
|
136
137
|
|
138
|
+
# TODO: better, more generic function name
|
139
|
+
# get_query_to_get_objects_matching?
|
140
|
+
# put latitude, longitude, range together to avoid passing dummy variables
|
137
141
|
def self.get_query_to_get_location_set_format(tags, type, latitude, longitude, range, format)
|
142
|
+
# special support for range == :infinity
|
138
143
|
# special support for some tag values - see CartoCSSHelper::OverpassQueryGenerator.turn_list_of_tags_in_overpass_filter for details
|
139
144
|
locator = "[timeout:#{OverpassDownloader.get_allowed_timeout_in_seconds}]#{format};"
|
140
145
|
locator += "\n"
|
@@ -167,21 +172,21 @@ module CartoCSSHelper
|
|
167
172
|
end
|
168
173
|
|
169
174
|
def self.translate_tag_object_into_filter_data(tag)
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
175
|
+
operator = :equal
|
176
|
+
key = tag[0]
|
177
|
+
value = :any_value
|
178
|
+
if tag[1].class == Hash
|
179
|
+
# complex operation
|
180
|
+
if tag[1][:operation] == :not_equal_to
|
181
|
+
operator = :not_equal
|
182
|
+
else
|
183
|
+
raise "unexpected operation in #{tag[1]}"
|
184
|
+
end
|
185
|
+
value = tag[1][:value]
|
186
|
+
else
|
187
|
+
value = tag[1]
|
188
|
+
end
|
189
|
+
return { operator: operator, key: key, value: value }
|
185
190
|
end
|
186
191
|
|
187
192
|
def self.overpass_escape(text)
|
@@ -190,17 +195,21 @@ module CartoCSSHelper
|
|
190
195
|
|
191
196
|
def self.turn_tag_into_overpass_filter(tag)
|
192
197
|
filter_data = translate_tag_object_into_filter_data(tag)
|
193
|
-
value =
|
194
|
-
key =
|
198
|
+
value = filter_data[:value]
|
199
|
+
key = filter_data[:key]
|
195
200
|
operator = filter_data[:operator]
|
201
|
+
|
202
|
+
value = overpass_escape(value) if value != :any_value
|
203
|
+
key = overpass_escape(key)
|
204
|
+
|
196
205
|
if value == :any_value && operator == :equal
|
197
|
-
|
206
|
+
return "\t['#{key}']"
|
198
207
|
elsif value == :any_value && operator == :not_equal
|
199
|
-
|
208
|
+
return "\t['#{key}'!~'.*']"
|
200
209
|
elsif value != :any_value && operator == :equal
|
201
|
-
|
210
|
+
return "\t['#{key}'='#{value}']"
|
202
211
|
elsif value != :any_value && operator == :not_equal
|
203
|
-
|
212
|
+
return "\t['#{key}'!='#{value}']"
|
204
213
|
else
|
205
214
|
raise "unexpected situation in <#{tag}>"
|
206
215
|
end
|
@@ -210,14 +219,12 @@ module CartoCSSHelper
|
|
210
219
|
# special support for some tag values - see CartoCSSHelper::OverpassQueryGenerator.turn_list_of_tags_in_overpass_filter for details
|
211
220
|
# TODO - escape value with quotation signs in them
|
212
221
|
element = "(#{type}"
|
213
|
-
element += OverpassQueryGenerator.turn_list_of_tags_in_overpass_filter(tags)
|
214
|
-
element += "\n"
|
222
|
+
element += OverpassQueryGenerator.turn_list_of_tags_in_overpass_filter(tags).strip
|
215
223
|
if range != :infinity
|
216
|
-
element += "
|
217
|
-
element += "\n"
|
224
|
+
element += "(around:#{range},#{latitude},#{longitude})"
|
218
225
|
end
|
219
|
-
element += ');'
|
220
|
-
element += "\n"
|
226
|
+
element += ';);'
|
227
|
+
element += "\n\n"
|
221
228
|
return element
|
222
229
|
end
|
223
230
|
|
@@ -238,6 +245,8 @@ module CartoCSSHelper
|
|
238
245
|
|
239
246
|
def self.get_overpass_query_results(query, description, debug = false, invalidate_cache: false) # TODO: - make debug parameter named
|
240
247
|
if File.exist?(get_query_cache_refused_response_filename(query))
|
248
|
+
puts("response cached as failed")
|
249
|
+
puts(get_query_cache_refused_response_filename(query))
|
241
250
|
raise OverpassDownloader::OverpassRefusedResponse
|
242
251
|
end
|
243
252
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rest-client'
|
2
4
|
require_relative 'generic_downloader.rb'
|
3
5
|
|
@@ -17,6 +19,8 @@ class RestClientWrapper
|
|
17
19
|
rescue RestClient::SSLCertificateNotVerified, RestClient::ServerBrokeConnection, SocketError, URI::InvalidURIError
|
18
20
|
raise ExceptionWithoutResponse.new(e), e.to_s
|
19
21
|
rescue ArgumentError => e
|
22
|
+
puts "url:"
|
23
|
+
puts url
|
20
24
|
raise_issue_359_exception(e)
|
21
25
|
rescue => e
|
22
26
|
puts 'unhandled exception! It is a clear bug!'
|
data/lib/cartocss_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'open3'
|
3
4
|
|
4
5
|
module CartoCSSHelper
|
@@ -11,6 +12,7 @@ require_relative 'cartocss_helper/validator.rb'
|
|
11
12
|
require_relative 'cartocss_helper/git.rb'
|
12
13
|
require_relative 'cartocss_helper/util/generic_downloader.rb'
|
13
14
|
require_relative 'cartocss_helper/notes_downloader.rb'
|
15
|
+
require_relative 'cartocss_helper/history_downloader.rb'
|
14
16
|
require_relative 'cartocss_helper/style_specific/default_osm_style.rb'
|
15
17
|
require_relative 'data/testing_locations'
|
16
18
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cartocss_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mateusz Konieczny
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.3'
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: 1.1.0
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '1.
|
43
|
+
version: '1.3'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 1.1.0
|
@@ -72,6 +72,20 @@ dependencies:
|
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '1.8'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: addressable
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '2.7'
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '2.7'
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
90
|
name: rspec
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,25 +107,19 @@ dependencies:
|
|
93
107
|
- !ruby/object:Gem::Version
|
94
108
|
version: 3.4.0
|
95
109
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
110
|
+
name: matkoniecz-ruby-style
|
97
111
|
requirement: !ruby/object:Gem::Requirement
|
98
112
|
requirements:
|
99
|
-
- - "
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0.52'
|
102
|
-
- - ">"
|
113
|
+
- - ">="
|
103
114
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0
|
115
|
+
version: '0'
|
105
116
|
type: :development
|
106
117
|
prerelease: false
|
107
118
|
version_requirements: !ruby/object:Gem::Requirement
|
108
119
|
requirements:
|
109
|
-
- - "
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0.52'
|
112
|
-
- - ">"
|
120
|
+
- - ">="
|
113
121
|
- !ruby/object:Gem::Version
|
114
|
-
version: 0
|
122
|
+
version: '0'
|
115
123
|
- !ruby/object:Gem::Dependency
|
116
124
|
name: simplecov
|
117
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,20 +148,6 @@ dependencies:
|
|
140
148
|
- - "~>"
|
141
149
|
- !ruby/object:Gem::Version
|
142
150
|
version: '1.8'
|
143
|
-
- !ruby/object:Gem::Dependency
|
144
|
-
name: codeclimate-test-reporter
|
145
|
-
requirement: !ruby/object:Gem::Requirement
|
146
|
-
requirements:
|
147
|
-
- - "~>"
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: '0.5'
|
150
|
-
type: :development
|
151
|
-
prerelease: false
|
152
|
-
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
requirements:
|
154
|
-
- - "~>"
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
version: '0.5'
|
157
151
|
description: Tool to make development of CartoCSS styles more efficient. Automates
|
158
152
|
actions necessary to produce test images and validates style. Loading data using
|
159
153
|
osm2pgsql, rendering with TileMill, obtaining test data from overpass turbo.
|
@@ -168,6 +162,7 @@ files:
|
|
168
162
|
- lib/cartocss_helper/data_file_handling.rb
|
169
163
|
- lib/cartocss_helper/git.rb
|
170
164
|
- lib/cartocss_helper/heuristic.rb
|
165
|
+
- lib/cartocss_helper/history_downloader.rb
|
171
166
|
- lib/cartocss_helper/image_generator.rb
|
172
167
|
- lib/cartocss_helper/notes_downloader.rb
|
173
168
|
- lib/cartocss_helper/overpass_downloader.rb
|
@@ -200,15 +195,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
200
195
|
requirements:
|
201
196
|
- - ">="
|
202
197
|
- !ruby/object:Gem::Version
|
203
|
-
version: 2.
|
198
|
+
version: 2.4.0
|
204
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
200
|
requirements:
|
206
201
|
- - ">="
|
207
202
|
- !ruby/object:Gem::Version
|
208
203
|
version: 1.8.23
|
209
204
|
requirements: []
|
210
|
-
|
211
|
-
rubygems_version: 2.5.1
|
205
|
+
rubygems_version: 3.1.2
|
212
206
|
signing_key:
|
213
207
|
specification_version: 4
|
214
208
|
summary: Tool to make development of CartoCSS styles more efficient.
|