logidze 0.5.2 → 0.5.3
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
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a553a435446577ff945a979411dcd5d36c6185e7
|
4
|
+
data.tar.gz: 4c06374961f3073969d5f7d16184bd7e7e8d5dd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bbdf6fcec9cb2e4a5686f7f80972aa43889bda5e74e7711d4e80364d580279e9f947859aa76342b3018dcf5fcc471ab6b998c5a54e9b836654dab1e94e9bdeb
|
7
|
+
data.tar.gz: 991804f34a2f90601794418789fde42aff8d7031a8edd6b115fb79c4e0fd59e3b14277b8931a509e19c01200d4cd830776484e6d4622059c4bca3b321d2ecfc7
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
[](https://rubygems.org/gems/logidze) [](https://travis-ci.org/palkan/logidze) [](https://circleci.com/gh/palkan/logidze/tree/master)
|
2
|
+
[](https://dependencyci.com/github/palkan/logidze)
|
2
3
|
|
3
4
|
# Logidze
|
4
5
|
|
@@ -86,6 +87,12 @@ rails generate logidze:model Post --timestamp_column time
|
|
86
87
|
rails generate logidze:model Post --timestamp_column nil # "null" and "false" will also work
|
87
88
|
```
|
88
89
|
|
90
|
+
If you want to update Logidze settings for the model, run migration with `--update` flag:
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
rails generate logidze:model Post --update --whitelist=title body rating
|
94
|
+
```
|
95
|
+
|
89
96
|
Logidze also supports associations versioning. It is experimental feature, and disabled by default. You can learn more
|
90
97
|
in the [wiki](https://github.com/palkan/logidze/wiki/Associations-versioning).
|
91
98
|
|
@@ -6,3 +6,8 @@ Examples:
|
|
6
6
|
|
7
7
|
This will generate the migration to add log column and trigger.
|
8
8
|
This will also add `has_logidze` to model.
|
9
|
+
|
10
|
+
rails generate logidze:model User --update --whitelist=name,age
|
11
|
+
|
12
|
+
This will generate the migration to update existing trigger (drop and create).
|
13
|
+
|
@@ -24,6 +24,9 @@ module Logidze
|
|
24
24
|
class_option :timestamp_column, type: :string, optional: true,
|
25
25
|
desc: "Specify timestamp column"
|
26
26
|
|
27
|
+
class_option :update, type: :boolean, optional: true,
|
28
|
+
desc: "Define whether this is an update migration"
|
29
|
+
|
27
30
|
def generate_migration
|
28
31
|
if options[:blacklist] && options[:whitelist]
|
29
32
|
$stderr.puts "Use only one: --whitelist or --blacklist"
|
@@ -33,6 +36,7 @@ module Logidze
|
|
33
36
|
end
|
34
37
|
|
35
38
|
def inject_logidze_to_model
|
39
|
+
return if update?
|
36
40
|
indents = " " * (class_name.scan("::").count + 1)
|
37
41
|
|
38
42
|
inject_into_class(model_file_path, class_name.demodulize, "#{indents}has_logidze\n")
|
@@ -40,7 +44,11 @@ module Logidze
|
|
40
44
|
|
41
45
|
no_tasks do
|
42
46
|
def migration_name
|
43
|
-
|
47
|
+
if update?
|
48
|
+
"update_logidze_for_#{plural_table_name}"
|
49
|
+
else
|
50
|
+
"add_logidze_to_#{plural_table_name}"
|
51
|
+
end
|
44
52
|
end
|
45
53
|
|
46
54
|
def migration_file_name
|
@@ -59,6 +67,10 @@ module Logidze
|
|
59
67
|
options[:only_trigger]
|
60
68
|
end
|
61
69
|
|
70
|
+
def update?
|
71
|
+
options[:update]
|
72
|
+
end
|
73
|
+
|
62
74
|
def columns_blacklist
|
63
75
|
array = if !options[:whitelist]
|
64
76
|
options[:blacklist]
|
@@ -3,7 +3,9 @@ class <%= @migration_class_name %> < ActiveRecord::Migration<%= ActiveRecord::VE
|
|
3
3
|
include Logidze::Migration
|
4
4
|
|
5
5
|
def up
|
6
|
-
<%
|
6
|
+
<% if update? %>
|
7
|
+
execute "DROP TRIGGER logidze_on_<%= table_name %> on <%= table_name %>;"
|
8
|
+
<% elsif !only_trigger? %>
|
7
9
|
add_column :<%= table_name %>, :log_data, :jsonb
|
8
10
|
<% end %>
|
9
11
|
|
@@ -23,10 +25,19 @@ class <%= @migration_class_name %> < ActiveRecord::Migration<%= ActiveRecord::VE
|
|
23
25
|
end
|
24
26
|
|
25
27
|
def down
|
28
|
+
<% if update? %>
|
29
|
+
# NOTE: We have no idea on how to revert the migration
|
30
|
+
# ('cause we don't know the previous trigger params),
|
31
|
+
# but you can do that on your own.
|
32
|
+
#
|
33
|
+
# Uncomment this line if you want to raise an error.
|
34
|
+
# raise ActiveRecord::IrreversibleMigration
|
35
|
+
<% else %>
|
26
36
|
execute "DROP TRIGGER IF EXISTS logidze_on_<%= table_name %> on <%= table_name %>;"
|
27
37
|
|
28
|
-
<%
|
38
|
+
<% if !only_trigger? %>
|
29
39
|
remove_column :<%= table_name %>, :log_data
|
30
40
|
<% end %>
|
41
|
+
<% end %>
|
31
42
|
end
|
32
43
|
end
|
data/lib/logidze/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logidze
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- palkan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
226
|
version: '0'
|
227
227
|
requirements: []
|
228
228
|
rubyforge_project:
|
229
|
-
rubygems_version: 2.6.
|
229
|
+
rubygems_version: 2.6.11
|
230
230
|
signing_key:
|
231
231
|
specification_version: 4
|
232
232
|
summary: PostgreSQL JSON-based auditing
|