houston-vestal_versions 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4fcff61825a10b64799b830d87071223831a142e
4
- data.tar.gz: d9e34ce3cccad8293eb54960bb44de34998b60b1
2
+ SHA256:
3
+ metadata.gz: a3962787d496c71f96a2f1fae00a860ab372d8508acbe8bdbf84f5c28e49d812
4
+ data.tar.gz: 41649745092de1a1f2305ada45db52c4148a1ac95d1ab6812facd1c3549b7eab
5
5
  SHA512:
6
- metadata.gz: 440eace320c8bfc6aa860dc99a77f24e4d3dc04448e43efff19e0015902f61f67dae7c4dce7cecdbf6b0ddbad1d8a9319767bafc97d72e7c3b0b1ba1f20f6111
7
- data.tar.gz: 711160e633f92cc0339f42adc8e39a871b7c24798a1a56c9dfb9a4a0e076aeea97c7969d582c3cb9a56ff07b3bdcfc1b4b51c8414542f203791f342b06cde098
6
+ metadata.gz: 5401fd38ceb38810afd696ce588c3707ed87818f06d36ed9798032bda4831db522045f156fc5312655370ca0add43106096640318942a54714976f88c8871a1d
7
+ data.tar.gz: 5e6130a2dbf8b1ff02c105d66225345a4959c814ce5398172f71fef3080256d3c5f346c471260f6f08aad867ecc9458fcd1bf7c13da4c268e445d6548fb75637
@@ -0,0 +1,31 @@
1
+ name: Tests
2
+ on: [push]
3
+
4
+ jobs:
5
+ ruby:
6
+ name: Rspec
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ fail-fast: false
10
+ matrix:
11
+ ruby: [2.5, 2.6, 2.7]
12
+ activerecord: ["5.0", "5.1", "5.2", "6.0"]
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v2
16
+ - name: Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby }}
20
+ - name: Set ActiveRecord Version
21
+ env:
22
+ AR_VERSION: ${{ matrix.activerecord }}
23
+ run: echo "gem 'activerecord', '~> $AR_VERSION'" >> Gemfile
24
+ - name: Install Sqlite
25
+ run: sudo apt-get install libsqlite3-dev
26
+ - name: Bundle
27
+ run: |
28
+ bundle config path vendor/bundle
29
+ bundle install --jobs 4 --retry 3
30
+ - name: Tests
31
+ run: bundle exec rake spec
data/Gemfile CHANGED
@@ -4,7 +4,8 @@ gemspec
4
4
 
5
5
  group :test do
6
6
  gem 'coveralls', '~> 0.7', :require => false
7
- gem 'rspec', '~> 2.0'
7
+ gem 'rspec'
8
+ gem 'rspec-its'
8
9
  gem 'sqlite3', '~> 1.0'
9
10
  end
10
11
 
data/README.rdoc CHANGED
@@ -119,7 +119,7 @@ There are a handful of exciting new additions in version 1.0 of <tt>vestal_versi
119
119
  @user.update_attribute(:first_name, "Stephen")
120
120
  @user.first_name = "Steve"
121
121
  @user.save
122
- @user.update_attributes(:last_name => "Jobs")
122
+ @user.update(:last_name => "Jobs")
123
123
  end
124
124
  @user.version # => 1
125
125
 
@@ -154,12 +154,12 @@ There are a handful of exciting new additions in version 1.0 of <tt>vestal_versi
154
154
 
155
155
  * Storing which user is responsible for a revision. Rather than introduce a lot of controller magic to guess what to store, you can simply update an additional attribute on your versioned model: <tt>updated_by</tt>.
156
156
 
157
- @user.update_attributes(:last_name => "Jobs", :updated_by => "Tyler")
157
+ @user.update(:last_name => "Jobs", :updated_by => "Tyler")
158
158
  @user.versions.last.user # => "Tyler"
159
159
 
160
160
  Instead of passing a simple string to the <tt>updated_by</tt> setter, you can pass a model instance, such as an ActiveRecord user or administrator. The association will be saved polymorphically alongside the version.
161
161
 
162
- @user.update_attributes(:last_name => "Jobs", :updated_by => current_user)
162
+ @user.update(:last_name => "Jobs", :updated_by => current_user)
163
163
  @user.versions.last.user # => #<User first_name: "Steven", last_name: "Tyler">
164
164
 
165
165
  * Global configuration. The new <tt>vestal_versions</tt> Rails generator also writes an initializer with instructions on how to set application-wide options for the <tt>versioned</tt> method.
@@ -48,7 +48,7 @@ module VestalVersions
48
48
  # creation. Incremental changes are reset when the record is saved because they represent
49
49
  # a subset of the dirty attribute changes, which are reset upon save.
50
50
  def incremental_version_changes
51
- changes.slice(*versioned_columns)
51
+ previous_changes.slice(*versioned_columns)
52
52
  end
53
53
 
54
54
  # Simply resets the cumulative changes after version creation.
@@ -118,4 +118,4 @@ module VestalVersions
118
118
  end
119
119
  end
120
120
  end
121
- end
121
+ end
@@ -12,7 +12,7 @@ module VestalVersions
12
12
  # Control blocks are called on ActiveRecord::Base instances as to not cause any conflict with
13
13
  # other instances of the versioned class whose behavior could be inadvertently altered within
14
14
  # a control block.
15
-
15
+
16
16
  # The +skip_version+ block simply allows for updates to be made to an instance of a versioned
17
17
  # ActiveRecord model while ignoring all new version creation. The <tt>:if</tt> and
18
18
  # <tt>:unless</tt> conditions (if given) will not be evaulated inside a +skip_version+ block.
@@ -55,7 +55,7 @@ module VestalVersions
55
55
  # user = User.find_by_first_name("Steve")
56
56
  # user.version # => 1
57
57
  # user.merge_version do
58
- # user.update_attributes(:first_name => "Steven", :last_name => "Tyler")
58
+ # user.update(:first_name => "Steven", :last_name => "Tyler")
59
59
  # user.update_attribute(:first_name, "Stephen")
60
60
  # user.update_attribute(:last_name, "Richert")
61
61
  # end
@@ -159,7 +159,7 @@ module VestalVersions
159
159
  def update_version?
160
160
  append_version?
161
161
  end
162
-
162
+
163
163
  module ClassMethods
164
164
  # The +skip_version+ block simply allows for updates to be made to an instance of a versioned
165
165
  # ActiveRecord model while ignoring all new version creation. The <tt>:if</tt> and
@@ -11,8 +11,8 @@ module VestalVersions
11
11
 
12
12
  # Methods added to versioned ActiveRecord::Base instances to enable versioning with additional
13
13
  # user information.
14
-
15
-
14
+
15
+
16
16
  private
17
17
  # Overrides the +version_attributes+ method to include user information passed into the
18
18
  # parent object, by way of a +updated_by+ attr_accessor.
@@ -28,8 +28,13 @@ module VestalVersions
28
28
  included do
29
29
  belongs_to :user, :polymorphic => true
30
30
 
31
- alias_method_chain :user, :name
32
- alias_method_chain :user=, :name
31
+ # alias_method_chain :user, :name
32
+ alias_method :user_without_name, :user
33
+ alias_method :user, :user_with_name
34
+
35
+ # alias_method_chain :user=, :name
36
+ alias_method :user_without_name=, :user=
37
+ alias_method :user=, :user_with_name=
33
38
  end
34
39
 
35
40
  # Overrides the +user+ method created by the polymorphic +belongs_to+ user association. If
@@ -3,7 +3,7 @@ ActiveRecord::Base.establish_connection(
3
3
  :database => File.expand_path('../../test.db', __FILE__)
4
4
  )
5
5
 
6
- class CreateSchema < ActiveRecord::Migration
6
+ class CreateSchema < ActiveRecord::Migration[4.2]
7
7
  def self.up
8
8
  create_table :users, :force => true do |t|
9
9
  t.string :first_name
@@ -95,7 +95,7 @@ describe VestalVersions::Control do
95
95
 
96
96
  user.append_version{ user.update_attribute(:last_name, 'Jobs') }
97
97
 
98
- other_last_version = user.versions(true).last
98
+ other_last_version = user.versions.reload.last
99
99
  other_last_version.id.should == original_id
100
100
  other_last_version.attributes.should_not == original_attrs
101
101
  end
@@ -110,7 +110,7 @@ describe VestalVersions::Control do
110
110
  user.update_attribute(:first_name, 'Steve')
111
111
  end
112
112
 
113
- other_last_version = user.versions(true).last
113
+ other_last_version = user.versions.reload.last
114
114
  other_last_version.id.should == original_id
115
115
  other_last_version.attributes.should_not == original_attrs
116
116
  end
@@ -60,7 +60,7 @@ describe VestalVersions::Deletion do
60
60
 
61
61
  it "restores even if the schema has changed" do
62
62
  new_mods = last_version.modifications.merge(:old_column => 'old')
63
- last_version.update_attributes(:modifications => new_mods)
63
+ last_version.update(:modifications => new_mods)
64
64
 
65
65
  last_version.restore.should == subject
66
66
  end
@@ -29,7 +29,7 @@ describe VestalVersions::Reset do
29
29
  it 'dissociates all versions after the target' do
30
30
  versions.reverse.each do |version|
31
31
  subject.reset_to!(version)
32
- subject.versions(true).after(version).count.should == 0
32
+ subject.versions.reload.after(version).count.should == 0
33
33
  end
34
34
  end
35
35
 
@@ -73,7 +73,7 @@ describe VestalVersions::Reversion do
73
73
 
74
74
  it "does not store the reverted_from for subsequent saves" do
75
75
  subject.revert_to!(1)
76
- subject.update_attributes(:name => 'Bill Gates')
76
+ subject.update(:name => 'Bill Gates')
77
77
  subject.versions.last.reverted_from.should be_nil
78
78
  end
79
79
 
@@ -88,14 +88,14 @@ describe VestalVersions::Reversion do
88
88
  subject.revert_to(1)
89
89
  subject.name = "Reverted"
90
90
  subject.save
91
- subject.update_attributes(:name => 'Bill Gates')
91
+ subject.update(:name => 'Bill Gates')
92
92
  subject.versions.last.reverted_from.should be_nil
93
93
  end
94
94
 
95
95
  it "clears the reverted_from if the model is reloaded after a revert_to without a save" do
96
96
  subject.revert_to(1)
97
97
  subject.reload
98
- subject.update_attributes(:name => 'Bill Gates')
98
+ subject.update(:name => 'Bill Gates')
99
99
 
100
100
  subject.versions.last.reverted_from.should be_nil
101
101
  end
@@ -5,17 +5,17 @@ describe VestalVersions::Users do
5
5
  let(:user){ User.create(:name => 'Steve Richert') }
6
6
 
7
7
  it 'defaults to nil' do
8
- user.update_attributes(:first_name => 'Stephen')
8
+ user.update(:first_name => 'Stephen')
9
9
  user.versions.last.user.should be_nil
10
10
  end
11
11
 
12
12
  it 'accepts and returns an ActiveRecord user' do
13
- user.update_attributes(:first_name => 'Stephen', :updated_by => updated_by)
13
+ user.update(:first_name => 'Stephen', :updated_by => updated_by)
14
14
  user.versions.last.user.should == updated_by
15
15
  end
16
16
 
17
17
  it 'accepts and returns a string user name' do
18
- user.update_attributes(:first_name => 'Stephen', :updated_by => updated_by.name)
18
+ user.update(:first_name => 'Stephen', :updated_by => updated_by.name)
19
19
  user.versions.last.user.should == updated_by.name
20
20
  end
21
21
  end
@@ -40,7 +40,7 @@ describe VestalVersions::Versions do
40
40
  version.number.should == 1
41
41
  version.should be_initial
42
42
  end
43
-
43
+
44
44
  it "sreturn the version number if it is not a revert" do
45
45
  user.version.should == user.versions.last.original_number
46
46
  end
@@ -53,9 +53,9 @@ describe VestalVersions::Versions do
53
53
  it "return the original version if it is a double revert" do
54
54
  user.revert_to!(2)
55
55
  version = user.version
56
- user.update_attributes(:last_name => 'Gates')
56
+ user.update(:last_name => 'Gates')
57
57
  user.revert_to!(version)
58
58
  user.versions.last.original_number.should == 2
59
59
  end
60
-
60
+
61
61
  end
@@ -125,15 +125,15 @@ describe VestalVersions::Versions do
125
125
 
126
126
  it 'provides a version number for any given numeric version value' do
127
127
  times.keys.each do |number|
128
- subject.versions.number_at(number).should be_a(Fixnum)
129
- subject.versions.number_at(number + 0.5).should be_a(Fixnum)
128
+ subject.versions.number_at(number).should be_a(Integer)
129
+ subject.versions.number_at(number + 0.5).should be_a(Integer)
130
130
  subject.versions.number_at(number).should == subject.versions.number_at(number + 0.5)
131
131
  end
132
132
  end
133
133
 
134
134
  it 'provides a version number for a valid tag' do
135
135
  times.keys.map{|n| [n, n.to_s] }.each do |number, tag|
136
- subject.versions.number_at(tag).should be_a(Fixnum)
136
+ subject.versions.number_at(tag).should be_a(Integer)
137
137
  subject.versions.number_at(tag).should == number
138
138
  end
139
139
  end
@@ -155,7 +155,7 @@ describe VestalVersions::Versions do
155
155
 
156
156
  it "provides a version number for any time after the model's creation" do
157
157
  times.each do |number, time|
158
- subject.versions.number_at(time + 30.minutes).should be_a(Fixnum)
158
+ subject.versions.number_at(time + 30.minutes).should be_a(Integer)
159
159
  subject.versions.number_at(time + 30.minutes).should == number
160
160
  end
161
161
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = 'houston-vestal_versions'
5
- gem.version = '2.0.1'
5
+ gem.version = '3.0.0'
6
6
 
7
7
  gem.authors = ['Steve Richert', "James O'Kelly", 'C. Jason Harrelson']
8
8
  gem.email = ['steve.richert@gmail.com', 'dreamr.okelly@gmail.com', 'jason@lookforwardenterprises.com']
@@ -11,11 +11,11 @@ Gem::Specification.new do |gem|
11
11
  gem.homepage = 'http://github.com/laserlemon/vestal_versions'
12
12
  gem.license = 'MIT'
13
13
 
14
- gem.add_dependency 'activerecord', '>= 3', '< 6'
15
- gem.add_dependency 'activesupport', '>= 3', '< 6'
14
+ gem.add_dependency 'activerecord', '>= 5'
15
+ gem.add_dependency 'activesupport', '>= 5'
16
16
 
17
- gem.add_development_dependency 'bundler', '~> 1.0'
18
- gem.add_development_dependency 'rake', '~> 10.0'
17
+ gem.add_development_dependency 'bundler', '>= 1.0'
18
+ gem.add_development_dependency 'rake', '>= 10.0'
19
19
 
20
20
  gem.files = `git ls-files`.split($\)
21
21
  gem.test_files = gem.files.grep(/^spec/)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: houston-vestal_versions
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Richert
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-08-15 00:00:00.000000000 Z
13
+ date: 2022-07-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,66 +18,54 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '3'
22
- - - "<"
23
- - !ruby/object:Gem::Version
24
- version: '6'
21
+ version: '5'
25
22
  type: :runtime
26
23
  prerelease: false
27
24
  version_requirements: !ruby/object:Gem::Requirement
28
25
  requirements:
29
26
  - - ">="
30
27
  - !ruby/object:Gem::Version
31
- version: '3'
32
- - - "<"
33
- - !ruby/object:Gem::Version
34
- version: '6'
28
+ version: '5'
35
29
  - !ruby/object:Gem::Dependency
36
30
  name: activesupport
37
31
  requirement: !ruby/object:Gem::Requirement
38
32
  requirements:
39
33
  - - ">="
40
34
  - !ruby/object:Gem::Version
41
- version: '3'
42
- - - "<"
43
- - !ruby/object:Gem::Version
44
- version: '6'
35
+ version: '5'
45
36
  type: :runtime
46
37
  prerelease: false
47
38
  version_requirements: !ruby/object:Gem::Requirement
48
39
  requirements:
49
40
  - - ">="
50
41
  - !ruby/object:Gem::Version
51
- version: '3'
52
- - - "<"
53
- - !ruby/object:Gem::Version
54
- version: '6'
42
+ version: '5'
55
43
  - !ruby/object:Gem::Dependency
56
44
  name: bundler
57
45
  requirement: !ruby/object:Gem::Requirement
58
46
  requirements:
59
- - - "~>"
47
+ - - ">="
60
48
  - !ruby/object:Gem::Version
61
49
  version: '1.0'
62
50
  type: :development
63
51
  prerelease: false
64
52
  version_requirements: !ruby/object:Gem::Requirement
65
53
  requirements:
66
- - - "~>"
54
+ - - ">="
67
55
  - !ruby/object:Gem::Version
68
56
  version: '1.0'
69
57
  - !ruby/object:Gem::Dependency
70
58
  name: rake
71
59
  requirement: !ruby/object:Gem::Requirement
72
60
  requirements:
73
- - - "~>"
61
+ - - ">="
74
62
  - !ruby/object:Gem::Version
75
63
  version: '10.0'
76
64
  type: :development
77
65
  prerelease: false
78
66
  version_requirements: !ruby/object:Gem::Requirement
79
67
  requirements:
80
- - - "~>"
68
+ - - ">="
81
69
  - !ruby/object:Gem::Version
82
70
  version: '10.0'
83
71
  description: Keep a DRY history of your ActiveRecord models' changes
@@ -89,17 +77,13 @@ executables: []
89
77
  extensions: []
90
78
  extra_rdoc_files: []
91
79
  files:
80
+ - ".github/workflows/tests.yml"
92
81
  - ".gitignore"
93
- - ".travis.yml"
94
82
  - CHANGELOG.md
95
83
  - Gemfile
96
84
  - LICENSE
97
85
  - README.rdoc
98
86
  - Rakefile
99
- - gemfiles/activerecord_3_0.gemfile
100
- - gemfiles/activerecord_3_1.gemfile
101
- - gemfiles/activerecord_3_2.gemfile
102
- - gemfiles/activerecord_4_0.gemfile
103
87
  - lib/generators/vestal_versions.rb
104
88
  - lib/generators/vestal_versions/migration/migration_generator.rb
105
89
  - lib/generators/vestal_versions/migration/templates/initializer.rb
@@ -156,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
140
  - !ruby/object:Gem::Version
157
141
  version: '0'
158
142
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.5.1
143
+ rubygems_version: 3.1.6
161
144
  signing_key:
162
145
  specification_version: 4
163
146
  summary: Keep a DRY history of your ActiveRecord models' changes
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- branches:
2
- only:
3
- - master
4
- gemfile:
5
- - gemfiles/activerecord_3_0.gemfile
6
- - gemfiles/activerecord_3_1.gemfile
7
- - gemfiles/activerecord_3_2.gemfile
8
- - gemfiles/activerecord_4_0.gemfile
9
- language: ruby
10
- matrix:
11
- allow_failures:
12
- - rvm: ruby-head
13
- include:
14
- - env: COVERAGE=1
15
- gemfile: Gemfile
16
- rvm: 2.1.0
17
- rvm:
18
- - 1.9.3
19
- - 2.0.0
20
- - 2.1.0
21
- - ruby-head
22
- script: bundle exec rspec
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'activerecord', '~> 3.0.0'
4
-
5
- gemspec :path => '..'
6
-
7
- group :test do
8
- gem 'rspec', '~> 2.0'
9
- gem 'sqlite3', '~> 1.0'
10
- end
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'activerecord', '~> 3.1.0'
4
-
5
- gemspec :path => '..'
6
-
7
- group :test do
8
- gem 'rspec', '~> 2.0'
9
- gem 'sqlite3', '~> 1.0'
10
- end
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'activerecord', '~> 3.2.0'
4
-
5
- gemspec :path => '..'
6
-
7
- group :test do
8
- gem 'rspec', '~> 2.0'
9
- gem 'sqlite3', '~> 1.0'
10
- end
@@ -1,10 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'activerecord', '~> 4.0.0'
4
-
5
- gemspec :path => '..'
6
-
7
- group :test do
8
- gem 'rspec', '~> 2.0'
9
- gem 'sqlite3', '~> 1.0'
10
- end