action_reporter 1.2.0 → 1.3.1

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: a55d0da65743cb598db1ca915e69704f6fd3871921b015193d6445eaf5f1702b
4
- data.tar.gz: 469868c0928f40fbefaabf40a797ce86d3b3aaa16c2f283faaee8dc2ee4a4ee5
3
+ metadata.gz: 9d3dfd3e7d53c8c373060d4cec367ae36d7da5bfa82c1f2afb446cd9d2951b7e
4
+ data.tar.gz: e1e19a9af94db35d31f2397fdbd7869c4db233d2fe4aee5ae3e2175fb635ef02
5
5
  SHA512:
6
- metadata.gz: 9a280cc47e2b244299dd1279e480b1b65454e810f99ad675f5abfefe4b93dc8b80ed2e84816f28222c11d10977384d5c41fb5c23bcbe53f67d517c28b68dbddb
7
- data.tar.gz: b80979582abbedc6db34ba723a8f225200e37c3e2fe5bf5eddd05a4d4301aef0a442fcd97002ac94dc6f4d4fa7cdb383e591afad2108039cb8f80881eb7aeaf6
6
+ metadata.gz: ecc4cfbb31b122dc56564445b3532f812932095b6b26ae02f5b2f3d3121f80b6f293078a00b844d765a35c3ba292e0643ad2ea9354e249efc3ecd07f5d2e2e4b
7
+ data.tar.gz: e5995f6917729641362aa3ced9c36a35ab5875f5ee3fdbfb0a1ae33e9cb34cf4f592ddde9169aad75033a40edaebb88a6f86ca2e470b960b3a98dfe0e1775a37
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 1.3.1
2
+
3
+ * Update gem configuration
4
+
5
+ # 1.3.0
6
+
7
+ * Update ruby version to 3.2.2
8
+ * Update dependencies to latest
9
+
1
10
  # 1.2.0
2
11
 
3
12
  * Major fixes for class resolvers
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # action_reporter
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/action_reporter.svg)](https://badge.fury.io/rb/action_reporter) [![Test Status](https://github.com/amkisko/action_reporter/actions/workflows/test.yml/badge.svg)](https://github.com/amkisko/action_reporter/actions/workflows/test.yml)
3
+ [![Gem Version](https://badge.fury.io/rb/action_reporter.svg)](https://badge.fury.io/rb/action_reporter) [![Test Status](https://github.com/amkisko/action_reporter.rb/actions/workflows/test.yml/badge.svg)](https://github.com/amkisko/action_reporter.rb/actions/workflows/test.yml)
4
4
 
5
5
  Ruby wrapper for multiple reporting services.
6
6
 
@@ -48,13 +48,14 @@ ActionReporter.enabled_reporters = [
48
48
  Then you can use it in your code:
49
49
 
50
50
  ```ruby
51
- ActionReporter.context(audited_user: current_user)
51
+ ActionReporter.audited_user = current_user
52
+ ActionReporter.context(entry_id: entry.id)
52
53
  ActionReporter.notify('Something went wrong', context: { record: record })
53
54
  ```
54
55
 
55
56
  ## Contributing
56
57
 
57
- Bug reports and pull requests are welcome on GitHub at https://github.com/amkisko/action_reporter
58
+ Bug reports and pull requests are welcome on GitHub at https://github.com/amkisko/action_reporter.rb
58
59
 
59
60
  ## Publishing
60
61
 
@@ -1,29 +1,41 @@
1
- Gem::Specification.new do |s|
2
- s.name = "action_reporter"
3
- s.version = "1.2.0"
4
-
5
- s.license = "MIT"
6
-
7
- s.platform = Gem::Platform::RUBY
8
-
9
- s.authors = ["Andrei Makarov"]
10
- s.email = ["andrei@kiskolabs.com"]
11
- s.homepage = "https://github.com/amkisko/action_reporter"
12
- s.description = "Ruby wrapper for multiple reporting services"
13
- s.summary = "See description"
14
- s.metadata = {
15
- "homepage" => "https://github.com/amkisko/action_reporter",
16
- "source_code_uri" => "https://github.com/amkisko/action_reporter",
17
- "bug_tracker_uri" => "https://github.com/amkisko/action_reporter/issues",
18
- "changelog_uri" => "https://github.com/amkisko/action_reporter/blob/main/CHANGELOG.md",
1
+ Gem::Specification.new do |gem|
2
+ gem.name = "action_reporter"
3
+ gem.version = File.read(File.expand_path('../lib/action_reporter.rb', __FILE__)).match(/VERSION\s*=\s*'(.*?)'/)[1]
4
+
5
+ gem.license = "MIT"
6
+
7
+ gem.platform = Gem::Platform::RUBY
8
+
9
+ repository_url = "https://github.com/amkisko/action_reporter.rb"
10
+
11
+ gem.authors = ["Andrei Makarov"]
12
+ gem.email = ["andrei@kiskolabs.com"]
13
+ gem.homepage = repository_url
14
+ gem.description = "Ruby wrapper for multiple reporting services"
15
+ gem.summary = "See description"
16
+ gem.metadata = {
17
+ "homepage" => repository_url,
18
+ "source_code_uri" => repository_url,
19
+ "bug_tracker_uri" => "#{repository_url}/issues",
20
+ "changelog_uri" => "#{repository_url}/blob/main/CHANGELOG.md",
19
21
  "rubygems_mfa_required" => "true"
20
22
  }
21
23
 
22
- s.files = Dir.glob("lib/**/*.rb") + Dir.glob("bin/**/*") + %w(CHANGELOG.md LICENSE.md README.md action_reporter.gemspec)
24
+ gem.files = Dir.glob("lib/**/*.rb") + Dir.glob("bin/**/*") + %w(CHANGELOG.md LICENSE.md README.md action_reporter.gemspec)
23
25
 
24
26
  # s.bindir = "bin"
25
27
  # s.executables = ["action_reporter"]
26
28
 
27
- s.required_ruby_version = ">= 1.9.3"
28
- s.require_path = "lib"
29
+ gem.required_ruby_version = ">= 1.9.3"
30
+ gem.require_path = "lib"
31
+
32
+ gem.add_development_dependency 'rspec', '~> 3'
33
+ gem.add_development_dependency 'webmock', '~> 3'
34
+ gem.add_development_dependency 'pry-byebug', '~> 3'
35
+
36
+ gem.add_runtime_dependency 'rails', '~> 7'
37
+ gem.add_runtime_dependency 'audited', '~> 5'
38
+ gem.add_runtime_dependency 'honeybadger', '~> 5'
39
+ gem.add_runtime_dependency 'sentry-ruby', '~> 5'
40
+ gem.add_runtime_dependency 'scout_apm', '~> 5'
29
41
  end
@@ -1,6 +1,6 @@
1
1
  module ActionReporter
2
2
  class AuditedReporter < Base
3
- class_accessor "Audited"
3
+ class_accessor "Audited", gem_spec: "audited (~> 5)"
4
4
 
5
5
  def notify(*)
6
6
  end
@@ -1,11 +1,22 @@
1
+ require_relative 'error'
2
+
1
3
  module ActionReporter
2
4
  class Base
3
- def self.class_accessor(class_name)
5
+ def self.class_accessor(class_name, gem_spec: nil)
4
6
  method_name = class_name.gsub("::", "_").downcase + "_class"
5
7
  define_method(method_name) do
6
- raise Error.new("#{class_name} is not defined") unless Object.const_defined?(class_name)
8
+ raise ActionReporter::Error.new("#{class_name} is not defined") unless Object.const_defined?(class_name)
7
9
 
8
- Object.const_get(class_name)
10
+ @@class_cache ||= {}
11
+ @@class_cache[class_name] ||= begin
12
+ if gem_spec
13
+ gem_name, version = gem_spec.scan(/([^(\s]+)\s*(?:\(([^)]+)\))?/).first
14
+ latest_spec = Gem.loaded_specs[gem_name]
15
+ version_satisfied = latest_spec && Gem::Requirement.new(version).satisfied_by?(latest_spec.version)
16
+ raise ActionReporter::Error.new("#{gem_spec} is not loaded") if !version_satisfied
17
+ end
18
+ Object.const_get(class_name)
19
+ end
9
20
  end
10
21
  end
11
22
 
@@ -1,6 +1,6 @@
1
1
  module ActionReporter
2
2
  class HoneybadgerReporter < Base
3
- class_accessor "Honeybadger"
3
+ class_accessor "Honeybadger", gem_spec: "honeybadger (~> 5)"
4
4
 
5
5
  def notify(error, context: {})
6
6
  new_context = transform_context(context)
@@ -1,7 +1,7 @@
1
1
  module ActionReporter
2
2
  class ScoutApmReporter < Base
3
- class_accessor "ScoutApm::Error"
4
- class_accessor "ScoutApm::Context"
3
+ class_accessor "ScoutApm::Error", gem_spec: "scout_apm (~> 5)"
4
+ class_accessor "ScoutApm::Context", gem_spec: "scout_apm (~> 5)"
5
5
 
6
6
  def notify(error, context: {})
7
7
  self.context(context)
@@ -1,6 +1,6 @@
1
1
  module ActionReporter
2
2
  class SentryReporter < Base
3
- class_accessor "Sentry"
3
+ class_accessor "Sentry", gem_spec: "sentry-ruby (~> 5)"
4
4
 
5
5
  def notify(error, context: {})
6
6
  sentry_class.with_scope do |temp_scope|
@@ -1,4 +1,3 @@
1
- require 'action_reporter/version'
2
1
  require 'action_reporter/utils'
3
2
  require 'action_reporter/base'
4
3
  require 'action_reporter/rails_reporter'
@@ -10,6 +9,8 @@ require 'action_reporter/audited_reporter'
10
9
  module ActionReporter
11
10
  module_function
12
11
 
12
+ VERSION = '1.3.1'
13
+
13
14
  AVAILABLE_REPORTERS = [
14
15
  ActionReporter::RailsReporter,
15
16
  ActionReporter::HoneybadgerReporter,
metadata CHANGED
@@ -1,15 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-20 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-08-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: webmock
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry-byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '7'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: audited
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: honeybadger
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '5'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sentry-ruby
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '5'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '5'
111
+ - !ruby/object:Gem::Dependency
112
+ name: scout_apm
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '5'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '5'
13
125
  description: Ruby wrapper for multiple reporting services
14
126
  email:
15
127
  - andrei@kiskolabs.com
@@ -30,15 +142,14 @@ files:
30
142
  - lib/action_reporter/scout_apm_reporter.rb
31
143
  - lib/action_reporter/sentry_reporter.rb
32
144
  - lib/action_reporter/utils.rb
33
- - lib/action_reporter/version.rb
34
- homepage: https://github.com/amkisko/action_reporter
145
+ homepage: https://github.com/amkisko/action_reporter.rb
35
146
  licenses:
36
147
  - MIT
37
148
  metadata:
38
- homepage: https://github.com/amkisko/action_reporter
39
- source_code_uri: https://github.com/amkisko/action_reporter
40
- bug_tracker_uri: https://github.com/amkisko/action_reporter/issues
41
- changelog_uri: https://github.com/amkisko/action_reporter/blob/main/CHANGELOG.md
149
+ homepage: https://github.com/amkisko/action_reporter.rb
150
+ source_code_uri: https://github.com/amkisko/action_reporter.rb
151
+ bug_tracker_uri: https://github.com/amkisko/action_reporter.rb/issues
152
+ changelog_uri: https://github.com/amkisko/action_reporter.rb/blob/main/CHANGELOG.md
42
153
  rubygems_mfa_required: 'true'
43
154
  post_install_message:
44
155
  rdoc_options: []
@@ -55,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
166
  - !ruby/object:Gem::Version
56
167
  version: '0'
57
168
  requirements: []
58
- rubygems_version: 3.3.3
169
+ rubygems_version: 3.4.19
59
170
  signing_key:
60
171
  specification_version: 4
61
172
  summary: See description
@@ -1,3 +0,0 @@
1
- module ActionReporter
2
- VERSION = '1.2.0'
3
- end