cartocss_helper 5.0.0 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|