From e36ba138a30464e613167840e72c8c147e3676fe Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Tue, 26 Apr 2016 22:06:22 -0400 Subject: [PATCH] Do not track associations by default [Fixes #740] --- CHANGELOG.md | 2 ++ lib/paper_trail/config.rb | 12 +++++++++++- spec/paper_trail/config_spec.rb | 16 ++++++++++++++++ test/dummy/config/initializers/paper_trail.rb | 3 +-- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12883f52..d1e09a0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ - [#758](https://github.com/airblade/paper_trail/pull/758) - `PaperTrail.config.track_associations` getter method removed, use `track_associations?` instead. +- [#740](https://github.com/airblade/paper_trail/issues/740) - + `PaperTrail.config.track_associations?` now defaults to false - [#723](https://github.com/airblade/paper_trail/pull/723) - `PaperTrail.enabled=` now affects all threads - [#556](https://github.com/airblade/paper_trail/pull/556) / diff --git a/lib/paper_trail/config.rb b/lib/paper_trail/config.rb index a8e5d0cd..1872e49a 100644 --- a/lib/paper_trail/config.rb +++ b/lib/paper_trail/config.rb @@ -34,9 +34,19 @@ module PaperTrail ) end + # Previously, we checked `PaperTrail::VersionAssociation.table_exists?` + # here, but that proved to be problematic in situations when the database + # connection had not been established, or when the database does not exist + # yet (as with `rake db:create`). def track_associations? if @track_associations.nil? - PaperTrail::VersionAssociation.table_exists? + ActiveSupport::Deprecation.warn <<-EOS.strip_heredoc.gsub(/\s+/, " ") + PaperTrail.track_associations has not been set. As of PaperTrail 5, it + defaults to false. Tracking associations is an experimental feature so + we recommend setting PaperTrail.config.track_associations = false in + your config/initializers/paper_trail.rb + EOS + false else @track_associations end diff --git a/spec/paper_trail/config_spec.rb b/spec/paper_trail/config_spec.rb index 2d097a60..7be7ab0c 100644 --- a/spec/paper_trail/config_spec.rb +++ b/spec/paper_trail/config_spec.rb @@ -13,5 +13,21 @@ module PaperTrail expect { described_class.new }.to raise_error(NoMethodError) end end + + describe "track_associations?" do + context "@track_associations is nil" do + after do + PaperTrail.config.track_associations = true + end + + it "returns false and prints a deprecation warning" do + config = described_class.instance + config.track_associations = nil + expect { + expect(config.track_associations?).to eq(false) + }.to output(/DEPRECATION WARNING/).to_stderr + end + end + end end end diff --git a/test/dummy/config/initializers/paper_trail.rb b/test/dummy/config/initializers/paper_trail.rb index fa0f530f..815cc748 100644 --- a/test/dummy/config/initializers/paper_trail.rb +++ b/test/dummy/config/initializers/paper_trail.rb @@ -1,5 +1,4 @@ -# Turn on associations tracking when the test suite is run on Travis CI -PaperTrail.config.track_associations = true if ENV["TRAVIS"] +PaperTrail.config.track_associations = true module PaperTrail class Version < ActiveRecord::Base