lite-archive 1.0.6 → 1.0.7
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 +4 -4
- data/.rubocop.yml +2 -10
- data/CHANGELOG.md +6 -2
- data/Gemfile.lock +48 -46
- data/README.md +7 -15
- data/lib/lite/archive.rb +1 -1
- data/lib/lite/archive/schema_statement.rb +25 -0
- data/lib/lite/archive/table_definition.rb +4 -2
- data/lib/lite/archive/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 05c24a09d2048dfa4e351204489462d3d86ba453fcdcabbb2cd6920d0dd20a9b
|
|
4
|
+
data.tar.gz: 2336963e85871ab47c5c58c8f9d0acbef1dfdcbc928694ef9c18a65b73eb031a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e3083fb599fc8fa1043327aea5ef7823c804e51f48c93e6212e71d319d59fdd294b8f436eb4b9e4a564e3ecfea021dfa8da60972a2ff2c5997540d5ccf6406d4
|
|
7
|
+
data.tar.gz: 10aece893c72226121d2b9f73c4d2aaeed29b1ce91859488877e44e5811b3ff9089e4dd36078e0ebe8f925a530c2b962def47fa5abf8149ec23d41ff208a26ef
|
data/.rubocop.yml
CHANGED
|
@@ -6,6 +6,8 @@ AllCops:
|
|
|
6
6
|
NewCops: enable
|
|
7
7
|
DisplayCopNames: true
|
|
8
8
|
DisplayStyleGuide: true
|
|
9
|
+
Gemspec/RequiredRubyVersion:
|
|
10
|
+
Enabled: false
|
|
9
11
|
Layout/EmptyLinesAroundAttributeAccessor:
|
|
10
12
|
Enabled: true
|
|
11
13
|
Layout/EmptyLinesAroundBlockBody:
|
|
@@ -35,13 +37,3 @@ Style/Documentation:
|
|
|
35
37
|
Enabled: false
|
|
36
38
|
Style/ExpandPathArguments:
|
|
37
39
|
Enabled: false
|
|
38
|
-
Style/ExponentialNotation:
|
|
39
|
-
Enabled: true
|
|
40
|
-
Style/HashEachMethods:
|
|
41
|
-
Enabled: true
|
|
42
|
-
Style/HashTransformKeys:
|
|
43
|
-
Enabled: true
|
|
44
|
-
Style/HashTransformValues:
|
|
45
|
-
Enabled: true
|
|
46
|
-
Style/SlicingWithRange:
|
|
47
|
-
Enabled: false
|
data/CHANGELOG.md
CHANGED
|
@@ -6,9 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.0.7] - 2020-11-03
|
|
10
|
+
### Changed
|
|
11
|
+
- Improved migration support
|
|
12
|
+
|
|
9
13
|
## [1.0.6] - 2020-07-03
|
|
10
|
-
###
|
|
11
|
-
-
|
|
14
|
+
### Added
|
|
15
|
+
- Added Ruby 2.7 support
|
|
12
16
|
|
|
13
17
|
## [1.0.5] - 2019-11-02
|
|
14
18
|
### Added
|
data/Gemfile.lock
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
lite-archive (1.0.
|
|
4
|
+
lite-archive (1.0.7)
|
|
5
5
|
activerecord
|
|
6
6
|
activesupport
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
actionpack (6.0.3.
|
|
12
|
-
actionview (= 6.0.3.
|
|
13
|
-
activesupport (= 6.0.3.
|
|
11
|
+
actionpack (6.0.3.4)
|
|
12
|
+
actionview (= 6.0.3.4)
|
|
13
|
+
activesupport (= 6.0.3.4)
|
|
14
14
|
rack (~> 2.0, >= 2.0.8)
|
|
15
15
|
rack-test (>= 0.6.3)
|
|
16
16
|
rails-dom-testing (~> 2.0)
|
|
17
17
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
18
|
-
actionview (6.0.3.
|
|
19
|
-
activesupport (= 6.0.3.
|
|
18
|
+
actionview (6.0.3.4)
|
|
19
|
+
activesupport (= 6.0.3.4)
|
|
20
20
|
builder (~> 3.1)
|
|
21
21
|
erubi (~> 1.4)
|
|
22
22
|
rails-dom-testing (~> 2.0)
|
|
23
23
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
24
|
-
activemodel (6.0.3.
|
|
25
|
-
activesupport (= 6.0.3.
|
|
26
|
-
activerecord (6.0.3.
|
|
27
|
-
activemodel (= 6.0.3.
|
|
28
|
-
activesupport (= 6.0.3.
|
|
29
|
-
activesupport (6.0.3.
|
|
24
|
+
activemodel (6.0.3.4)
|
|
25
|
+
activesupport (= 6.0.3.4)
|
|
26
|
+
activerecord (6.0.3.4)
|
|
27
|
+
activemodel (= 6.0.3.4)
|
|
28
|
+
activesupport (= 6.0.3.4)
|
|
29
|
+
activesupport (6.0.3.4)
|
|
30
30
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
31
31
|
i18n (>= 0.7, < 2)
|
|
32
32
|
minitest (~> 5.1)
|
|
@@ -35,7 +35,7 @@ GEM
|
|
|
35
35
|
ast (2.4.1)
|
|
36
36
|
builder (3.2.4)
|
|
37
37
|
colorize (0.8.1)
|
|
38
|
-
concurrent-ruby (1.1.
|
|
38
|
+
concurrent-ruby (1.1.7)
|
|
39
39
|
crass (1.0.6)
|
|
40
40
|
database_cleaner (1.8.5)
|
|
41
41
|
diff-lcs (1.4.4)
|
|
@@ -46,18 +46,18 @@ GEM
|
|
|
46
46
|
generator_spec (0.9.4)
|
|
47
47
|
activesupport (>= 3.0.0)
|
|
48
48
|
railties (>= 3.0.0)
|
|
49
|
-
i18n (1.8.
|
|
49
|
+
i18n (1.8.5)
|
|
50
50
|
concurrent-ruby (~> 1.0)
|
|
51
|
-
loofah (2.
|
|
51
|
+
loofah (2.7.0)
|
|
52
52
|
crass (~> 1.0.2)
|
|
53
53
|
nokogiri (>= 1.5.9)
|
|
54
54
|
method_source (1.0.0)
|
|
55
55
|
mini_portile2 (2.4.0)
|
|
56
|
-
minitest (5.14.
|
|
57
|
-
nokogiri (1.10.
|
|
56
|
+
minitest (5.14.2)
|
|
57
|
+
nokogiri (1.10.10)
|
|
58
58
|
mini_portile2 (~> 2.4.0)
|
|
59
59
|
parallel (1.19.2)
|
|
60
|
-
parser (2.7.
|
|
60
|
+
parser (2.7.2.0)
|
|
61
61
|
ast (~> 2.4.1)
|
|
62
62
|
rack (2.2.3)
|
|
63
63
|
rack-test (1.1.0)
|
|
@@ -67,28 +67,28 @@ GEM
|
|
|
67
67
|
nokogiri (>= 1.6)
|
|
68
68
|
rails-html-sanitizer (1.3.0)
|
|
69
69
|
loofah (~> 2.3)
|
|
70
|
-
railties (6.0.3.
|
|
71
|
-
actionpack (= 6.0.3.
|
|
72
|
-
activesupport (= 6.0.3.
|
|
70
|
+
railties (6.0.3.4)
|
|
71
|
+
actionpack (= 6.0.3.4)
|
|
72
|
+
activesupport (= 6.0.3.4)
|
|
73
73
|
method_source
|
|
74
74
|
rake (>= 0.8.7)
|
|
75
75
|
thor (>= 0.20.3, < 2.0)
|
|
76
76
|
rainbow (3.0.0)
|
|
77
77
|
rake (13.0.1)
|
|
78
|
-
regexp_parser (1.
|
|
78
|
+
regexp_parser (1.8.2)
|
|
79
79
|
rexml (3.2.4)
|
|
80
|
-
rspec (3.
|
|
81
|
-
rspec-core (~> 3.
|
|
82
|
-
rspec-expectations (~> 3.
|
|
83
|
-
rspec-mocks (~> 3.
|
|
84
|
-
rspec-core (3.
|
|
85
|
-
rspec-support (~> 3.
|
|
86
|
-
rspec-expectations (3.
|
|
80
|
+
rspec (3.10.0)
|
|
81
|
+
rspec-core (~> 3.10.0)
|
|
82
|
+
rspec-expectations (~> 3.10.0)
|
|
83
|
+
rspec-mocks (~> 3.10.0)
|
|
84
|
+
rspec-core (3.10.0)
|
|
85
|
+
rspec-support (~> 3.10.0)
|
|
86
|
+
rspec-expectations (3.10.0)
|
|
87
87
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
|
-
rspec-support (~> 3.
|
|
89
|
-
rspec-mocks (3.
|
|
88
|
+
rspec-support (~> 3.10.0)
|
|
89
|
+
rspec-mocks (3.10.0)
|
|
90
90
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
91
|
-
rspec-support (~> 3.
|
|
91
|
+
rspec-support (~> 3.10.0)
|
|
92
92
|
rspec-rails (4.0.1)
|
|
93
93
|
actionpack (>= 4.2)
|
|
94
94
|
activesupport (>= 4.2)
|
|
@@ -97,33 +97,35 @@ GEM
|
|
|
97
97
|
rspec-expectations (~> 3.9)
|
|
98
98
|
rspec-mocks (~> 3.9)
|
|
99
99
|
rspec-support (~> 3.9)
|
|
100
|
-
rspec-support (3.
|
|
101
|
-
rubocop (0.
|
|
100
|
+
rspec-support (3.10.0)
|
|
101
|
+
rubocop (0.93.1)
|
|
102
102
|
parallel (~> 1.10)
|
|
103
|
-
parser (>= 2.7.
|
|
103
|
+
parser (>= 2.7.1.5)
|
|
104
104
|
rainbow (>= 2.2.2, < 4.0)
|
|
105
|
-
regexp_parser (>= 1.
|
|
105
|
+
regexp_parser (>= 1.8)
|
|
106
106
|
rexml
|
|
107
|
-
rubocop-ast (>= 0.
|
|
107
|
+
rubocop-ast (>= 0.6.0)
|
|
108
108
|
ruby-progressbar (~> 1.7)
|
|
109
109
|
unicode-display_width (>= 1.4.0, < 2.0)
|
|
110
|
-
rubocop-ast (
|
|
111
|
-
parser (>= 2.7.
|
|
112
|
-
rubocop-performance (1.
|
|
113
|
-
rubocop (>= 0.
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
rubocop-ast (1.1.0)
|
|
111
|
+
parser (>= 2.7.1.5)
|
|
112
|
+
rubocop-performance (1.8.1)
|
|
113
|
+
rubocop (>= 0.87.0)
|
|
114
|
+
rubocop-ast (>= 0.4.0)
|
|
115
|
+
rubocop-rspec (1.44.1)
|
|
116
|
+
rubocop (~> 0.87)
|
|
117
|
+
rubocop-ast (>= 0.7.1)
|
|
116
118
|
ruby-progressbar (1.10.1)
|
|
117
|
-
ruby_parser (3.
|
|
119
|
+
ruby_parser (3.15.0)
|
|
118
120
|
sexp_processor (~> 4.9)
|
|
119
|
-
sexp_processor (4.15.
|
|
121
|
+
sexp_processor (4.15.1)
|
|
120
122
|
sqlite3 (1.4.2)
|
|
121
123
|
thor (1.0.1)
|
|
122
124
|
thread_safe (0.3.6)
|
|
123
125
|
tzinfo (1.2.7)
|
|
124
126
|
thread_safe (~> 0.1)
|
|
125
127
|
unicode-display_width (1.7.0)
|
|
126
|
-
zeitwerk (2.
|
|
128
|
+
zeitwerk (2.4.1)
|
|
127
129
|
|
|
128
130
|
PLATFORMS
|
|
129
131
|
ruby
|
data/README.md
CHANGED
|
@@ -52,23 +52,15 @@ If the table does not have this column, records will be destroy instead of archi
|
|
|
52
52
|
```ruby
|
|
53
53
|
class AddArchivedAtColumn < ActiveRecord::Migration
|
|
54
54
|
def change
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
create_table :table_name do |t|
|
|
56
|
+
t.timestamp # Adds archived_at automatically (if all_records_archivable is set to true)
|
|
57
|
+
t.timestamp archive: true # Adds archived_at timestamp
|
|
58
|
+
t.timestamp archive: false # Does NOT add archived_at timestamp
|
|
59
|
+
end
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
add_timestamp :table_name
|
|
59
62
|
|
|
60
|
-
|
|
61
|
-
t.timestamp archive: true
|
|
62
|
-
|
|
63
|
-
# - or -
|
|
64
|
-
|
|
65
|
-
# Does NOT add archived_at timestamp
|
|
66
|
-
t.timestamp archive: false
|
|
67
|
-
|
|
68
|
-
# - or -
|
|
69
|
-
|
|
70
|
-
# Manual column (null constraint must be false)
|
|
71
|
-
add_column :your_model, :archived_at, :datetime
|
|
63
|
+
add_column :table_name, :archived_at, :datetime # Manual column (null constraint must be false)
|
|
72
64
|
end
|
|
73
65
|
end
|
|
74
66
|
```
|
data/lib/lite/archive.rb
CHANGED
|
@@ -6,7 +6,7 @@ require 'active_support'
|
|
|
6
6
|
require 'lite/archive/version'
|
|
7
7
|
require 'lite/archive/railtie' if defined?(Rails)
|
|
8
8
|
|
|
9
|
-
%w[configuration table_definition methods scopes base].each do |name|
|
|
9
|
+
%w[configuration schema_statement table_definition methods scopes base].each do |name|
|
|
10
10
|
require "lite/archive/#{name}"
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lite
|
|
4
|
+
module Archive
|
|
5
|
+
module SchemaStatement
|
|
6
|
+
|
|
7
|
+
def add_timestamps(table_name, **options)
|
|
8
|
+
options[:null] = false if options[:null].nil?
|
|
9
|
+
options[:precision] ||= 6 if supports_datetime_with_precision?
|
|
10
|
+
|
|
11
|
+
add_column(table_name, :created_at, :datetime, **options)
|
|
12
|
+
add_column(table_name, :updated_at, :datetime, **options)
|
|
13
|
+
|
|
14
|
+
return unless Lite::Archive.configuration.all_records_archivable == true
|
|
15
|
+
return if options[:archive] == false
|
|
16
|
+
|
|
17
|
+
options[:null] = true
|
|
18
|
+
add_column(table_name, :archived_at, :datetime, **options)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
ActiveRecord::Migration.prepend(Lite::Archive::SchemaStatement)
|
|
@@ -4,8 +4,9 @@ module Lite
|
|
|
4
4
|
module Archive
|
|
5
5
|
module TableDefinition
|
|
6
6
|
|
|
7
|
-
def timestamps(
|
|
8
|
-
options =
|
|
7
|
+
def timestamps(**options)
|
|
8
|
+
options[:null] = false if options[:null].nil?
|
|
9
|
+
options[:precision] ||= 6 if @conn.supports_datetime_with_precision?
|
|
9
10
|
|
|
10
11
|
column(:created_at, :datetime, **options)
|
|
11
12
|
column(:updated_at, :datetime, **options)
|
|
@@ -21,4 +22,5 @@ module Lite
|
|
|
21
22
|
end
|
|
22
23
|
end
|
|
23
24
|
|
|
25
|
+
ActiveRecord::ConnectionAdapters::Table.prepend(Lite::Archive::TableDefinition)
|
|
24
26
|
ActiveRecord::ConnectionAdapters::TableDefinition.prepend(Lite::Archive::TableDefinition)
|
data/lib/lite/archive/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lite-archive
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Juan Gomez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -222,6 +222,7 @@ files:
|
|
|
222
222
|
- lib/lite/archive/configuration.rb
|
|
223
223
|
- lib/lite/archive/methods.rb
|
|
224
224
|
- lib/lite/archive/railtie.rb
|
|
225
|
+
- lib/lite/archive/schema_statement.rb
|
|
225
226
|
- lib/lite/archive/scopes.rb
|
|
226
227
|
- lib/lite/archive/table_definition.rb
|
|
227
228
|
- lib/lite/archive/version.rb
|