From a4777a784c1d6da88292d4e70b540f8977a54a8a Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Fri, 13 Aug 2021 16:35:44 -0700 Subject: [PATCH] Disabled geocoding by default, and made the gem an optional dependency --- CHANGELOG.md | 5 +++++ app/jobs/auth_trail/geocode_job.rb | 3 +++ authtrail.gemspec | 1 - lib/authtrail.rb | 3 +-- .../authtrail/templates/initializer.rb.tt | 4 ++-- test/authtrail_test.rb | 13 ++++++++++--- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49c7812..c557035 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.4.0 (unreleased) + +- Disabled geocoding by default +- Made the `geocoder` gem an optional dependency + ## 0.3.1 (2021-03-03) - Added `--lockbox` option to install generator diff --git a/app/jobs/auth_trail/geocode_job.rb b/app/jobs/auth_trail/geocode_job.rb index 62bbcfd..5c637a1 100644 --- a/app/jobs/auth_trail/geocode_job.rb +++ b/app/jobs/auth_trail/geocode_job.rb @@ -8,6 +8,9 @@ def perform(login_activity) result = begin Geocoder.search(login_activity.ip).first + rescue NameError + # geocoder gem not installed + raise rescue => e Rails.logger.info "Geocode failed: #{e.message}" nil diff --git a/authtrail.gemspec b/authtrail.gemspec index afa445e..627e791 100644 --- a/authtrail.gemspec +++ b/authtrail.gemspec @@ -18,5 +18,4 @@ Gem::Specification.new do |spec| spec.add_dependency "railties", ">= 5.2" spec.add_dependency "activerecord", ">= 5.2" spec.add_dependency "warden" - spec.add_dependency "geocoder" end diff --git a/lib/authtrail.rb b/lib/authtrail.rb index e6c09f5..b5702ed 100644 --- a/lib/authtrail.rb +++ b/lib/authtrail.rb @@ -1,5 +1,4 @@ # dependencies -require "geocoder" require "warden" # modules @@ -11,7 +10,7 @@ module AuthTrail class << self attr_accessor :exclude_method, :geocode, :track_method, :identity_method, :job_queue, :transform_method end - self.geocode = true + self.geocode = false self.identity_method = lambda do |request, opts, user| if user user.try(:email) diff --git a/lib/generators/authtrail/templates/initializer.rb.tt b/lib/generators/authtrail/templates/initializer.rb.tt index 191a0b6..eaab2eb 100644 --- a/lib/generators/authtrail/templates/initializer.rb.tt +++ b/lib/generators/authtrail/templates/initializer.rb.tt @@ -1,5 +1,5 @@ -# set to true for geocoding -# we recommend configuring local geocoding first +# set to true for geocoding (and add the geocoder gem to your Gemfile) +# we recommend configuring local geocoding as well # see https://github.com/ankane/authtrail#geocoding AuthTrail.geocode = false diff --git a/test/authtrail_test.rb b/test/authtrail_test.rb index a85499d..442eeac 100644 --- a/test/authtrail_test.rb +++ b/test/authtrail_test.rb @@ -69,8 +69,10 @@ def test_track_method_error end def test_geocode_true - assert_enqueued_with(job: AuthTrail::GeocodeJob, queue: "default") do - post user_session_url, params: {user: {email: "test@example.org", password: "secret"}} + with_options(geocode: true) do + assert_enqueued_with(job: AuthTrail::GeocodeJob, queue: "default") do + post user_session_url, params: {user: {email: "test@example.org", password: "secret"}} + end end end @@ -81,8 +83,13 @@ def test_geocode_false end end + def test_geocode_default + post user_session_url, params: {user: {email: "test@example.org", password: "secret"}} + assert_equal 0, enqueued_jobs.size + end + def test_job_queue - with_options(job_queue: :low_priority) do + with_options(geocode: true, job_queue: :low_priority) do assert_enqueued_with(job: AuthTrail::GeocodeJob, queue: "low_priority") do post user_session_url, params: {user: {email: "test@example.org", password: "secret"}} end