sequel-bulk-audit 0.2.0 → 1.0.0

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
- SHA1:
3
- metadata.gz: 969f874c37e5b8cdd0bc74f1e5fb8eff41ddc680
4
- data.tar.gz: 899ee7a547d11be1ba2b6bd03c008aa26a307722
2
+ SHA256:
3
+ metadata.gz: 6667b0a97aa57dd84b2633d9dcd938e794464e8cab2cc151d0392b23686bbde0
4
+ data.tar.gz: 81bdd9c39e417730cc7bce82d070aba108bace62cd748553eb5b74f1bd9907d4
5
5
  SHA512:
6
- metadata.gz: 4d1df05162de7060a17f396e0951c1c584c573cf3cae55baa0cea365242cb2b18409551b498bb48e1dcd35c47323cd3bb44299edea93dfb8b2352164a04d691a
7
- data.tar.gz: f755c70544b356c0143dbc0adf7e7a54dc5ca2144575587f8ef610119405cc358d72ce0a45e73f3b99d4298c05fce1d7558c0e8dd25474586cda1309d8d2cb13
6
+ metadata.gz: 4e632ab2b87dd7e73d2e2b7c1b52c4e04f916ef9318d7279d3705a30ed33df3119ce69347948be62d6c6d52b618fad8f245881155e36cb02007c2f0d9b621354
7
+ data.tar.gz: cc5e5b4b4946e4fa4979ba23c9da74c837158c6815893513b07cb0ccfac59378fda1bdc063791a7dbb846ac00a435b951e8d35652edc0960da99cd7dc1a757a8
@@ -0,0 +1,9 @@
1
+ inherit_gem:
2
+ rubocop-config-umbrellio: lib/rubocop.yml
3
+
4
+ AllCops:
5
+ TargetRubyVersion: 2.4.7
6
+
7
+ Naming/FileName:
8
+ Exclude:
9
+ - lib/sequel-bulk-audit.rb
@@ -1,8 +1,13 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.14.6
4
+ - 2.4.7
5
+ - 2.5.7
6
+ - 2.6.5
7
+ - 2.7.0
8
+ - ruby-head
9
+
10
+ before_install: gem install bundler -v 2.1.4
6
11
  addons:
7
12
  postgresql: "9.6"
8
13
  services:
@@ -0,0 +1,31 @@
1
+ # Change Log
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ ## [1.0.0] - 2020-03-04
5
+
6
+ ### Added
7
+
8
+ - integration with rubocop ecosystem
9
+
10
+ ### Changed
11
+
12
+ - instead of creating model_to_table_map temp table now keeps just model_name
13
+ - temp table now drops on commit
14
+ - temp table now named as "__schema_table_audit_logs_trid"
15
+ - temp table now has array of audited table columns
16
+ - trigger function now uses array of columns from temp table instead of querying for them
17
+ - remade specs
18
+ - readme
19
+ - isolated tests
20
+ - incapsulated preparations for tests in SeedHelper
21
+
22
+ ### Removed
23
+
24
+ - redundant self
25
+ - redundant excluded columns option
26
+ - ability to use #with_current_user on instances of audited class
27
+ - spec for polymorhic associations
28
+
29
+ ## [0.2.0] - 2018-06-08
30
+
31
+ Initial version.
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
5
7
  # Specify your gem's dependencies in sequel-bulk-audit.gemspec
6
8
  gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018-2020 Umbrellio
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,18 +1,8 @@
1
- # sequel-bulk-audit [![Build Status](https://travis-ci.org/fiscal-cliff/sequel-bulk-audit.svg?branch=master)](https://travis-ci.org/fiscal-cliff/sequel-bulk-audit)
1
+ # sequel-bulk-audit [![Build Status](https://travis-ci.org/umbrellio/sequel-bulk-audit.svg?branch=master)](https://travis-ci.org/umbrellio/sequel-bulk-audit)
2
2
 
3
- This gem allows you to track any changes in your tables. This approach not only is suitable for model updates but also enables you to track dataset updates.
3
+ This gem allows you to track any changes in your tables. This approach is not only suitable for model updates but also enables you to track dataset updates.
4
4
 
5
- You should wrap your updating code as follows:
6
-
7
- ```ruby
8
- Model.with_current_user(current_user) do
9
- Model.where(...).update(...)
10
- end
11
- ```
12
-
13
- Method #with_current_user expects current_user to be an object (or record) having attributes id and login
14
-
15
- You are able setup polymorphic associations between audit records and corresponding records.
5
+ Method #with_current_user expects current_user to be an object (or record) having attributes id and login. It sets user_id as 0 and login as "unspecified" by default.
16
6
 
17
7
  ## Installation
18
8
 
@@ -30,18 +20,25 @@ Or install it yourself as:
30
20
 
31
21
  $ gem install sequel-bulk-audit
32
22
 
33
- After Installation you should run ```rails g audit_migration``` generator.
23
+ After installation you should run ```rails g audit_migration``` generator.
34
24
 
35
25
  You can exdend this migration by attaching the trigger to audited tables.
36
26
 
27
+ Please note, that this gem reqires pg_array and pg_json sequel extensions to work.
28
+
37
29
  ## Usage
38
30
 
39
- Models, changes in which you plan to audit should contain
31
+ Models with audited changes should contain:
32
+
40
33
  ```ruby
41
34
  plugin :bulk_audit
42
35
  ```
43
36
 
44
- Method #with_current_user should wrap all the operations on the table.
37
+ Method #with_current_user should wrap all the operations on the table. You must use method from the model you are changing for this gem to work correclty.
38
+
39
+ Keep in mind that everything wraped in #with_current_user will happen in one transaction.
40
+
41
+ Correct usage:
45
42
 
46
43
  ```ruby
47
44
  Model.with_current_user(current_user) do
@@ -49,6 +46,32 @@ Model.with_current_user(current_user) do
49
46
  end
50
47
  ```
51
48
 
49
+ Correct usage for several models in one transaction:
50
+
51
+ ```ruby
52
+ DB.transaction do
53
+ Model.with_current_user(current_user) do # will create temp table for model
54
+ Model.where(...).update(...)
55
+ end
56
+
57
+ OtherModel.with_current_user(current_user) do # will create temp table for other_model
58
+ OtherModel.where(...).update(...)
59
+ end
60
+ end
61
+ ```
62
+
63
+ Incorrect usage:
64
+
65
+ ```ruby
66
+ SomeOtherModel.with_current_user(current_user) do
67
+ Model.where(...).update(...)
68
+ end
69
+ ```
70
+
71
+ ## Migration from 0.2.0 to 1.0.0
72
+
73
+ Recreate audit_changes() function with new changes.
74
+
52
75
  ## Development
53
76
 
54
77
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -57,4 +80,4 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
57
80
 
58
81
  ## Contributing
59
82
 
60
- Bug reports and pull requests are welcome on GitHub at https://github.com/fiscal-cliff/sequel-bulk-audit.
83
+ Bug reports and pull requests are welcome on GitHub at https://github.com/umbrellio/sequel-bulk-audit.
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rspec/core/rake_task"
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class AuditMigrationGenerator < Rails::Generators::Base
2
- source_root File.expand_path('../templates', __FILE__)
4
+ source_root File.expand_path("templates", __dir__)
3
5
 
4
6
  def copy_audit_migration_files
5
- version = Time.now.utc.strftime('%Y%m%d%H%M%S')
7
+ version = Time.now.utc.strftime("%Y%m%d%H%M%S")
6
8
  copy_file "01_migration.rb", "db/migrate/#{version}_CreateAuditTableAndTrigger.rb"
7
9
  end
8
10
  end
@@ -23,7 +23,7 @@ Sequel.migration do
23
23
  create_function(:audit_changes, <<~SQL, returns: :trigger, language: :plpgsql, replace: true)
24
24
  DECLARE
25
25
  changes jsonb := '{}'::jsonb;
26
- ri RECORD;
26
+ column_name text;
27
27
  n jsonb;
28
28
  o jsonb;
29
29
  __audit_info RECORD;
@@ -32,28 +32,26 @@ Sequel.migration do
32
32
  trid bigint;
33
33
  BEGIN
34
34
  SELECT txid_current() INTO trid;
35
- EXECUTE 'SELECT * FROM __audit_info_' || trid::text INTO __audit_info;
36
- FOR ri IN
37
- SELECT column_name
38
- FROM information_schema.columns
39
- WHERE
40
- table_schema = quote_ident(TG_TABLE_SCHEMA)
41
- AND table_name = quote_ident(TG_TABLE_NAME)
42
- ORDER BY ordinal_position
35
+
36
+ EXECUTE CONCAT(
37
+ 'SELECT * FROM __', TG_TABLE_SCHEMA, '_', TG_TABLE_NAME, '_audit_info_', trid::text
38
+ ) INTO __audit_info;
39
+
40
+ FOREACH column_name IN ARRAY __audit_info.columns
43
41
  LOOP
44
42
  IF (TG_OP = 'UPDATE') THEN
45
- EXECUTE 'SELECT to_jsonb(($1).' || ri.column_name || ')' INTO n USING NEW;
46
- EXECUTE 'SELECT to_jsonb(($1).' || ri.column_name || ')' INTO o USING OLD;
43
+ EXECUTE 'SELECT to_jsonb(($1).' || column_name || ')' INTO n USING NEW;
44
+ EXECUTE 'SELECT to_jsonb(($1).' || column_name || ')' INTO o USING OLD;
47
45
  IF (o != n) THEN
48
- SELECT changes || jsonb_build_object(ri.column_name, ARRAY[o, n]) INTO changes;
46
+ SELECT changes || jsonb_build_object(column_name, ARRAY[o, n]) INTO changes;
49
47
  END IF;
50
48
  ELSE
51
49
  IF (TG_OP = 'DELETE') THEN
52
- EXECUTE 'SELECT to_jsonb(($1).' || ri.column_name || ')' INTO n USING OLD;
50
+ EXECUTE 'SELECT to_jsonb(($1).' || column_name || ')' INTO n USING OLD;
53
51
  ELSIF (TG_OP = 'INSERT') THEN
54
- EXECUTE 'SELECT to_jsonb(($1).' || ri.column_name || ')' INTO n USING NEW;
52
+ EXECUTE 'SELECT to_jsonb(($1).' || column_name || ')' INTO n USING NEW;
55
53
  END IF;
56
- SELECT changes || jsonb_build_object(ri.column_name, n) INTO changes;
54
+ SELECT changes || jsonb_build_object(column_name, n) INTO changes;
57
55
  END IF;
58
56
  END LOOP;
59
57
 
@@ -73,8 +71,9 @@ Sequel.migration do
73
71
  END CASE;
74
72
  INSERT INTO audit_logs ("model_type", "model_id", "event", "changed",
75
73
  "created_at", "user_id", "username", "query", "data")
76
- VALUES (coalesce((__audit_info.model_map ->> TG_TABLE_NAME::TEXT), TG_TABLE_NAME::TEXT), model_id, TG_OP, changes, NOW(), __audit_info.user_id,
77
- __audit_info.username, current_query(), __audit_info.data);
74
+ VALUES (coalesce(__audit_info.model_name::TEXT, TG_TABLE_NAME::TEXT), model_id, TG_OP,
75
+ changes, NOW(), __audit_info.user_id, __audit_info.username, current_query(),
76
+ __audit_info.data);
78
77
  RETURN return_record;
79
78
  END;
80
79
  SQL
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pry"
2
4
  require "sequel/plugins/bulk_audit"
@@ -1,44 +1,51 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "sequel/plugins/bulk_audit/version"
2
- require 'sequel/model'
4
+ require "sequel/model"
3
5
 
4
6
  module Sequel
5
7
  module Plugins
6
8
  module BulkAudit
7
- def self.apply(model, opts={})
8
- model.instance_eval do
9
- @excluded_columns = [*opts[:excluded_columns]]
9
+ module ClassMethods
10
+ def with_current_user(current_user, attributes = {})
11
+ db.transaction do
12
+ data = db.select(
13
+ Sequel.expr(current_user&.id || 0).as(:user_id),
14
+ Sequel.cast(current_user&.login || "unspecified", :text).as(:username),
15
+ Sequel.expr(name).as(:model_name),
16
+ Sequel.pg_array(stringified_columns).as(:columns),
17
+ Sequel.pg_jsonb(attributes).as(:data),
18
+ )
19
+
20
+ create_temp_table(data)
21
+
22
+ yield if block_given?
23
+ end
10
24
  end
11
- end
12
25
 
13
- module SharedMethods
14
- def model_to_table_map
15
- @@model_to_table_map ||= ObjectSpace.each_object(Class).select do |klazz|
16
- next if klazz.name.nil?
17
- klazz < Sequel::Model && klazz&.plugins&.include?(Sequel::Plugins::BulkAudit)
18
- end.map { |c| [c.to_s, c.table_name] }.to_h.invert
26
+ def trid
27
+ db.get(Sequel.function(:txid_current))
19
28
  end
20
29
 
21
- def with_current_user(current_user, attributes = nil)
22
- self.db.transaction do
23
- trid = self.db.select(Sequel.function(:txid_current)).single_value
24
- data = self.db.select(Sequel.expr(current_user&.id || 0).as(:user_id),
25
- Sequel.cast(current_user&.login || "unspecified", :text).as(:username),
26
- Sequel.pg_jsonb(model_to_table_map).as(:model_map),
27
- Sequel.pg_jsonb(attributes || {}).as(:data))
28
- self.db.create_table!(:"__audit_info_#{trid}", temp: true, as: data)
29
- result = yield if block_given?
30
- self.db.drop_table?(:"__audit_info_#{trid}")
31
- result
32
- end
30
+ def create_temp_table(data)
31
+ db.create_table!(audit_logs_temp_table_name, on_commit: :drop, temp: true, as: data)
33
32
  end
34
- end
35
33
 
36
- module ClassMethods
37
- include SharedMethods
38
- end
34
+ def stringified_columns
35
+ columns.map(&:to_s)
36
+ end
39
37
 
40
- module InstanceMethods
41
- include SharedMethods
38
+ # uses trid so temp table would be unique between transactions
39
+ # uses table_name so temp table would be unique if several models are audited at once
40
+ def audit_logs_temp_table_name
41
+ "__#{table_name_with_schema}_audit_info_#{trid}".to_sym
42
+ end
43
+
44
+ def table_name_with_schema
45
+ return "public_#{table_name}" if table_name.is_a?(Symbol)
46
+
47
+ "#{table_name.table}_#{table_name.column}" # for QualifiedIdentifier
48
+ end
42
49
  end
43
50
  end
44
51
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sequel
2
4
  module Plugins
3
5
  module BulkAudit
4
- VERSION = "0.2.0"
6
+ VERSION = "1.0.0"
5
7
  end
6
8
  end
7
9
  end
@@ -1,5 +1,7 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
2
+ # frozen_string_literal: true
3
+
4
+ lib = File.expand_path("lib", __dir__)
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require "sequel/plugins/bulk_audit/version"
5
7
 
@@ -9,37 +11,28 @@ Gem::Specification.new do |spec|
9
11
  spec.authors = ["Fox"]
10
12
  spec.email = ["strong.drug@gmail.com"]
11
13
 
12
- spec.summary = %q{This gem provides a trigger based solution for auditing table changes}
13
- spec.description = %q{Every update on audited table will be logged. You can update the table in bulk}
14
- spec.homepage = "https://github.com/fiscal-cliff/sequel-bulk-audit/"
15
- spec.post_install_message = %q{ Next steps:
14
+ spec.summary = "This gem provides a trigger based solution for auditing table changes"
15
+ spec.description = "Every update on audited table will be logged. You can update in bulk"
16
+ spec.homepage = "https://github.com/umbrellio/sequel-bulk-audit/"
17
+ spec.post_install_message = ' Next steps:
16
18
  1. Run rails g audit_migration
17
19
  2. Edit generated migration
18
20
  3. Apply the migration"
19
- }
20
-
21
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
22
- # to allow pushing to a single host or delete this section to allow pushing to any host.
23
- if spec.respond_to?(:metadata)
24
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
- else
26
- raise "RubyGems 2.0 or newer is required to protect against " \
27
- "public gem pushes."
28
- end
21
+ '
29
22
 
30
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
23
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
31
24
  f.match(%r{^(test|spec|features)/})
32
25
  end
33
26
  spec.bindir = "exe"
34
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
35
28
  spec.require_paths = ["lib"]
36
29
 
30
+ spec.add_dependency "pg", ">= 0.17.0"
37
31
  spec.add_dependency "sequel", ">= 4.0.0"
38
- spec.add_dependency "pg", ">= 0.17.0"
39
32
 
40
- spec.add_development_dependency "bundler", "~> 1.14"
41
- spec.add_development_dependency "rake", "~> 10.0"
42
- spec.add_development_dependency "rspec", "~> 3.0"
43
- spec.add_development_dependency "pry", "~> 0.10"
44
- spec.add_development_dependency "sequel_polymorphic"
33
+ spec.add_development_dependency "bundler", "~> 2.0"
34
+ spec.add_development_dependency "pry", "~> 0.10"
35
+ spec.add_development_dependency "rake", ">= 12.3.3"
36
+ spec.add_development_dependency "rspec", "~> 3.0"
37
+ spec.add_development_dependency "rubocop-config-umbrellio"
45
38
  end
metadata CHANGED
@@ -1,101 +1,101 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-bulk-audit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fox
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-08 00:00:00.000000000 Z
11
+ date: 2020-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sequel
14
+ name: pg
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0
19
+ version: 0.17.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.0.0
26
+ version: 0.17.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: pg
28
+ name: sequel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.17.0
33
+ version: 4.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.17.0
40
+ version: 4.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.14'
47
+ version: '2.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.14'
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '0.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '0.10'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rspec
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: 12.3.3
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: 12.3.3
83
83
  - !ruby/object:Gem::Dependency
84
- name: pry
84
+ name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.10'
89
+ version: '3.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.10'
96
+ version: '3.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: sequel_polymorphic
98
+ name: rubocop-config-umbrellio
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -108,8 +108,7 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- description: Every update on audited table will be logged. You can update the table
112
- in bulk
111
+ description: Every update on audited table will be logged. You can update in bulk
113
112
  email:
114
113
  - strong.drug@gmail.com
115
114
  executables: []
@@ -118,8 +117,11 @@ extra_rdoc_files: []
118
117
  files:
119
118
  - ".gitignore"
120
119
  - ".rspec"
120
+ - ".rubocop.yml"
121
121
  - ".travis.yml"
122
+ - CHANGELOG.md
122
123
  - Gemfile
124
+ - LICENSE.md
123
125
  - README.md
124
126
  - Rakefile
125
127
  - bin/console
@@ -131,10 +133,9 @@ files:
131
133
  - lib/sequel/plugins/bulk_audit.rb
132
134
  - lib/sequel/plugins/bulk_audit/version.rb
133
135
  - sequel-bulk-audit.gemspec
134
- homepage: https://github.com/fiscal-cliff/sequel-bulk-audit/
136
+ homepage: https://github.com/umbrellio/sequel-bulk-audit/
135
137
  licenses: []
136
- metadata:
137
- allowed_push_host: https://rubygems.org
138
+ metadata: {}
138
139
  post_install_message: " Next steps:\n 1. Run rails g audit_migration\n 2. Edit
139
140
  generated migration\n 3. Apply the migration\"\n "
140
141
  rdoc_options: []
@@ -151,8 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
152
  - !ruby/object:Gem::Version
152
153
  version: '0'
153
154
  requirements: []
154
- rubyforge_project:
155
- rubygems_version: 2.6.13
155
+ rubygems_version: 3.0.3
156
156
  signing_key:
157
157
  specification_version: 4
158
158
  summary: This gem provides a trigger based solution for auditing table changes