Skip to content

Commit

Permalink
Merge pull request #674 from airblade/dev_deps
Browse files Browse the repository at this point in the history
Update development dependencies
  • Loading branch information
jaredbeck committed Dec 20, 2015
2 parents c95086c + 1781521 commit 72d6367
Show file tree
Hide file tree
Showing 18 changed files with 70 additions and 83 deletions.
20 changes: 4 additions & 16 deletions gemfiles/3.0.gemfile
Expand Up @@ -5,10 +5,10 @@ gem 'i18n', '~> 0.6.11'
gem 'request_store', '~> 1.1.0'

group :development, :test do
gem 'rake', '~> 10.1.1'
gem 'rake', '~> 10.4.2'
gem 'rubocop', '~> 0.35.1'
gem 'shoulda', '~> 3.5'
gem 'ffaker', '<= 1.31.0'
gem 'ffaker', '~> 2.1.0'
gem 'timecop'

# Testing of Rails
Expand All @@ -19,31 +19,19 @@ group :development, :test do
gem 'rack-test', '>= 0.6'

# RSpec testing
gem 'rspec-rails', '~> 3.1.0'
gem 'rspec-rails', '~> 3.4.0'
gem 'generator_spec'

# To do proper transactional testing with ActiveSupport::TestCase on MySQL
gem 'database_cleaner', '~> 1.2.0'

platforms :ruby do
gem 'sqlite3', '~> 1.2'

# We would prefer to only constrain mysql2 to '~> 0.3',
# but a rails bug (https://github.com/rails/rails/issues/21544)
# requires us to constrain to '~> 0.3.20' for now.
gem 'mysql2', '~> 0.3.20'

gem 'mysql2', '~> 0.3.20' # activerecord < 4.2.5 must use mysql2 < 0.4
gem 'pg', '~> 0.17.1'
end

platforms :jruby, :ruby_18 do
# shoulda-matchers > 2.0 is not compatible with Ruby18.
# Since we can't specify difference between JRuby 18/19, we need to use shoulda-matchers 1.5 for all JRuby testing.
gem 'shoulda-matchers', '~> 1.5'
end

platforms :jruby do
# Use jRuby's sqlite3 adapter for jRuby
gem 'activerecord-jdbcsqlite3-adapter', '~> 1.3'
gem 'activerecord-jdbcpostgresql-adapter', '~> 1.3'
gem 'activerecord-jdbcmysql-adapter', '~> 1.3'
Expand Down
25 changes: 10 additions & 15 deletions paper_trail.gemspec
Expand Up @@ -24,33 +24,28 @@ Gem::Specification.new do |s|
s.add_dependency 'activesupport', ['>= 3.0', '< 6.0']
s.add_dependency 'request_store', '~> 1.1'

s.add_development_dependency 'rake', '~> 10.1.1'
s.add_development_dependency 'rake', '~> 10.4.2'
s.add_development_dependency 'shoulda', '~> 3.5'
# s.add_development_dependency 'shoulda-matchers', '~> 1.5' # needed for ActiveRecord < 4
s.add_development_dependency 'ffaker', '<= 1.31.0'
s.add_development_dependency 'ffaker', '~> 2.1.0'
s.add_development_dependency 'railties', ['>= 3.0', '< 5.0']
s.add_development_dependency 'sinatra', '~> 1.0'
s.add_development_dependency 'rack-test', '>= 0.6'
s.add_development_dependency 'rspec-rails', '~> 3.1.0'
s.add_development_dependency 'rspec-rails', '~> 3.4.0'
s.add_development_dependency 'generator_spec'
s.add_development_dependency 'database_cleaner', '~> 1.2'
s.add_development_dependency 'pry-nav', '~> 0.2.4'
s.add_development_dependency 'rubocop', '~> 0.35.1'
s.add_development_dependency 'timecop'

# JRuby support for the test ENV
unless defined?(JRUBY_VERSION)
s.add_development_dependency 'sqlite3', '~> 1.2'

# We would prefer to only constrain mysql2 to '~> 0.3',
# but a rails bug (https://github.com/rails/rails/issues/21544)
# requires us to constrain to '~> 0.3.20' for now.
s.add_development_dependency 'mysql2', '~> 0.3.20'

s.add_development_dependency 'pg', '~> 0.17'
else
if defined?(JRUBY_VERSION)
s.add_development_dependency 'activerecord-jdbcsqlite3-adapter', '~> 1.3'
s.add_development_dependency 'activerecord-jdbcpostgresql-adapter', '~> 1.3'
s.add_development_dependency 'activerecord-jdbcmysql-adapter', '~> 1.3'
else
s.add_development_dependency 'sqlite3', '~> 1.2'
s.add_development_dependency 'pg', '~> 0.17'

# activerecord >= 4.2.5 may use mysql2 >= 0.4
s.add_development_dependency 'mysql2', '~> 0.4.2'
end
end
4 changes: 2 additions & 2 deletions spec/models/boolit_spec.rb
Expand Up @@ -10,7 +10,7 @@

describe "Versioning", :versioning => true do
subject { Boolit.create! }
before { subject.update_attributes!(:name => Faker::Name.name) }
before { subject.update_attributes!(:name => FFaker::Name.name) }

it "should have versions" do
expect(subject.versions.size).to eq(2)
Expand All @@ -35,7 +35,7 @@
before do
PaperTrail.serializer = CustomJsonSerializer
subject.update_attributes!(:name => nil)
subject.update_attributes!(:name => Faker::Name.name)
subject.update_attributes!(:name => FFaker::Name.name)
end
after { PaperTrail.serializer = PaperTrail::Serializers::YAML }

Expand Down
26 changes: 13 additions & 13 deletions spec/models/callback_modifier_spec.rb
Expand Up @@ -5,29 +5,29 @@
describe 'callback-methods', :versioning => true do
describe 'paper_trail_on_destroy' do
it 'should add :destroy to paper_trail_options[:on]' do
modifier = NoArgDestroyModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = NoArgDestroyModifier.create!(:some_content => FFaker::Lorem.sentence)
expect(modifier.paper_trail_options[:on]).to eq [:destroy]
end

context 'when :before' do
it 'should create the version before destroy' do
modifier = BeforeDestroyModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = BeforeDestroyModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.test_destroy
expect(modifier.versions.last.reify).not_to be_flagged_deleted
end
end

context 'when :after' do
it 'should create the version after destroy' do
modifier = AfterDestroyModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = AfterDestroyModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.test_destroy
expect(modifier.versions.last.reify).to be_flagged_deleted
end
end

context 'when no argument' do
it 'should default to after destroy' do
modifier = NoArgDestroyModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = NoArgDestroyModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.test_destroy
expect(modifier.versions.last.reify).to be_flagged_deleted
end
Expand All @@ -36,56 +36,56 @@

describe 'paper_trail_on_update' do
it 'should add :update to paper_trail_options[:on]' do
modifier = UpdateModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = UpdateModifier.create!(:some_content => FFaker::Lorem.sentence)
expect(modifier.paper_trail_options[:on]).to eq [:update]
end

it 'should create a version' do
modifier = UpdateModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = UpdateModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.update_attributes! :some_content => 'modified'
expect(modifier.versions.last.event).to eq 'update'
end
end

describe 'paper_trail_on_create' do
it 'should add :create to paper_trail_options[:on]' do
modifier = CreateModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = CreateModifier.create!(:some_content => FFaker::Lorem.sentence)
expect(modifier.paper_trail_options[:on]).to eq [:create]
end

it 'should create a version' do
modifier = CreateModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = CreateModifier.create!(:some_content => FFaker::Lorem.sentence)
expect(modifier.versions.last.event).to eq 'create'
end
end

context 'when no callback-method used' do
it 'should set paper_trail_options[:on] to [:create, :update, :destroy]' do
modifier = DefaultModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = DefaultModifier.create!(:some_content => FFaker::Lorem.sentence)
expect(modifier.paper_trail_options[:on]).to eq [:create, :update, :destroy]
end

it 'should default to track destroy' do
modifier = DefaultModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = DefaultModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.destroy
expect(modifier.versions.last.event).to eq 'destroy'
end

it 'should default to track update' do
modifier = DefaultModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = DefaultModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.update_attributes! :some_content => 'modified'
expect(modifier.versions.last.event).to eq 'update'
end

it 'should default to track create' do
modifier = DefaultModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = DefaultModifier.create!(:some_content => FFaker::Lorem.sentence)
expect(modifier.versions.last.event).to eq 'create'
end
end

context 'when only one callback-method' do
it 'does only track the corresponding event' do
modifier = CreateModifier.create!(:some_content => Faker::Lorem.sentence)
modifier = CreateModifier.create!(:some_content => FFaker::Lorem.sentence)
modifier.update_attributes!(:some_content => 'modified')
modifier.test_destroy
expect(modifier.versions.collect(&:event)).to eq ['create']
Expand Down
2 changes: 1 addition & 1 deletion spec/models/joined_version_spec.rb
Expand Up @@ -3,7 +3,7 @@
describe JoinedVersion, :type => :model, :versioning => true do
it { expect(JoinedVersion.superclass).to be PaperTrail::Version }

let(:widget) { Widget.create!(:name => Faker::Name.name) }
let(:widget) { Widget.create!(:name => FFaker::Name.name) }
let(:version) { JoinedVersion.first }

describe "Scopes" do
Expand Down
8 changes: 4 additions & 4 deletions spec/models/json_version_spec.rb
Expand Up @@ -26,12 +26,12 @@
let(:fruit_names) { %w(apple orange lemon banana lime coconut strawberry blueberry) }
let(:fruit) { Fruit.new }
let(:name) { 'pomegranate' }
let(:color) { Faker::Color.name }
let(:color) { FFaker::Color.name }

before do
fruit.update_attributes!(:name => name)
fruit.update_attributes!(:name => fruit_names.sample, :color => color)
fruit.update_attributes!(:name => fruit_names.sample, :color => Faker::Color.name)
fruit.update_attributes!(:name => fruit_names.sample, :color => FFaker::Color.name)
end

it "should be able to locate versions according to their `object` contents" do
Expand All @@ -56,12 +56,12 @@
let(:tropical_fruit_names) { %w(coconut pineapple kiwi mango melon) }
let(:fruit) { Fruit.new }
let(:name) { 'pomegranate' }
let(:color) { Faker::Color.name }
let(:color) { FFaker::Color.name }

before do
fruit.update_attributes!(:name => name)
fruit.update_attributes!(:name => tropical_fruit_names.sample, :color => color)
fruit.update_attributes!(:name => fruit_names.sample, :color => Faker::Color.name)
fruit.update_attributes!(:name => fruit_names.sample, :color => FFaker::Color.name)
end

it "should be able to locate versions according to their `object_changes` contents" do
Expand Down
16 changes: 8 additions & 8 deletions spec/models/version_spec.rb
Expand Up @@ -57,11 +57,11 @@
end

context "Has previous version", :versioning => true do
let(:name) { Faker::Name.name }
let(:widget) { Widget.create!(:name => Faker::Name.name) }
let(:name) { FFaker::Name.name }
let(:widget) { Widget.create!(:name => FFaker::Name.name) }
before do
widget.versions.first.update_attributes!(:whodunnit => name)
widget.update_attributes!(:name => Faker::Name.first_name)
widget.update_attributes!(:name => FFaker::Name.first_name)
end
subject { widget.versions.last }

Expand Down Expand Up @@ -92,7 +92,7 @@
describe '#terminator' do
it { is_expected.to respond_to(:terminator) }

let(:attributes) { {:whodunnit => Faker::Name.first_name} }
let(:attributes) { {:whodunnit => FFaker::Name.first_name} }

it "is an alias for the `whodunnit` attribute" do
expect(subject.terminator).to eq(attributes[:whodunnit])
Expand Down Expand Up @@ -147,13 +147,13 @@

context "valid arguments", :versioning => true do
let(:widget) { Widget.new }
let(:name) { Faker::Name.first_name }
let(:name) { FFaker::Name.first_name }
let(:int) { rand(10) + 1 }

before do
widget.update_attributes!(:name => name, :an_integer => int)
widget.update_attributes!(:name => 'foobar', :an_integer => 100)
widget.update_attributes!(:name => Faker::Name.last_name, :an_integer => 15)
widget.update_attributes!(:name => FFaker::Name.last_name, :an_integer => 15)
end

context "`serializer == YAML`" do
Expand Down Expand Up @@ -191,13 +191,13 @@

context "valid arguments", :versioning => true do
let(:widget) { Widget.new }
let(:name) { Faker::Name.first_name }
let(:name) { FFaker::Name.first_name }
let(:int) { rand(5) + 2 }

before do
widget.update_attributes!(:name => name, :an_integer => 0)
widget.update_attributes!(:name => 'foobar', :an_integer => 77)
widget.update_attributes!(:name => Faker::Name.last_name, :an_integer => int)
widget.update_attributes!(:name => FFaker::Name.last_name, :an_integer => int)
end

context "`serializer == YAML`" do
Expand Down
12 changes: 7 additions & 5 deletions spec/models/widget_spec.rb
Expand Up @@ -125,8 +125,8 @@
it { is_expected.to respond_to(:paper_trail_originator) }

describe "return value" do
let(:orig_name) { Faker::Name.name }
let(:new_name) { Faker::Name.name }
let(:orig_name) { FFaker::Name.name }
let(:new_name) { FFaker::Name.name }
before { PaperTrail.whodunnit = orig_name }

context "accessed from live model instance" do
Expand Down Expand Up @@ -216,8 +216,8 @@
end

context "block given" do
let(:orig_name) { Faker::Name.name }
let(:new_name) { Faker::Name.name }
let(:orig_name) { FFaker::Name.name }
let(:new_name) { FFaker::Name.name }

before do
PaperTrail.whodunnit = orig_name
Expand All @@ -239,7 +239,9 @@

context "error within block" do
it "should ensure that the whodunnit value still reverts to it's previous value" do
expect { widget.whodunnit(new_name) { raise } }.to raise_error
expect {
widget.whodunnit(new_name) { raise }
}.to raise_error(RuntimeError)
expect(PaperTrail.whodunnit).to eq(orig_name)
end
end
Expand Down
6 changes: 4 additions & 2 deletions spec/paper_trail_spec.rb
@@ -1,10 +1,11 @@
require 'rails_helper'

describe "PaperTrail RSpec Helper" do
describe PaperTrail do
context 'default' do
it 'should have versioning off by default' do
expect(PaperTrail).not_to be_enabled
end

it 'should turn versioning on in a `with_versioning` block' do
expect(PaperTrail).not_to be_enabled
with_versioning do
Expand All @@ -16,7 +17,7 @@
context "error within `with_versioning` block" do
it "should revert the value of `PaperTrail.enabled?` to it's previous state" do
expect(PaperTrail).not_to be_enabled
expect { with_versioning { raise } }.to raise_error
expect { with_versioning { raise } }.to raise_error(RuntimeError)
expect(PaperTrail).not_to be_enabled
end
end
Expand All @@ -26,6 +27,7 @@
it 'should have versioning on by default' do
expect(PaperTrail).to be_enabled
end

it 'should keep versioning on after a with_versioning block' do
expect(PaperTrail).to be_enabled
with_versioning do
Expand Down
2 changes: 1 addition & 1 deletion spec/requests/articles_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'

describe "Articles management", :type => :request, :order => :defined do
let(:valid_params) { { :article => { :title => 'Doh', :content => Faker::Lorem.sentence } } }
let(:valid_params) { { :article => { :title => 'Doh', :content => FFaker::Lorem.sentence } } }

context "versioning disabled" do
specify { expect(PaperTrail).not_to be_enabled }
Expand Down
6 changes: 3 additions & 3 deletions test/functional/enabled_for_controller_test.rb
Expand Up @@ -6,7 +6,7 @@ class EnabledForControllerTest < ActionController::TestCase
context "`PaperTrail.enabled? == true`" do
should 'enabled_for_controller?.should == true' do
assert PaperTrail.enabled?
post :create, :article => { :title => 'Doh', :content => Faker::Lorem.sentence }
post :create, :article => { :title => 'Doh', :content => FFaker::Lorem.sentence }
assert_not_nil assigns(:article)
assert PaperTrail.enabled_for_controller?
assert_equal 1, assigns(:article).versions.length
Expand All @@ -15,10 +15,10 @@ class EnabledForControllerTest < ActionController::TestCase

context "`PaperTrail.enabled? == false`" do
setup { PaperTrail.enabled = false }

should 'enabled_for_controller?.should == false' do
assert !PaperTrail.enabled?
post :create, :article => { :title => 'Doh', :content => Faker::Lorem.sentence }
post :create, :article => { :title => 'Doh', :content => FFaker::Lorem.sentence }
assert !PaperTrail.enabled_for_controller?
assert_equal 0, assigns(:article).versions.length
end
Expand Down

0 comments on commit 72d6367

Please sign in to comment.