class ScaffoldPlus::Generators::GeocoderGenerator
Public Instance Methods
update_model()
click to toggle source
# File lib/generators/scaffold_plus/geocoder/geocoder_generator.rb, line 23 def update_model geocoded = " geocoded_by :#{options.address}" geocoded << ", latitude: :#{options.latitude}" geocoded << ", longitude: :#{options.longitude}" if options.country? geocoded << " do |obj,results|" country = [ " if geo = results.first", " # puts JSON.pretty_generate(geo.as_json)", " if geo.country_code.upcase == 'DE'", " obj.country = 'DE'", " obj.address = geo.address.gsub(/, Deutschland/, '')", " if obj.#{options.latitude}.blank? and obj.#{options.longitude}.blank?", " obj.#{options.latitude} = geo.latitude", " obj.#{options.longitude} = geo.longitude", " end", " end", " end", " end" ] else country = [] end lines = options.before? ? [ "" ] : [] lines << [ geocoded, country, " after_validation :geocode" + ", if: ->(obj){ obj.#{options.address}.present?" + " and obj.#{options.address}_changed? }", "" ] lines << "" if options.after? inject_into_class "app/models/#{name}.rb", class_name do lines.flatten.join("\n") end end