From 756e5829a27d1c17a53bd03f9616b3d6e0d74cb4 Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Sun, 4 Dec 2016 17:36:52 -0500 Subject: [PATCH 1/5] Docs: Add longer description to gemspec rubygems complains when the summary and description are the same. --- paper_trail.gemspec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/paper_trail.gemspec b/paper_trail.gemspec index ba583209..17d2e2a1 100644 --- a/paper_trail.gemspec +++ b/paper_trail.gemspec @@ -5,8 +5,12 @@ Gem::Specification.new do |s| s.name = "paper_trail" s.version = PaperTrail::VERSION::STRING.dup # The `dup` is for ruby 1.9.3 s.platform = Gem::Platform::RUBY - s.summary = "Track changes to your models' data. Good for auditing or versioning." - s.description = s.summary + s.summary = "Track changes to your models." + s.description = <<-EOS +Track changes to your models, for auditing or versioning. See how a model looked +at any stage in its lifecycle, revert it to any version, or restore it after it +has been destroyed. + EOS s.homepage = "https://github.com/airblade/paper_trail" s.authors = ["Andy Stewart", "Ben Atkins"] s.email = "batkinz@gmail.com" From a6b767086bdac524dbd70d988bd591214ce5eb12 Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Sun, 4 Dec 2016 17:40:59 -0500 Subject: [PATCH 2/5] Update constraint for dev. dep. railties --- paper_trail.gemspec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/paper_trail.gemspec b/paper_trail.gemspec index 17d2e2a1..2792cb10 100644 --- a/paper_trail.gemspec +++ b/paper_trail.gemspec @@ -32,7 +32,10 @@ has been destroyed. s.add_development_dependency "rake", "~> 10.4.2" s.add_development_dependency "shoulda", "~> 3.5.0" s.add_development_dependency "ffaker", "~> 2.1.0" - s.add_development_dependency "railties", [">= 3.0", "< 6.0"] + + # Why `railties`? Possibly used by `test/dummy` boot up? + s.add_development_dependency "railties", [">= 4.0", "< 5.2"] + s.add_development_dependency "rack-test", "~> 0.6.3" s.add_development_dependency "rspec-rails", "~> 3.5" s.add_development_dependency "generator_spec", "~> 0.9.3" From 62202a7487383ba69c177c6cf47e5b3309407cfc Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Sun, 4 Dec 2016 18:09:49 -0500 Subject: [PATCH 3/5] Convert first controller test to rspec --- spec/controllers/articles_controller_spec.rb | 28 +++++++++++++++++++ .../functional/enabled_for_controller_test.rb | 28 ------------------- 2 files changed, 28 insertions(+), 28 deletions(-) create mode 100644 spec/controllers/articles_controller_spec.rb delete mode 100644 test/functional/enabled_for_controller_test.rb diff --git a/spec/controllers/articles_controller_spec.rb b/spec/controllers/articles_controller_spec.rb new file mode 100644 index 00000000..7cc1cc31 --- /dev/null +++ b/spec/controllers/articles_controller_spec.rb @@ -0,0 +1,28 @@ +require "rails_helper" + +RSpec.describe ArticlesController, type: :controller do + describe "PaperTrail.enabled_for_controller?" do + context "PaperTrail.enabled? == true" do + before { PaperTrail.enabled = true } + + it "returns true" do + assert PaperTrail.enabled? + post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence }) + expect(assigns(:article)).to_not be_nil + assert PaperTrail.enabled_for_controller? + assert_equal 1, assigns(:article).versions.length + end + + after { PaperTrail.enabled = false } + end + + context "PaperTrail.enabled? == false" do + it "returns false" do + assert !PaperTrail.enabled? + post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence }) + assert !PaperTrail.enabled_for_controller? + assert_equal 0, assigns(:article).versions.length + end + end + end +end diff --git a/test/functional/enabled_for_controller_test.rb b/test/functional/enabled_for_controller_test.rb deleted file mode 100644 index bb145760..00000000 --- a/test/functional/enabled_for_controller_test.rb +++ /dev/null @@ -1,28 +0,0 @@ -require "test_helper" - -class EnabledForControllerTest < ActionController::TestCase - tests ArticlesController - - context "`PaperTrail.enabled? == true`" do - should "enabled_for_controller?.should == true" do - assert PaperTrail.enabled? - post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence }) - assert_not_nil assigns(:article) - assert PaperTrail.enabled_for_controller? - assert_equal 1, assigns(:article).versions.length - end - end - - context "`PaperTrail.enabled? == false`" do - setup { PaperTrail.enabled = false } - - should "enabled_for_controller?.should == false" do - assert !PaperTrail.enabled? - post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence }) - assert !PaperTrail.enabled_for_controller? - assert_equal 0, assigns(:article).versions.length - end - - teardown { PaperTrail.enabled = true } - end -end From d84dea3b1d47ba40806459aa4638cc5302ce388c Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Sun, 4 Dec 2016 22:19:06 -0500 Subject: [PATCH 4/5] Add dirty hack to gemspec so we can support ruby 1.9.3 --- .github/CONTRIBUTING.md | 4 +++- paper_trail.gemspec | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 40634fa6..aecfe29e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -18,7 +18,9 @@ Please use our [bug report template][1]. ## Development -Install gems with `bundle exec appraisal install`. +Install gems with `bundle exec appraisal install`. This requires ruby >= 2.0. +(It is still possible to run the `ar-4.2` gemfile locally on ruby 1.9.3, but +not the `ar-5.0` gemfile.) Testing is a little awkward because the test suite: diff --git a/paper_trail.gemspec b/paper_trail.gemspec index 2792cb10..1b7cf97d 100644 --- a/paper_trail.gemspec +++ b/paper_trail.gemspec @@ -44,6 +44,10 @@ has been destroyed. s.add_development_dependency "rubocop", "~> 0.41.1" s.add_development_dependency "timecop", "~> 0.8.0" + if ::Gem.ruby_version < ::Gem::Version.new("2.0.0") + s.add_development_dependency "rack", "< 2" + end + if defined?(JRUBY_VERSION) s.add_development_dependency "activerecord-jdbcsqlite3-adapter", "~> 1.3.15" s.add_development_dependency "activerecord-jdbcpostgresql-adapter", "~> 1.3.15" From fbe384655f8026ae9d061ca792a55e5b961dcf11 Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Sun, 4 Dec 2016 22:24:58 -0500 Subject: [PATCH 5/5] Explain why we can't use the latest rubocop --- paper_trail.gemspec | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/paper_trail.gemspec b/paper_trail.gemspec index 1b7cf97d..13fdefd1 100644 --- a/paper_trail.gemspec +++ b/paper_trail.gemspec @@ -41,7 +41,16 @@ has been destroyed. s.add_development_dependency "generator_spec", "~> 0.9.3" s.add_development_dependency "database_cleaner", "~> 1.2" s.add_development_dependency "pry-nav", "~> 0.2.4" + + # We cannot upgrade rubocop until we drop support for ruby 1.9.3. + # Rubocop 0.42 requires ruby >= 2.0. We could add a conditional, as we do + # below for rack and pg, but that means our config files (e.g. `.rubocop.yml` + # would have to simultaneously be valid in two different versions of rubocop. + # That is currently possible, but probably won't be in the future, and is + # not worth the effort.) Because of pain points like this, I think we'll + # have to drop support for ruby 1.9.3 soon. s.add_development_dependency "rubocop", "~> 0.41.1" + s.add_development_dependency "timecop", "~> 0.8.0" if ::Gem.ruby_version < ::Gem::Version.new("2.0.0")