Sha256: 5c7d1b2dd576786e178998d78089bb772be38a7b84fd474e68dc0aac9816d8ed
Contents?: true
Size: 781 Bytes
Versions: 17
Compression:
Stored size: 781 Bytes
Contents
# frozen_string_literal: true # This validator takes care of ensuring the validated content is # an existing address and computes its coordinates. class GeocodingValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) if Decidim::Map.available?(:geocoding) && record.component.present? geocoder = geocoder_for(record.component.organization) coordinates = geocoder.coordinates(value) if coordinates.present? record.latitude = coordinates.first record.longitude = coordinates.last else record.errors.add(attribute, :invalid) end else record.errors.add(attribute, :invalid) end end private def geocoder_for(organization) Decidim::Map.geocoding(organization:) end end
Version data entries
17 entries across 17 versions & 1 rubygems