permanent_records 4.1.5 → 4.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 653264c14471c15f5b24a60821927d23e67bf12e
4
- data.tar.gz: 0d7b3cb1a5772bd55bc3a573e4007ba278eb96c7
3
+ metadata.gz: ea46f013888d1a6a86b72d48dc0695d6e8c001aa
4
+ data.tar.gz: d881533bfce2762905a83a6ad2255333cae14197
5
5
  SHA512:
6
- metadata.gz: 8c89b0d0a913ca7d245e906143123f7af4b85dd4e9fc4ed7bf4a2c714942b4caea5f0e6b50309fe94c33cfe9e1a6b5212a6ed6c3331a5757c42e566b1ddf92d8
7
- data.tar.gz: bbbe06aac87b420d7b6f63fc3c59200cd3633534302f6ec69b56874f98e95338075021b3f29198fa53f0ff5da8501679465ce9eb5ef27d2b18dc881f3ab0ebb4
6
+ metadata.gz: 179fa785989872e008a059d1d1fcbc00b3aa1dbb04039f1a79a9900b048fc21f9ac790e21880a9e96d3da6ef7c279cfe8305da30086bf4bc2bb62177d2687e23
7
+ data.tar.gz: a4d4bf79adb1284f10ad2229dfb3edd54ec318a6ca9fa858d68a46df57f92f24617393105bfea710b9238f667afee62b4eb2ded835053180fac6b09dfd83114f
data/.gitignore CHANGED
@@ -1,3 +1,6 @@
1
1
  spec/support/debug.log
2
2
  Gemfile.lock
3
3
  pkg
4
+
5
+ *.swp
6
+ .bundle
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ AllCops:
2
+ Exclude:
3
+ - bin/*
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.1.5
1
+ 4.1.6
data/bin/rspec ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'rspec' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rspec-core", "rspec")
@@ -66,6 +66,10 @@ module PermanentRecords
66
66
  lambda do |validate|
67
67
  run_callbacks(:revive) do
68
68
  set_deleted_at(nil, validate)
69
+ # increment all associated counters for counter cache
70
+ each_counter_cache do |assoc_class, counter_cache_column, assoc_id|
71
+ assoc_class.increment_counter counter_cache_column, assoc_id
72
+ end
69
73
  true
70
74
  end
71
75
  end
@@ -91,6 +95,7 @@ module PermanentRecords
91
95
  else
92
96
  record.save!
93
97
  end
98
+
94
99
  @attributes = record.instance_variable_get('@attributes')
95
100
  rescue => e
96
101
  # trigger dependent record destruction (they were revived before this
@@ -100,9 +105,27 @@ module PermanentRecords
100
105
  end
101
106
  end
102
107
 
108
+ def each_counter_cache
109
+ _reflections.each do |name, reflection|
110
+ associated_class = association(name).reflection.class_name.constantize
111
+ next unless reflection.belongs_to? && reflection.counter_cache_column
112
+ yield(associated_class,
113
+ reflection.counter_cache_column,
114
+ send(reflection.foreign_key))
115
+ end
116
+ end
117
+
103
118
  def destroy_with_permanent_records(force = nil)
104
119
  run_callbacks(:destroy) do
105
- deleted? || new_record? ? save : set_deleted_at(Time.now, force)
120
+ if deleted? || new_record?
121
+ save
122
+ else
123
+ set_deleted_at(Time.now, force)
124
+ # decrement all associated counters for counter cache
125
+ each_counter_cache do |assoc_class, counter_cache_column, assoc_id|
126
+ assoc_class.decrement_counter counter_cache_column, assoc_id
127
+ end
128
+ end
106
129
  true
107
130
  end
108
131
  deleted? ? self : false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: permanent_records
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.5
4
+ version: 4.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Danger Canty
@@ -16,90 +16,90 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2016-04-19 00:00:00.000000000 Z
19
+ date: 2016-06-06 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: activerecord
23
23
  requirement: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: 4.2.0
28
28
  type: :runtime
29
29
  prerelease: false
30
30
  version_requirements: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: 4.2.0
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: activesupport
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: 4.2.0
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: 4.2.0
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: database_cleaner
51
51
  requirement: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: 1.5.1
56
56
  type: :development
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: 1.5.1
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: pry-byebug
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: rake
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ~>
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
97
  version: 2.14.1
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ~>
102
+ - - "~>"
103
103
  - !ruby/object:Gem::Version
104
104
  version: 2.14.1
105
105
  - !ruby/object:Gem::Dependency
@@ -120,14 +120,14 @@ dependencies:
120
120
  name: sqlite3
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - '>='
123
+ - - ">="
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  type: :development
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - '>='
130
+ - - ">="
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  description: |
@@ -140,15 +140,17 @@ extra_rdoc_files:
140
140
  - LICENSE
141
141
  - README.md
142
142
  files:
143
- - .document
144
- - .gitignore
145
- - .travis.yml
143
+ - ".document"
144
+ - ".gitignore"
145
+ - ".rubocop.yml"
146
+ - ".travis.yml"
146
147
  - CONTRIBUTORS.md
147
148
  - Gemfile
148
149
  - LICENSE
149
150
  - README.md
150
151
  - Rakefile
151
152
  - VERSION
153
+ - bin/rspec
152
154
  - ci
153
155
  - lib/permanent_records.rb
154
156
  - permanent_records.gemspec
@@ -162,17 +164,17 @@ require_paths:
162
164
  - lib
163
165
  required_ruby_version: !ruby/object:Gem::Requirement
164
166
  requirements:
165
- - - '>='
167
+ - - ">="
166
168
  - !ruby/object:Gem::Version
167
169
  version: '0'
168
170
  required_rubygems_version: !ruby/object:Gem::Requirement
169
171
  requirements:
170
- - - '>='
172
+ - - ">="
171
173
  - !ruby/object:Gem::Version
172
174
  version: '0'
173
175
  requirements: []
174
176
  rubyforge_project:
175
- rubygems_version: 2.0.14.1
177
+ rubygems_version: 2.5.1
176
178
  signing_key:
177
179
  specification_version: 4
178
180
  summary: Soft-delete your ActiveRecord records