Skip to content

Commit

Permalink
Upgrade to PaperTrail 5
Browse files Browse the repository at this point in the history
  • Loading branch information
mshibuya committed Jul 16, 2016
1 parent a7ff132 commit 5d22ad5
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 21 deletions.
7 changes: 1 addition & 6 deletions Appraisals
Expand Up @@ -56,13 +56,8 @@ appraise "rails-4.2" do
end

appraise "rails-5.0" do
gem 'rails', '~> 5.0.0.rc1'
gem 'rails', '~> 5.0.0'
gem 'sass-rails', '~> 5.0'
gem 'devise', '~> 4.0'
gem 'remotipart', github: 'mshibuya/remotipart'

group :test do
gem 'capybara', '~> 2.7'
gem 'rspec-rails', '>= 3.5.0.beta3'
end
end
3 changes: 2 additions & 1 deletion Gemfile
Expand Up @@ -2,6 +2,7 @@ source 'https://rubygems.org'

gem 'appraisal', '>= 2.0'
gem 'devise'
gem 'remotipart', github: 'mshibuya/remotipart'

group :active_record do
platforms :jruby do
Expand All @@ -19,7 +20,7 @@ group :active_record do
gem 'sqlite3', '>= 1.3'
end

gem 'paper_trail', '~> 3.0'
gem 'paper_trail', '>= 5.0'
end

group :development, :test do
Expand Down
3 changes: 2 additions & 1 deletion gemfiles/rails_4.0.gemfile
Expand Up @@ -4,13 +4,14 @@ source "https://rubygems.org"

gem "appraisal", ">= 2.0"
gem "devise", ">= 3.2"
gem "remotipart", :github => "mshibuya/remotipart"
gem "rails", "~> 4.0.0"
gem "sass-rails", "~> 4.0.3"
gem "test-unit"
gem "capybara", ">= 0.8", :group => :test

group :active_record do
gem "paper_trail", "~> 3.0"
gem "paper_trail", ">= 5.0"

platforms :jruby do
gem "activerecord-jdbcmysql-adapter", ">= 1.2"
Expand Down
3 changes: 2 additions & 1 deletion gemfiles/rails_4.1.gemfile
Expand Up @@ -4,11 +4,12 @@ source "https://rubygems.org"

gem "appraisal", ">= 2.0"
gem "devise", ">= 3.2"
gem "remotipart", :github => "mshibuya/remotipart"
gem "rails", "~> 4.1.0"
gem "capybara", ">= 0.8", :group => :test

group :active_record do
gem "paper_trail", "~> 3.0"
gem "paper_trail", ">= 5.0"

platforms :jruby do
gem "activerecord-jdbcmysql-adapter", ">= 1.2"
Expand Down
3 changes: 2 additions & 1 deletion gemfiles/rails_4.2.gemfile
Expand Up @@ -4,12 +4,13 @@ source "https://rubygems.org"

gem "appraisal", ">= 2.0"
gem "devise", ">= 3.4"
gem "remotipart", :github => "mshibuya/remotipart"
gem "rails", "~> 4.2.0"
gem "sass-rails", "~> 5.0"
gem "capybara", ">= 0.8", :group => :test

group :active_record do
gem "paper_trail", "~> 3.0"
gem "paper_trail", ">= 5.0"

platforms :jruby do
gem "activerecord-jdbcmysql-adapter", ">= 1.2"
Expand Down
9 changes: 4 additions & 5 deletions gemfiles/rails_5.0.gemfile
Expand Up @@ -4,12 +4,12 @@ source "https://rubygems.org"

gem "appraisal", ">= 2.0"
gem "devise", "~> 4.0"
gem "rails", "~> 5.0.0.rc1"
gem "sass-rails", "~> 5.0"
gem "remotipart", :github => "mshibuya/remotipart"
gem "rails", "~> 5.0.0"
gem "sass-rails", "~> 5.0"

group :active_record do
gem "paper_trail", "~> 3.0"
gem "paper_trail", ">= 5.0"

platforms :jruby do
gem "activerecord-jdbcmysql-adapter", ">= 1.2"
Expand Down Expand Up @@ -46,11 +46,10 @@ group :test do
gem "poltergeist", "~> 1.5"
gem "pundit"
gem "rack-cache", :require => "rack/cache"
gem "rspec-rails", ">= 3.5.0.beta3"
gem "rspec-rails", ">= 2.14"
gem "rubocop", "~> 0.31.0"
gem "simplecov", ">= 0.9", :require => false
gem "timecop", ">= 0.5"
gem "capybara", "~> 2.7"

platforms :ruby_19 do
gem "tins", "~> 1.6.0", :require => false
Expand Down
2 changes: 1 addition & 1 deletion lib/rails_admin/config.rb
Expand Up @@ -196,7 +196,7 @@ def default_search_operator=(operator)

# pool of all found model names from the whole application
def models_pool
excluded = (excluded_models.collect(&:to_s) + ['RailsAdmin::History'])
excluded = (excluded_models.collect(&:to_s) + %w(RailsAdmin::History PaperTrail::Version PaperTrail::VersionAssociation))

(viable_models - excluded).uniq.sort
end
Expand Down
1 change: 1 addition & 0 deletions lib/rails_admin/extensions/paper_trail/auditing_adapter.rb
Expand Up @@ -41,6 +41,7 @@ class AuditingAdapter
def initialize(controller, user_class = 'User', version_class = '::Version')
fail('PaperTrail not found') unless defined?(PaperTrail)
@controller = controller
@controller.send(:set_paper_trail_whodunnit) if @controller
begin
@user_class = user_class.to_s.constantize
rescue NameError
Expand Down
1 change: 1 addition & 0 deletions spec/dummy_app/config/initializers/paper_trail.rb
@@ -0,0 +1 @@
PaperTrail.config.track_associations = false if defined?(PaperTrail)
30 changes: 26 additions & 4 deletions spec/integration/history/rails_admin_paper_trail_spec.rb
@@ -1,13 +1,35 @@
require 'spec_helper'
require 'paper_trail/frameworks/rspec'

describe 'RailsAdmin PaperTrail history', active_record: true do
describe 'model history fetch' do
before(:all) do
RailsAdmin.config do |config|
config.audit_with :paper_trail, 'User', 'PaperTrail::Version'
before(:each) do
RailsAdmin.config do |config|
config.audit_with :paper_trail, 'User', 'PaperTrail::Version'
end
end

describe 'on object creation', type: :request do
subject { page }
before do
@user = FactoryGirl.create :user
RailsAdmin::Config.authenticate_with { warden.authenticate! scope: :user }
RailsAdmin::Config.current_user_method(&:current_user)
login_as @user
with_versioning do
visit new_path(model_name: 'paper_trail_test')
fill_in 'paper_trail_test[name]', with: 'Jackie Robinson'
click_button 'Save'
@object = RailsAdmin::AbstractModel.new('PaperTrailTest').first
end
end

it 'records a version' do
expect(@object.versions.size).to eq 1
expect(@object.versions.first.whodunnit).to eq @user.id.to_s
end
end

describe 'model history fetch' do
before(:each) do
PaperTrail::Version.delete_all
@model = RailsAdmin::AbstractModel.new('PaperTrailTest')
Expand Down
5 changes: 4 additions & 1 deletion spec/rails_admin/config_spec.rb
Expand Up @@ -131,6 +131,9 @@

context 'given paper_trail as the extension for auditing', active_record: true do
before do
class ControllerMock
def set_paper_trail_whodunnit; end
end
module PaperTrail; end
class Version; end
RailsAdmin.add_extension(:example, RailsAdmin::Extensions::PaperTrail, auditing: true)
Expand All @@ -140,7 +143,7 @@ class Version; end
RailsAdmin.config do |config|
config.audit_with(:example)
end
expect { RailsAdmin.config.audit_with.call }.not_to raise_error
expect { ControllerMock.new.instance_eval(&RailsAdmin.config.audit_with) }.not_to raise_error
end
end
end
Expand Down

0 comments on commit 5d22ad5

Please sign in to comment.