class SimpleMappr::Validator
Public Class Methods
validate_bbox(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 6 def self.validate_bbox(data) validate_type(data, 'String') coords = data.split(",") if coords.length != 4 raise InvalidParameterValue, "bbox must have four parameters in the form -110,45,-100,52" end validate_coordinate(coords[1].to_f, coords[0].to_f) validate_coordinate(coords[3].to_f, coords[2].to_f) end
validate_color(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 27 def self.validate_color(data) validate_type(data, 'String') rgb = data.split(",") if rgb.length != 3 raise InvalidParameterValue, "color must have three parameters in the form 0,0,0" end rgb.each do |item| begin Integer(item || '') rescue ArgumentError raise InvalidParameterValue, "color value must be an integer <= 255" end if item.to_i > 255 raise InvalidParameterValue, "color value must be an integer <= 255" end end end
validate_colors(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 22 def self.validate_colors(data) validate_type(data, 'Array') data.each { |item| validate_color(item) } end
validate_coordinate(latitude, longitude)
click to toggle source
# File lib/simple-mappr/validator.rb, line 16 def self.validate_coordinate(latitude, longitude) if latitude > 90 || latitude < -90 || longitude > 180 || longitude < -180 raise InvalidParameterValue, "Coordinate latitude,longitude=#{latitude},#{longitude} is not valid" end end
validate_dimension(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 45 def self.validate_dimension(data) validate_type(data, 'Integer') if data > 4_500 raise InvalidParameterValue, "Accepted integer values are <= 4500" end end
validate_layers(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 106 def self.validate_layers(data) validate_type(data, 'String') if !(data.split(",") - LAYERS).empty? raise InvalidParameterValue, "Accepted layers are combinations of #{LAYERS.join(",")}" end end
validate_origin(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 119 def self.validate_origin(data) validate_type(data, 'Integer') if data > 180 || data < -180 raise InvalidParameterValue, "Accepted integer values are -180 <= x <= 180" end end
validate_output(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 133 def self.validate_output(data) if !OUTPUTS.include?(data) raise InvalidParameterValue, "Accepted outputs are #{OUTPUTS.join(", ")}" end end
validate_points(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 52 def self.validate_points(data) validate_type(data, 'Array') data.each { |item| validate_type(item, 'String') } end
validate_projection(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 113 def self.validate_projection(data) if !PROJECTIONS.include?(data) raise InvalidParameterValue, "Accepted projection value is one of #{PROJECTIONS.join(",")}" end end
validate_shade(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 95 def self.validate_shade(data) validate_type(data, 'Hash') data = data.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo} if !(data.keys - [:places, :title, :color]).empty? raise InvalidParameterValue, "Shade must be Hash in the form { places: \"\", title: \"\", color: \"\" }" end if data.key?(:color) validate_color(data[:color]) end end
validate_shadows(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 76 def self.validate_shadows(data) validate_type(data, 'Array') data.each { |item| validate_type(item, 'Boolean') } end
validate_shapes(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 57 def self.validate_shapes(data) validate_type(data, 'Array') data.each do |item| if !SHAPES.include?(item) raise InvalidParameterValue, "Values must each be one of #{SHAPES.join(", ")}" end end end
validate_sizes(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 66 def self.validate_sizes(data) validate_type(data, 'Array') data.each do |item| validate_type(item, 'Integer') if item > 14 raise InvalidParameterValue, "Values must each be integers less than 14" end end end
validate_spacing(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 126 def self.validate_spacing(data) validate_type(data, 'Integer') if data > 10 raise InvalidParameterValue, "Accepted integer values are <= 10" end end
validate_type(data, type)
click to toggle source
# File lib/simple-mappr/validator.rb, line 139 def self.validate_type(data, type) case type when 'String', 'Array', 'Integer', 'Hash' raise InvalidParameterValue, "Must be a #{type}" unless data.is_a?(Object.const_get(type)) when 'Boolean' raise InvalidParameterValue, "Must be a Boolean" unless [true, false].include?(data) when 'File' raise InvalidParameterValue, "Must be a file path & file must exist" unless File.file?(data) end end
validate_url(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 81 def self.validate_url(data) validate_type(data, 'String') if data !~ /\A#{URI::regexp(['http', 'https'])}\z/ raise InvalidParameterValue, "URL must be in the form http:// or https://" end end
validate_watermark(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 161 def self.validate_watermark(data) validate_type(data, 'Boolean') end
validate_wkt(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 150 def self.validate_wkt(data) validate_type(data, 'Array') data.each { |item| validate_type(item, 'Hash') } if !(data[0].keys - [:data, :title, :color, :border]).empty? raise InvalidParameterValue, "wkt must be an Array of Hashes in the form [{ data: \"\", title: \"\", color: \"\", border: \"\" }]" end if data[0].key?(:color) validate_color(data[0][:color]) end end
validate_zoom(data)
click to toggle source
# File lib/simple-mappr/validator.rb, line 88 def self.validate_zoom(data) validate_type(data, 'Integer') if data > 10 raise InvalidParameterValue, "Accepted integer value is <= 10" end end