action_reporter 1.2.0 → 1.3.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: 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