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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: abeb68cede68758d9f0c8ef8ef4b85c192190d20
4
- data.tar.gz: 9c6d087f808d57a21aa8330babedf98cbfce032a
2
+ SHA256:
3
+ metadata.gz: 24a2a7383e9f2b78c6cf6030f0364646a7a1b5334a0b6045ae7e87c8f64cd80d
4
+ data.tar.gz: e128e7c79ab18d866e75e9f6ad6c750a7b3bd966cff179beec672f1f48efb0db
5
5
  SHA512:
6
- metadata.gz: ba4dcae451a8fa7d2ceff112a7c309a1cff302fc31bf38aa3323d79d62e13696d86be19a8f52f24af13ecc312a7fbf9d6bc908bd6af48e43bcb957439ebf5c30
7
- data.tar.gz: 74a622f7cb5c73a6a95ff89f1c12ec02f86acbb14e83b057217e665cf020768ef4e266d5155a708f7786ba37ab64de228b3ab4f32ae2dfc93996cfb25a7c87a6
6
+ metadata.gz: 9178c18bea33811ed65f5bef2f08f7553291a46ce2d37e6550d7d878b9d8eed8217c23e63a2a991e8c59fc54a3912b66d76df107dc391f312b71ef0604b6acfe
7
+ data.tar.gz: 4a4b630a3b59b43680c4832e1afb7e059301afb8cd0576ebe57d14fff220857ca1f8289d3547af802d8d4946e87676e4dc76776f2579c3b54e4c0df7da4f95a2
@@ -1,4 +1,5 @@
1
- # encoding: UTF-8
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
@@ -1,4 +1,5 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  require_relative 'configuration'
3
4
  require_relative 'util/systemhelper.rb'
4
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'configuration.rb'
2
4
  require_relative 'util/systemhelper.rb'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CartoCSSHelper
2
4
  module Heuristic
3
5
  require 'set'
@@ -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,4 +1,5 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  require_relative 'configuration.rb'
3
4
  require_relative 'heuristic.rb'
4
5
  require_relative 'data_file_handling.rb'
@@ -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.format_query_into_url(query)
53
- query = query.gsub(/\/\/.*\n/, '') # add proper parsing - it will mutilate // inside quotes etc
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
- query = query.delete("\n")
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=' + URI.escape(query)
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
- # encoding: UTF-8
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
- operator = :equal
171
- key = tag[0]
172
- value = :any_value
173
- if tag[1].class == Hash
174
- # complex operation
175
- if tag[1][:operation] == :not_equal_to
176
- operator = :not_equal
177
- else
178
- raise "unexpected operation in #{tag[1]}"
179
- end
180
- value = tag[1][:value]
181
- else
182
- value = tag[1]
183
- end
184
- return {operator: operator, key: key, value: value}
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 = overpass_escape(filter_data[:value])
194
- key = overpass_escape(filter_data[: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
- return "\t['#{key}']"
206
+ return "\t['#{key}']"
198
207
  elsif value == :any_value && operator == :not_equal
199
- return "\t['#{key}'!~'.*']"
208
+ return "\t['#{key}'!~'.*']"
200
209
  elsif value != :any_value && operator == :equal
201
- return "\t['#{key}'='#{value}']"
210
+ return "\t['#{key}'='#{value}']"
202
211
  elsif value != :any_value && operator == :not_equal
203
- return "\t['#{key}'!='#{value}']"
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 += "\t(around:#{range},#{latitude},#{longitude});"
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_relative 'util/systemhelper.rb'
2
4
 
3
5
  include SystemHelper
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative('style_specific')
2
4
 
3
5
  module CartoCSSHelper
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CartoCSSHelper
2
4
  class StyleSpecificData
3
5
  attr_reader :min_z, :max_z, :list_of_documented_tags, :list_of_documented_compositions, :name_label_is_not_required
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'configuration.rb'
2
4
  require_relative 'image_generator.rb'
3
5
  include CartoCSSHelper::Configuration
@@ -1,4 +1,5 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  module FileHelper
3
4
  def self.make_string_usable_as_filename(string)
4
5
  return string.gsub(/[\x00\/\\:\*\?\"<>\|]/, '_')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'generic_downloader.rb'
2
4
 
3
5
  class GenericCachedDownloader
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ruby-progressbar'
2
4
  require_relative 'rest-client_wrapper.rb'
3
5
  require_relative 'logger.rb'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logger'
2
4
 
3
5
  module Log
@@ -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!'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class FailedCommandException < StandardError
2
4
  end
3
5
 
@@ -1,4 +1,5 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
+
2
3
  require_relative 'heuristic.rb'
3
4
  require_relative 'image_generator.rb'
4
5
  require_relative 'configuration.rb'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rmagick'
2
4
 
3
5
  module CartoCSSHelper
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'visualise_changes_diff_from_images'
2
4
  require_relative 'git'
3
5
  require_relative 'renderer_handler'
@@ -1,4 +1,5 @@
1
- # encoding: UTF-8
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
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CartoCSSHelper
2
4
  def self.get_list_of_testing_locations
3
5
  return [
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.0.0
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: 2018-01-07 00:00:00.000000000 Z
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.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.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: rubocop
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.48.1
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.48.1
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.1.0
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
- rubyforge_project:
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.