omg-audit-group 0.1.2 → 0.1.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
  SHA256:
3
- metadata.gz: c0c376f111fedecd658dac64a321545b036c3a672cb8a7b4e8f6c443a90fbe74
4
- data.tar.gz: d8c9fa53d36b22ef3b57c41bf11a73131e6c90ac8e011c45604b155025db7251
3
+ metadata.gz: 20e5522972e49c63dc37ea573d6f17b9a9f96c86c9ee754c688dc64d304273a7
4
+ data.tar.gz: 0f6d2979feaf9721716ed88a318707e279bfbadc32bf35c450ec69497d248f53
5
5
  SHA512:
6
- metadata.gz: 50c5f348251c2c296f3f778eb3704992b2c459926c0f4814e8a13cba5906a90349844037316aa682840518ca990312d5317ab2efaef40423fd5c41f27cb5d5fa
7
- data.tar.gz: 9f49b04443555acd365e821367d378b63e832a76e16b8cf86d82a5dcfcca2d4356323330fe67712d40820676c8cda8f935d5d92547a225cc82847486a73bea09
6
+ metadata.gz: ca13f29190d4020aafb6765a6f9294c9aa6f712bb6cfd0e9e86e9a902b8a3ba2767e5bb36c71a1d6026fc434df4ca6d11e5280be2b52ac5dfd3be859acdc6dcb
7
+ data.tar.gz: 75bb4c7909885993f31fe383b7c74598b4fc0ebf239e2c6b3a34eb8757ecc88242e23d58dd08e4d10a215f0341a7b7493d0f4740dfe3048c0df7b4812aa79369
data/lib/audit_group.rb CHANGED
@@ -4,7 +4,7 @@ require 'active_support/all'
4
4
  require 'audited'
5
5
 
6
6
  class AuditGroup
7
- VERSION = '0.1.2'
7
+ VERSION = '0.1.3'
8
8
 
9
9
  attr_reader :block, :request_uuid
10
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omg-audit-group
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Greenfield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-08 00:00:00.000000000 Z
11
+ date: 2024-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '5.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '8.0'
22
+ version: '7.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '6.0'
29
+ version: '5.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '8.0'
32
+ version: '7.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: audited
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,7 @@ executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
- - ".gitignore"
62
- - ".rspec"
63
- - README.md
64
- - Rakefile
65
- - audit_group.gemspec
66
61
  - lib/audit_group.rb
67
- - spec/audit_group_spec.rb
68
- - spec/spec_helper.rb
69
62
  homepage: https://github.com/omgreenfield/omg-util/tree/main/audit_group
70
63
  licenses:
71
64
  - MIT
@@ -80,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
73
  requirements:
81
74
  - - ">="
82
75
  - !ruby/object:Gem::Version
83
- version: 2.7.0
76
+ version: 2.3.0
84
77
  required_rubygems_version: !ruby/object:Gem::Requirement
85
78
  requirements:
86
79
  - - ">="
data/.gitignore DELETED
@@ -1,12 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
- sandbox.md
10
-
11
- # rspec failure tracking
12
- .rspec_status
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/README.md DELETED
@@ -1,98 +0,0 @@
1
- # AuditGroup
2
-
3
- Group ActiveRecord operations together by assigning all of their audits the same `request_uuid`.
4
-
5
- ## TODO
6
-
7
- - [ ] Add `rails` as dependency instead of `active_support`
8
- - [ ] Add `dry_run` method
9
-
10
- ## Requirements
11
-
12
- - [Audited](https://github.com/collectiveidea/audited) gem
13
-
14
- ## Installation
15
-
16
- ### From RubyGems.org
17
-
18
- #### Globally
19
-
20
- ```sh
21
- gem i omg-audit-group
22
- ```
23
-
24
- #### In `Gemfile`
25
-
26
- ```ruby
27
- gem 'omg-audit-group'
28
- ```
29
-
30
- ### Testing locally
31
- ```sh
32
- # Build gem
33
- rake build
34
-
35
- # Install gem
36
- ## From this directory
37
- rake install
38
-
39
- ## From other directory
40
- gem i -l /path/to/this/folder/omg-audit-group-0.1.0.gem
41
- ```
42
-
43
- ## Usage
44
-
45
- For convenience, the following operations are delegated from the `AuditGroup` module to the `AuditGroup::Request` class:
46
-
47
- - `new`
48
- - `request`
49
- - `current`
50
- - `request_uuid`
51
- - `audits`
52
-
53
- ### Using class methods
54
-
55
- ```ruby
56
- # Group operations under the same request_uuid
57
- AuditGroup.request { perform_some_operations }
58
-
59
- # View the last request_uuid
60
- AuditGroup.request_uuid
61
-
62
- # View the audits from the last request
63
- AuditGroup.audits
64
- ```
65
-
66
- ### Saving Request object for later use
67
-
68
- ```ruby
69
- # Group operations under the same request_uuid
70
- request = AuditGroup.request { perform_some_operations }
71
-
72
- # View the last request_uuid
73
- request.request_uuid
74
-
75
- # View the audits from the last request
76
- request.audits
77
- ```
78
-
79
- ### Instantiating a group
80
-
81
- You can also create separate `AuditGroup::Request` objects to reuse.
82
-
83
- ```ruby
84
- group = AuditGroup.new
85
- group.request { perform_some_operations }
86
- ...
87
- group.request { perform_more_operations }
88
- group.audits
89
- ```
90
-
91
- ## Running tests
92
-
93
- ```ruby
94
- rspec
95
-
96
- # or
97
- bundle exec rspec
98
- ```
data/Rakefile DELETED
@@ -1,17 +0,0 @@
1
- require_relative 'lib/audit_group'
2
-
3
- require 'rake'
4
-
5
- task :spec do
6
- sh 'bundle exec rspec'
7
- end
8
-
9
- task :build do
10
- sh 'gem build audit_group.gemspec'
11
- end
12
-
13
- task :push do
14
- sh "gem push omg-audit-group-#{AuditGroup::VERSION}.gem"
15
- end
16
-
17
- task :publish => :push
data/audit_group.gemspec DELETED
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'lib/audit_group'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'omg-audit-group'
7
- spec.version = AuditGroup::VERSION
8
- spec.authors = ['Matthew Greenfield']
9
- spec.email = ['mattgreenfield1@gmail.com']
10
-
11
- spec.summary = 'Groups transactions from the `audited` gem into a single request_uuid'
12
- spec.description = 'Create, update, and delete records within a block, assign ' \
13
- 'the same request_uuid to them, and be able to easily view ' \
14
- 'and undo them'
15
-
16
- spec.homepage = 'https://github.com/omgreenfield/omg-util/tree/main/audit_group'
17
- spec.license = 'MIT'
18
- spec.required_ruby_version = '>= 2.7.0'
19
-
20
- spec.metadata['homepage_uri'] = spec.homepage
21
- spec.metadata['rubygems_mfa_required'] = 'true'
22
-
23
- spec.files = Dir.chdir(__dir__) do
24
- `git ls-files -z`.split("\x0").reject do |f|
25
- (File.expand_path(f) == __FILE__) ||
26
- f.start_with?(*%w[spec/.git .github Gemfile])
27
- end
28
- end
29
- spec.require_paths = ['lib']
30
-
31
- spec.add_dependency 'activesupport', '>= 6.0', '< 8.0'
32
- spec.add_dependency 'audited', '>= 4.9', '< 6.0'
33
- end
@@ -1,108 +0,0 @@
1
- RSpec.describe AuditGroup do
2
- describe 'class methods' do
3
- describe '.current' do
4
- it 'returns the last request created' do
5
- request = described_class.request {}
6
- expect(described_class.current).to eq(request)
7
- end
8
- end
9
-
10
- describe '.set_request_uuid' do
11
- it "sets the Audit store's current_request_uuid" do
12
- described_class.set_request_uuid('123')
13
- expect(Audited.store[:current_request_uuid]).to eq('123')
14
-
15
- described_class.set_request_uuid
16
- expect(Audited.store[:current_request_uuid]).to match(/\A\h{8}-\h{4}-\h{4}-\h{4}-\h{12}\z/)
17
- end
18
- end
19
-
20
- describe '.unset_request_uuid' do
21
- it "resets the Audit store's current_request_uuid" do
22
- Audited.store[:current_request_uuid] = '123'
23
- described_class.unset_request_uuid
24
- expect(Audited.store[:current_request_uuid]).to be_nil
25
- end
26
- end
27
-
28
- describe '.reset' do
29
- it 'unsets the request_uuid and current request' do
30
- described_class.set_request_uuid('123')
31
- described_class.current = 'some request'
32
-
33
- expect(Audited.store[:current_request_uuid]).to eq('123')
34
- expect(described_class.current).to eq('some request')
35
-
36
- described_class.reset
37
-
38
- expect(Audited.store[:current_request_uuid]).to be_nil
39
- expect(described_class.current).to be_nil
40
- end
41
- end
42
-
43
- describe '.request' do
44
- it 'raises an ArgumentError if no block is given and no active group' do
45
- expect { described_class.request }.to raise_error(ArgumentError, 'No block given and no active group')
46
- end
47
-
48
- it 'creates a new request if block is given' do
49
- expect { |block| described_class.request(&block) }.to yield_control
50
- end
51
- end
52
-
53
- describe '.request_uuid' do
54
- it 'delegates to current' do
55
- described_class.request {}
56
- expect(described_class.request_uuid).to eq(described_class.current.request_uuid)
57
- end
58
- end
59
-
60
- describe '.audits' do
61
- it 'delegates to current' do
62
- described_class.new('123')
63
- audited_audit = class_double('Audited::Audit').as_stubbed_const
64
- expect(audited_audit).to receive(:where).with(request_uuid: '123').and_return('some audits')
65
- expect(described_class.audits).to eq('some audits')
66
- end
67
- end
68
- end
69
-
70
- describe 'instance methods' do
71
- describe '#initialize' do
72
- it 'sets the request_uuid and current request' do
73
- request = described_class.new('123')
74
- expect(request.request_uuid).to eq('123')
75
- expect(described_class.current).to eq(request)
76
- end
77
- end
78
-
79
- describe '#request' do
80
- it 'sets the current_request_uuid, calls the block, then resets current_request_uuid' do
81
- request = described_class.new('123')
82
-
83
- request.request do
84
- expect(Audited.store[:current_request_uuid]).to eq('123')
85
- end
86
-
87
- expect(Audited.store[:current_request_uuid]).to be_nil
88
- end
89
- end
90
-
91
- describe '#set_request_uuid' do
92
- it 'delegates to class' do
93
- request = described_class.new('123')
94
- expect(request).to receive(:set_request_uuid)
95
- request.set_request_uuid
96
- end
97
- end
98
-
99
- describe '#audits' do
100
- it 'returns audits with request_uuid' do
101
- request = described_class.new('123')
102
- audited_audit = class_double('Audited::Audit').as_stubbed_const
103
- expect(audited_audit).to receive(:where).with(request_uuid: '123').and_return('some audits')
104
- expect(request.audits).to eq('some audits')
105
- end
106
- end
107
- end
108
- end
data/spec/spec_helper.rb DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'audit_group'
4
-
5
- RSpec.configure do |config|
6
- # Enable flags like --only-failures and --next-failure
7
- config.example_status_persistence_file_path = '.rspec_status'
8
-
9
- # Disable RSpec exposing methods globally on `Module` and `main`
10
- config.disable_monkey_patching!
11
-
12
- config.expect_with :rspec do |c|
13
- c.syntax = :expect
14
- end
15
- end