module StaticMaps::Validations

Public Instance Methods

validate(key,value) click to toggle source
# File lib/static_maps/validations.rb, line 5
def validate(key,value)
  value = case key
  when :visual_refresh
    to_bool(value, true)

  when :sensor
    to_bool(value, false)

  when :size
    size = value.match(/([\d]+)[\sx-]*([\d]+)?/)
    if size
      size[2].nil? ? size[1]+'x'+size[1] : size[1]+'x'+size[2]
    else
      '640x640'
    end

  when :scale
    [1, value.to_i, 2].sort[1]

  when :zoom
    value.to_i == 0 ? 12 : value.to_i

  when :format
    ['png8','png','png32','gif','jpg','jpg-baseline'].
      include?(value) ? value : 'png'

  when :maptype
    ['roadmap','satellite','terrain','hybrid'].
      include?(value) ? value : 'roadmap'

  else
    value
  end
end

Private Instance Methods

to_bool(value, fallback = false) click to toggle source

Naive bool force with fallback

# File lib/static_maps/validations.rb, line 44
def to_bool(value, fallback = false)
  if !!value == value
    value == true ? true : fallback
  elsif value.class == String
    value.casecmp('true') == 0 ? true : fallback
  else
    fallback
  end
end