audited_async 0.2.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: 6149810ee92e27f07045b28bea8cf9b1ad380a36f45fdf4d94b61889d58a6969
4
- data.tar.gz: ec08ea6bbdea4f847437c322ef94aafef077f727fe2e0cdc2f1c0a56a3258a7c
3
+ metadata.gz: c51c75ec3c4c198def1ef6c8ba7d097d3082c34c50e2d9f21c32c11eccd47dff
4
+ data.tar.gz: 5f07254004b8529bf89fc45135a969c4a908b5ead5e8fcb474101bfa9ad02340
5
5
  SHA512:
6
- metadata.gz: 7378037f865f092a172bdc88065bc633145684ae122a8ff64f81873b21e204cb682a60cd0914a105bf1c36ab03e085f86587cc8d34f902f0a37b5abb7156e749
7
- data.tar.gz: c1b43a9aa415b486bb2ce1c64859a222193a6c124f68cb3a95ca1f091a313d5e0fef9d1b9bd990a8c473a7c6947f34dbe9a7b8f79582f8ec4d54d8184bdfdb1b
6
+ metadata.gz: 42fb8fa07014009ae4e1dbc60d9da873db89b0f6d11638ffd7af74c6dcd48a646be6cdac074652dba0f788d49e3599aa2e9bd20295d49ee60f646aa034622ee1
7
+ data.tar.gz: 2eeb65827e23e29d82b691501eaca6341d1aea260a9512e4e364bfdc3680bfd31c7fbd76b6aceff00034c7ea59d0c9dfb9eac92362cba88783d94576db253d13
@@ -0,0 +1,39 @@
1
+ version: 2
2
+ jobs:
3
+ build:
4
+ docker:
5
+ - image: circleci/ruby:2.5.1-node-browsers
6
+ working_directory: ~/audited_async
7
+ parallelism: 4
8
+ branches:
9
+ only: master
10
+ steps:
11
+ - checkout
12
+
13
+ - restore_cache:
14
+ keys:
15
+ - audited_async-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
16
+ - audited_async-master-{{ checksum "Gemfile.lock" }}
17
+
18
+ - run:
19
+ name: Bundle Install
20
+ command: |
21
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
22
+
23
+ - save_cache:
24
+ paths:
25
+ - ./vendor/bundle
26
+ key: audited_async-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
27
+
28
+ - run:
29
+ name: Test Suite
30
+ command: |
31
+ mkdir /tmp/test-results
32
+
33
+ bundle exec rspec --format progress \
34
+ --out /tmp/test-results/rspec.xml \
35
+ --format progress
36
+
37
+ - run:
38
+ name: Test Coverage Report
39
+ command: bundle exec codeclimate-test-reporter
@@ -1,164 +1,82 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- audited_async (0.2.0)
4
+ audited_async (0.2.1)
5
+ activejob
5
6
  audited (>= 4.0)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- actioncable (5.2.0)
11
- actionpack (= 5.2.0)
12
- nio4r (~> 2.0)
13
- websocket-driver (>= 0.6.1)
14
- actionmailer (5.2.0)
15
- actionpack (= 5.2.0)
16
- actionview (= 5.2.0)
17
- activejob (= 5.2.0)
18
- mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 2.0)
20
- actionpack (5.2.0)
21
- actionview (= 5.2.0)
22
- activesupport (= 5.2.0)
23
- rack (~> 2.0)
24
- rack-test (>= 0.6.3)
25
- rails-dom-testing (~> 2.0)
26
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (5.2.0)
28
- activesupport (= 5.2.0)
29
- builder (~> 3.1)
30
- erubi (~> 1.4)
31
- rails-dom-testing (~> 2.0)
32
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
- activejob (5.2.0)
34
- activesupport (= 5.2.0)
11
+ activejob (5.2.3)
12
+ activesupport (= 5.2.3)
35
13
  globalid (>= 0.3.6)
36
- activemodel (5.2.0)
37
- activesupport (= 5.2.0)
38
- activerecord (5.2.0)
39
- activemodel (= 5.2.0)
40
- activesupport (= 5.2.0)
14
+ activemodel (5.2.3)
15
+ activesupport (= 5.2.3)
16
+ activerecord (5.2.3)
17
+ activemodel (= 5.2.3)
18
+ activesupport (= 5.2.3)
41
19
  arel (>= 9.0)
42
- activestorage (5.2.0)
43
- actionpack (= 5.2.0)
44
- activerecord (= 5.2.0)
45
- marcel (~> 0.3.1)
46
- activesupport (5.2.0)
20
+ activesupport (5.2.3)
47
21
  concurrent-ruby (~> 1.0, >= 1.0.2)
48
22
  i18n (>= 0.7, < 2)
49
23
  minitest (~> 5.1)
50
24
  tzinfo (~> 1.1)
51
25
  arel (9.0.0)
52
26
  ast (2.4.0)
53
- audited (4.7.1)
54
- activerecord (>= 4.0, < 5.3)
55
- builder (3.2.3)
56
- codeclimate-test-reporter (1.0.8)
57
- simplecov (<= 0.13)
58
- concurrent-ruby (1.0.5)
59
- crass (1.0.4)
27
+ audited (4.9.0)
28
+ activerecord (>= 4.2, < 6.1)
29
+ concurrent-ruby (1.1.5)
60
30
  diff-lcs (1.3)
61
- docile (1.1.5)
62
- erubi (1.7.1)
63
- globalid (0.4.1)
31
+ globalid (0.4.2)
64
32
  activesupport (>= 4.2.0)
65
- i18n (1.0.1)
33
+ i18n (1.6.0)
66
34
  concurrent-ruby (~> 1.0)
67
- json (2.1.0)
68
- loofah (2.2.2)
69
- crass (~> 1.0.2)
70
- nokogiri (>= 1.5.9)
71
- mail (2.7.0)
72
- mini_mime (>= 0.1.1)
73
- marcel (0.3.2)
74
- mimemagic (~> 0.3.2)
75
- method_source (0.9.0)
76
- mimemagic (0.3.2)
77
- mini_mime (1.0.0)
78
- mini_portile2 (2.3.0)
35
+ jaro_winkler (1.5.3)
79
36
  minitest (5.11.3)
80
- nio4r (2.3.1)
81
- nokogiri (1.8.2)
82
- mini_portile2 (~> 2.3.0)
83
- parallel (1.12.1)
84
- parser (2.5.1.0)
37
+ parallel (1.17.0)
38
+ parser (2.6.3.0)
85
39
  ast (~> 2.4.0)
86
- powerpack (0.1.1)
87
- rack (2.0.5)
88
- rack-test (1.0.0)
89
- rack (>= 1.0, < 3)
90
- rails (5.2.0)
91
- actioncable (= 5.2.0)
92
- actionmailer (= 5.2.0)
93
- actionpack (= 5.2.0)
94
- actionview (= 5.2.0)
95
- activejob (= 5.2.0)
96
- activemodel (= 5.2.0)
97
- activerecord (= 5.2.0)
98
- activestorage (= 5.2.0)
99
- activesupport (= 5.2.0)
100
- bundler (>= 1.3.0)
101
- railties (= 5.2.0)
102
- sprockets-rails (>= 2.0.0)
103
- rails-dom-testing (2.0.3)
104
- activesupport (>= 4.2.0)
105
- nokogiri (>= 1.6)
106
- rails-html-sanitizer (1.0.4)
107
- loofah (~> 2.2, >= 2.2.2)
108
- railties (5.2.0)
109
- actionpack (= 5.2.0)
110
- activesupport (= 5.2.0)
111
- method_source
112
- rake (>= 0.8.7)
113
- thor (>= 0.18.1, < 2.0)
40
+ rack (2.0.7)
114
41
  rainbow (3.0.0)
115
- rake (12.3.1)
116
- rspec (3.7.0)
117
- rspec-core (~> 3.7.0)
118
- rspec-expectations (~> 3.7.0)
119
- rspec-mocks (~> 3.7.0)
120
- rspec-core (3.7.1)
121
- rspec-support (~> 3.7.0)
122
- rspec-expectations (3.7.0)
42
+ rake (12.3.3)
43
+ rspec (3.8.0)
44
+ rspec-core (~> 3.8.0)
45
+ rspec-expectations (~> 3.8.0)
46
+ rspec-mocks (~> 3.8.0)
47
+ rspec-core (3.8.2)
48
+ rspec-support (~> 3.8.0)
49
+ rspec-expectations (3.8.4)
123
50
  diff-lcs (>= 1.2.0, < 2.0)
124
- rspec-support (~> 3.7.0)
125
- rspec-mocks (3.7.0)
51
+ rspec-support (~> 3.8.0)
52
+ rspec-mocks (3.8.1)
126
53
  diff-lcs (>= 1.2.0, < 2.0)
127
- rspec-support (~> 3.7.0)
128
- rspec-support (3.7.1)
129
- rubocop (0.55.0)
54
+ rspec-support (~> 3.8.0)
55
+ rspec-support (3.8.2)
56
+ rubocop (0.71.0)
57
+ jaro_winkler (~> 1.5.1)
130
58
  parallel (~> 1.10)
131
- parser (>= 2.5)
132
- powerpack (~> 0.1)
59
+ parser (>= 2.6)
133
60
  rainbow (>= 2.2.2, < 4.0)
134
61
  ruby-progressbar (~> 1.7)
135
- unicode-display_width (~> 1.0, >= 1.0.1)
136
- rubocop-rspec (1.25.1)
137
- rubocop (>= 0.53.0)
138
- ruby-progressbar (1.9.0)
139
- simplecov (0.13.0)
140
- docile (~> 1.1.0)
141
- json (>= 1.8, < 3)
142
- simplecov-html (~> 0.10.0)
143
- simplecov-html (0.10.2)
144
- sprockets (3.7.1)
145
- concurrent-ruby (~> 1.0)
146
- rack (> 1, < 3)
147
- sprockets-rails (3.2.1)
148
- actionpack (>= 4.0)
149
- activesupport (>= 4.0)
150
- sprockets (>= 3.0.0)
151
- thor (0.20.0)
62
+ unicode-display_width (>= 1.4.0, < 1.7)
63
+ rubocop-performance (1.4.1)
64
+ rubocop (>= 0.71.0)
65
+ rubocop-rails (2.0.1)
66
+ rack (>= 1.1)
67
+ rubocop (>= 0.70.0)
68
+ rubocop-rspec (1.35.0)
69
+ rubocop (>= 0.60.0)
70
+ ruby-progressbar (1.10.1)
152
71
  thread_safe (0.3.6)
153
72
  tzinfo (1.2.5)
154
73
  thread_safe (~> 0.1)
155
- unicode-display_width (1.3.2)
156
- websocket-driver (0.7.0)
157
- websocket-extensions (>= 0.1.0)
158
- websocket-extensions (0.1.3)
159
- wonder-ruby-style (0.54.0)
160
- rubocop (~> 0.49)
161
- rubocop-rspec (~> 1.15)
74
+ unicode-display_width (1.6.0)
75
+ wonder-ruby-style (0.71.0)
76
+ rubocop (= 0.71.0)
77
+ rubocop-performance
78
+ rubocop-rails
79
+ rubocop-rspec
162
80
 
163
81
  PLATFORMS
164
82
  ruby
@@ -166,11 +84,9 @@ PLATFORMS
166
84
  DEPENDENCIES
167
85
  audited_async!
168
86
  bundler
169
- codeclimate-test-reporter
170
- rails
171
87
  rake
172
88
  rspec
173
89
  wonder-ruby-style
174
90
 
175
91
  BUNDLED WITH
176
- 1.16.1
92
+ 1.17.3
data/README.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # AuditedAsync
2
2
 
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/2d4899ab63fcea8a9144/maintainability)](https://codeclimate.com/github/leonardofalk/audited_async/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/2d4899ab63fcea8a9144/test_coverage)](https://codeclimate.com/github/leonardofalk/audited_async/test_coverage)
4
+ [![CircleCI](https://circleci.com/gh/leonardofalk/audited_async.svg?style=svg)](https://circleci.com/gh/leonardofalk/audited_async)
4
5
 
5
- AuditedAsync is an addon for audited gem which allows to create audits asynchronously using ActiveJob.
6
+ AuditedAsync is an extension for the [audited](https://github.com/collectiveidea/audited) gem which allows to create audits asynchronously using ActiveJob.
6
7
 
7
- It's currently under initial development and I strongly recommend you do not use it in production until it reaches a stable version.
8
+ It works by safely injecting the `async` option into audited model option using functional programming. If enabled, it'll move audit creation logic into an ActiveJob instance, then it's sent to the queue to be executed later.
8
9
 
9
10
  ## Installation
10
11
 
@@ -27,7 +28,18 @@ class Post < ApplicationRecord
27
28
  end
28
29
  ```
29
30
 
30
- All done! Although you can configure some stuff, check below.
31
+ Depending on your active job adapter, you may need to make the queue name visible to the adapter.
32
+
33
+ ### Sidekiq
34
+
35
+ ```yaml
36
+ # config/sidekiq.yml
37
+ ...
38
+ :queues:
39
+ - [audits, 1] # add this line
40
+ ```
41
+
42
+ All done! Although you can optionally configure some more stuff, check below.
31
43
 
32
44
  #### Enabling it programmatically
33
45
 
@@ -35,7 +47,7 @@ All done! Although you can configure some stuff, check below.
35
47
  # config/initializers/audited_async.rb
36
48
 
37
49
  AuditedAsync.configure do |config|
38
- config.enabled = Rails.env.production?
50
+ config.enabled = Rails.env.production?
39
51
  end
40
52
  ```
41
53
 
@@ -46,6 +58,7 @@ end
46
58
 
47
59
  AuditedAsync.configure do |config|
48
60
  config.job_name = 'JobityJob'
61
+ config.job_options = { wait: 1.second }
49
62
  end
50
63
  ```
51
64
 
@@ -79,17 +92,24 @@ class JobityJob < ApplicationJob
79
92
  end
80
93
  ```
81
94
 
82
- To see how the default job performs, [look here](./lib/audited_async/audit_async_job).
95
+ ### Limitations
83
96
 
84
- ## How It Works
97
+ - Audits for destroying an object are subject to soft delete, hard deleted records are ignored, so if you are using some library like [paranoia](https://github.com/rubysherpas/paranoia) or [discard](https://github.com/jhawthorn/discard), destroying an object will still create audits, regardless model scoping.
98
+ - Attributes passed down to job are limited to serializable attributes, you can find a [list here](https://edgeguides.rubyonrails.org/active_job_basics.html#supported-types-for-arguments), other than that would throw an error.
85
99
 
86
- AuditedAsync safely inject the `async` option into audited model option using functional programming. If enabled, it'll move audit creation logic into an ActiveJob instance, then it's sent to the queue to be executed later.
100
+ To see how the default job performs, [look here](./lib/audited_async/audit_async_job.rb).
101
+
102
+ ## Sample App
103
+
104
+ https://github.com/leonardofalk/audited_async_sample.git
87
105
 
88
106
  ## Development
89
107
 
90
- 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.
108
+ Check out the repository, execute `bundle install` and you're good to go.
109
+
110
+ ## Testing
91
111
 
92
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
112
+ There are some unit tests now but integration tests are missing. You can ran the suite by executing `rspec`.
93
113
 
94
114
  ## Contributing
95
115
 
@@ -97,7 +117,7 @@ Bug reports and pull requests are welcome on GitHub at <https://github.com/leona
97
117
 
98
118
  ## To Do
99
119
 
100
- - [ ] Elaborate more test cases.
120
+ - [ ] Elaborate integration test cases.
101
121
 
102
122
  ## License
103
123
 
@@ -23,11 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = %w[lib]
24
24
 
25
25
  spec.add_dependency 'audited', '>= 4.0'
26
+ spec.add_dependency 'activejob'
26
27
 
27
28
  spec.add_development_dependency 'bundler'
28
29
  spec.add_development_dependency 'rake'
29
30
  spec.add_development_dependency 'rspec'
30
31
  spec.add_development_dependency 'wonder-ruby-style'
31
- spec.add_development_dependency 'rails'
32
- spec.add_development_dependency 'codeclimate-test-reporter'
33
32
  end
@@ -5,14 +5,30 @@ require 'audited_async/audit_async_job'
5
5
 
6
6
  module AuditedAsync
7
7
  class << self
8
- def configure
9
- @configurator ||= AuditedAsync::Configurator.new
8
+ def logger
9
+ @logger ||= begin
10
+ if defined?(::Rails)
11
+ ::Rails.logger
12
+ else
13
+ require 'logger'
14
+
15
+ Logger.new
16
+ end
17
+ end
18
+ end
10
19
 
11
- yield @configurator
20
+ def configure
21
+ yield configurator
12
22
  end
13
23
 
14
24
  def config
15
- @configurator
25
+ configurator
26
+ end
27
+
28
+ private
29
+
30
+ def configurator
31
+ @configurator ||= AuditedAsync::Configurator.new
16
32
  end
17
33
  end
18
34
  end
@@ -49,8 +65,8 @@ module Audited::Auditor::AuditedInstanceMethods
49
65
  define_method :audit_update do
50
66
  return _audit_update.bind(self).() unless audited_async_enabled?
51
67
 
52
- unless (changes = audited_changes).empty? && audit_comment.blank?
53
- perform_async_audit 'update'
68
+ unless (changes = audited_changes).empty? && (audit_comment.blank? || audited_options[:update_with_comment_only] == false)
69
+ perform_async_audit('update', changes)
54
70
  end
55
71
  end
56
72
 
@@ -60,11 +76,14 @@ module Audited::Auditor::AuditedInstanceMethods
60
76
  perform_async_audit 'destroy' unless new_record?
61
77
  end
62
78
 
63
- def perform_async_audit(method)
64
- AuditedAsync.config.job.perform_later class_name: self.class.name,
65
- record_id: send(self.class.primary_key.to_sym),
66
- action: method,
67
- audited_changes: audited_attributes.to_json,
68
- comment: audit_comment
79
+ def perform_async_audit(method, changes = nil)
80
+ AuditedAsync.config
81
+ .job
82
+ .set(AuditedAsync.config.job_options)
83
+ .perform_later class_name: self.class.name,
84
+ record_id: send(self.class.primary_key.to_sym),
85
+ action: method,
86
+ audited_changes: (changes || audited_attributes).to_json,
87
+ comment: audit_comment
69
88
  end
70
89
  end
@@ -3,10 +3,27 @@ require 'active_job'
3
3
  class AuditedAsync::AuditAsyncJob < ActiveJob::Base
4
4
  queue_as :audits
5
5
 
6
- def perform(attributes)
7
- klass = attributes.delete(:class_name).constantize
8
- model = klass.find_by(klass.primary_key.to_sym => attributes.delete(:record_id))
9
- attributes[:audited_changes] = JSON.parse(attributes[:audited_changes])
10
- model.send(:write_audit, attributes)
6
+ def perform(args)
7
+ klass, id, changes = extract_auditing_elements(args)
8
+
9
+ record = klass.unscoped.find_by(klass.primary_key.to_sym => id)
10
+
11
+ return alert_record_not_found(klass, id) unless record
12
+
13
+ record.send(:write_audit, changes)
14
+ end
15
+
16
+ private
17
+
18
+ def extract_auditing_elements(args)
19
+ return [args[:class_name].safe_constantize, args[:record_id], extract_audit_changes(args)]
20
+ end
21
+
22
+ def extract_audit_changes(args)
23
+ args.except(:class_name, :record_id).merge(audited_changes: JSON.parse(args[:audited_changes]))
24
+ end
25
+
26
+ def alert_record_not_found(klass, id)
27
+ AuditedAsync.logger.error "AuditedAsync: #{klass} record with id '#{id}' not found, ignoring audit write."
11
28
  end
12
29
  end
@@ -1,10 +1,15 @@
1
1
  module AuditedAsync
2
2
  class Configurator
3
- attr_accessor :enabled, :job_name
3
+ attr_accessor :enabled, :job_name, :job_options
4
4
 
5
5
  def initialize
6
- @enabled = true
7
- @job_name = 'AuditedAsync::AuditAsyncJob'
6
+ @enabled = true
7
+ @job_name = 'AuditedAsync::AuditAsyncJob'
8
+ @job_options = { wait: 1.second }
9
+ end
10
+
11
+ def job_options
12
+ @job_options || {}
8
13
  end
9
14
 
10
15
  alias enabled? enabled
@@ -1,3 +1,3 @@
1
1
  module AuditedAsync
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audited_async
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonardo Falk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-04 00:00:00.000000000 Z
11
+ date: 2019-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: audited
@@ -25,27 +25,13 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: activejob
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
@@ -53,7 +39,7 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: rspec
42
+ name: bundler
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
@@ -67,7 +53,7 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: wonder-ruby-style
56
+ name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -81,7 +67,7 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: rails
70
+ name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -95,7 +81,7 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: codeclimate-test-reporter
84
+ name: wonder-ruby-style
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - ">="
@@ -115,6 +101,7 @@ executables: []
115
101
  extensions: []
116
102
  extra_rdoc_files: []
117
103
  files:
104
+ - ".circleci/config.yml"
118
105
  - ".gitignore"
119
106
  - ".rspec"
120
107
  - ".rubocop.yml"
@@ -150,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
137
  - !ruby/object:Gem::Version
151
138
  version: '0'
152
139
  requirements: []
153
- rubyforge_project:
154
- rubygems_version: 2.7.6
140
+ rubygems_version: 3.0.4
155
141
  signing_key:
156
142
  specification_version: 4
157
143
  summary: Execute audited asynchronously with ActiveJob.