razorrisk-core-diagnostics 0.2.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8cb8983ea3ea7fb82efa8fc51ca648ae188eacec
4
+ data.tar.gz: 89a05dfec7af4a985f6dd9317c391bdcf415cede
5
+ SHA512:
6
+ metadata.gz: 438b3586b47dbdc4b6009a7513994d3e0822eb297d657ebbcf34570dec9074515938127e91c02540a7a1c1c4b233f01fc84c66cec3afbd5d276c770f5dc92c94
7
+ data.tar.gz: a6adf56e798df7e7b985406f80455d85553cdf60204e061cb0a9bdf0d3a7e242ae841d958398ae467306be6b64f176f16ef5a9dfa6acbf5bed9519cb03999001
data/Rakefile ADDED
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ######################################################################## #
4
+ #
5
+ # Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
6
+ #
7
+ # ######################################################################## #
8
+
9
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
10
+
11
+ # ##########################################################
12
+ # bundler
13
+
14
+ require 'rubygems'
15
+ require 'bundler/setup'
16
+
17
+ # ######################################################################## #
18
+ # requires
19
+
20
+ require 'razor_risk/razor/control/rake_helpers/diagnostic_tasks'
21
+ require 'razor_risk/razor/control/rake_helpers/gem_tasks'
22
+ require 'razor_risk/razor/control/rake_helpers/task_helpers'
23
+
24
+ require 'rake'
25
+ require 'rake/clean'
26
+
27
+ # ##########################################################
28
+ # includes
29
+
30
+ include ::RazorRisk::Razor::Control # rubocop:todo Style/MixinUsage
31
+ include ::Pantheios # rubocop:todo Style/MixinUsage
32
+
33
+ # ##########################################################
34
+ # Constants
35
+
36
+ Spec = ::Gem::Specification.load(Dir['*.gemspec'].first)
37
+ LogDir = 'log' # rubocop:todo Naming/ConstantName
38
+ # rubocop:todo Naming/ConstantName
39
+ LogThresholds = %i[informational informational].freeze
40
+ # rubocop:enable Naming/ConstantName
41
+
42
+ # ##########################################################
43
+ # clean/clobber
44
+
45
+ Dir[
46
+ 'log',
47
+ 'doc',
48
+ ].each { |f| CLEAN << f }
49
+ Dir[
50
+ '.bundle',
51
+ 'vendor',
52
+ 'GEM_HOME',
53
+ '*.gem',
54
+ ].each { |f| CLOBBER << f }
55
+
56
+ # ##########################################################
57
+ # Tasks
58
+
59
+ desc 'Run tests'
60
+ task test: [:'gem:unit_test']
61
+
62
+ desc 'Build gem'
63
+ task :build_gem, [:path] => :'gem:build'
64
+
65
+ desc 'Builds the Razor EntityConnector Gem'
66
+ task :build, [:path] => [:build_gem]
67
+
68
+ desc 'Push the gem to the gem server.'
69
+ task deploy: :'gem:push'
70
+
71
+ # ##########################################################
72
+ # Hooks
73
+
74
+ task :default do
75
+ puts 'Run \'bundler exec rake --tasks\' to see available tasks'
76
+ end
77
+
78
+ task :first do
79
+ ::Rake::Task[:'diagnostics:init'].execute(
80
+ name: Spec.name,
81
+ version: Spec.version.to_s,
82
+ directory: LogDir,
83
+ thresholds: LogThresholds
84
+ )
85
+ end
86
+
87
+ RakeHelpers::TaskHelpers.add_hooks
88
+
89
+ # ############################## end of file ############################# #
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ######################################################################## #
4
+ # File: lib/razor_risk/core/diagnostics/exceptions/rrcs_basic_exception.rb
5
+ #
6
+ # Purpose: Definition of the
7
+ # ::RazorRisk::Core::Diagnostics::Exceptions::RRCSBaseException
8
+ # class
9
+ #
10
+ # Created: 10th December 2017
11
+ # Updated: 28th January 2018
12
+ #
13
+ # Author: Matthew Wilson
14
+ #
15
+ # Copyright (c) 2017-2018, Razor Risk Technologies Pty Ltd
16
+ # All rights reserved.
17
+ #
18
+ # ######################################################################## #
19
+
20
+ require 'razor_risk/core/diagnostics/throwable'
21
+ require 'xqsr3/diagnostics/exceptions/with_cause'
22
+
23
+ module RazorRisk
24
+ module Core
25
+ module Diagnostics
26
+ module Exceptions
27
+ # Root exception for all Razor Risk exceptions
28
+ class RRCSBaseException < StandardError
29
+ include Throwable
30
+
31
+ include ::Xqsr3::Diagnostics::Exceptions::WithCause
32
+
33
+ def self.new(*args)
34
+ if self == RRCSBaseException
35
+ raise NoMethodError, "private method `new' called for #{self}:Class"
36
+ end
37
+
38
+ super
39
+ end
40
+ # rubocop:todo Style/CommentedKeyword
41
+ end # class RRCSBaseException
42
+ # rubocop:enable Style/CommentedKeyword
43
+ end # module Exceptions # rubocop:todo Style/CommentedKeyword
44
+ end # module Diagnostics # rubocop:todo Style/CommentedKeyword
45
+ end
46
+ end
47
+
48
+ # ############################## end of file ############################# #
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'razor_risk/core/diagnostics/exceptions/rrcs_base_exception'
@@ -0,0 +1,150 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # ######################################################################## #
5
+ # File: razor_risk/core/diagnostics/logger.rb
6
+ #
7
+ # Purpose: Overriding pantheios.api module
8
+ #
9
+ # Author: Razor Risk
10
+ #
11
+ # Copyright (c) 2017-2018, Razor Risk Technologies Pty Ltd
12
+ # All rights reserved.
13
+ #
14
+ # ######################################################################## #
15
+
16
+ # requires
17
+
18
+ require 'pantheios'
19
+
20
+ # Module Definitions
21
+
22
+ module RazorRisk
23
+ module Core
24
+ module Diagnostics
25
+ module Logger
26
+ # Logs an arbitrary set of parameters at the given severity level
27
+ def log(severity, *args, &block)
28
+ return nil unless severity_logged? severity
29
+
30
+ log_or_trace_with_block_ 1, severity, args, &block
31
+ end
32
+
33
+ # Logs an array of parameters at the given severity level
34
+ def log_v(severity, argv, &block)
35
+ return nil unless severity_logged? severity
36
+
37
+ log_or_trace_with_block_ 1, severity, argv, &block
38
+ end
39
+
40
+ # Logs an arbitrary set of parameters at the Trace (:trace) level
41
+ def trace(*args, &block)
42
+ return nil unless tracing?
43
+
44
+ trace_with_block_ 1, args, &block
45
+ end
46
+
47
+ # Logs an array of parameters at the Trace (:trace) level
48
+ def trace_v(argv, &block)
49
+ return nil unless tracing?
50
+
51
+ trace_with_block_ 1, argv, &block
52
+ end
53
+
54
+ # Obtains a string-form of the timestamp
55
+ #
56
+ # Unless overridden, returns the value provided by
57
+ # +::Pantheios::Core::timestamp+
58
+ def timestamp(t)
59
+ ::Pantheios::Core.timestamp t, '%Y-%m-%dT%H:%M:%S.%6N'
60
+ end
61
+
62
+ # Obtains the process id
63
+ #
64
+ # Unless overridden, returns the value provided by
65
+ # +::Pantheios::Core::process_id+
66
+ def process_id
67
+ ::Pantheios::Core.process_id
68
+ end
69
+
70
+ # Obtains the program name
71
+ #
72
+ # Unless overridden, returns the value provided by
73
+ # +::Pantheios::Core::process_name+
74
+ def process_name
75
+ ::Pantheios::Core.process_name
76
+ end
77
+
78
+ # Obtains the string corresponding to the severity
79
+ #
80
+ # Unless overridden, returns the value provided by
81
+ # +::Pantheios::Core::severity_string+
82
+ def severity_string(severity)
83
+ sev = ::Pantheios::Core.severity_string severity
84
+ if %w[Alert Warning].include? sev
85
+ 'WARN'
86
+ elsif %w[Notice Informational].include? sev
87
+ 'INFO'
88
+ elsif %w[Debug-0 Debug-1 Debug-2 Debug-3 Debug-4].include? sev
89
+ 'DEBUG'
90
+ elsif sev == 'Critical'
91
+ 'FATAL'
92
+ elsif sev == 'Failure'
93
+ 'ERROR'
94
+ else
95
+ sev.upcase
96
+ end
97
+ end
98
+
99
+ # Obtains the thread id
100
+ #
101
+ # Unless overridden, returns the value provided by
102
+ # +::Pantheios::Core::thread_id+
103
+ def thread_id
104
+ ::Pantheios::Core.thread_id
105
+ end
106
+
107
+ def prefix_elements
108
+ %i[timestamp process_name process_id severity]
109
+ end
110
+
111
+ def prefix(t, severity)
112
+ prefix_elements.map do |el|
113
+ case el
114
+ when :timestamp
115
+ timestamp t
116
+
117
+ when :program_name, :process_name
118
+ process_name.upcase
119
+
120
+ when :process_id
121
+ 'RWS'
122
+
123
+ when :severity
124
+ severity_string severity
125
+ else
126
+ s = ::Symbol === el ? ":#{el}" : el.to_s
127
+ warn "ignoring unrecognised prefix_element '#{s}'"
128
+ nil
129
+ end
130
+ end.join(' ')
131
+ end
132
+
133
+ private
134
+
135
+ # Private implementation methods not meant for override
136
+ def log_or_trace_with_block_(call_depth, severity, argv, &block)
137
+ if severity == :trace
138
+ return ::Pantheios::Core.trace_v_impl self, 1 + call_depth, nil, severity, argv, &block
139
+ end
140
+
141
+ ::Pantheios::Core.log_v_impl self, severity, argv, &block
142
+ end
143
+
144
+ def trace_with_block_(call_depth, argv, &block)
145
+ ::Pantheios::Core.trace_v_impl self, 1 + call_depth, nil, :trace, argv, &block
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'razor_risk/core/diagnostics/logger/logger'
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ######################################################################## #
4
+ # File: lib/razor_risk/core/diagnostics/logic_erors/rrcs_logic_error.rb
5
+ #
6
+ # Purpose: Definition of the
7
+ # ::RazorRisk::Core::Diagnostics::LogicErrors::RRCSLogiError
8
+ # class
9
+ #
10
+ # Created: 10th December 2017
11
+ # Updated: 28th January 2018
12
+ #
13
+ # Author: Matthew Wilson
14
+ #
15
+ # Copyright (c) 2017-2018, Razor Risk Technologies Pty Ltd
16
+ # All rights reserved.
17
+ #
18
+ # ######################################################################## #
19
+
20
+ require 'razor_risk/core/diagnostics/throwable'
21
+ require 'xqsr3/diagnostics/exceptions/with_cause'
22
+
23
+ module RazorRisk
24
+ module Core
25
+ module Diagnostics
26
+ module LogicErrors
27
+ # Root exception for all Razor Risk logic errors
28
+ class RRCSLogicError < RuntimeError
29
+ include Throwable
30
+
31
+ include ::Xqsr3::Diagnostics::Exceptions::WithCause
32
+
33
+ def faulted?
34
+ true
35
+ end
36
+
37
+ def self.new(*args)
38
+ if self == RRCSLogicError
39
+ raise NoMethodError, "private method `new' called for #{self}:Class"
40
+ end
41
+
42
+ super
43
+ end
44
+ # rubocop:todo Style/CommentedKeyword
45
+ end # class RRCSLogicError
46
+ # rubocop:enable Style/CommentedKeyword
47
+ end # module LogicErrors # rubocop:todo Style/CommentedKeyword
48
+ end # module Diagnostics # rubocop:todo Style/CommentedKeyword
49
+ end
50
+ end
51
+
52
+ # ############################## end of file ############################# #
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'razor_risk/core/diagnostics/logic_errors/rrcs_logic_error'
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RazorRisk
4
+ module Core
5
+ module Diagnostics
6
+ # Inclusion module incorporated into all Razor Risk exceptions and logic
7
+ # errors, which provides all thrown types with the Exception Vocabulary
8
+ # espoused in the article "Exceptions : The Worst Form of 'Error' Handling
9
+ # Except For All The Others", Matthew Wilson, ACCU Overload Journal #98,
10
+ # August 2010, available at https://accu.org/index.php/journals/1681 and at
11
+ # http://synesis.com.au/publishing/quality-matters/exceptions-the-worst-form-of-error-handling-apart-from-all-the-others.html
12
+ #
13
+ module Throwable
14
+ # Indicates whether the instance is thrown as part of normative
15
+ # behaviour
16
+ def normative?
17
+ false
18
+ end
19
+
20
+ # Indicates whether the instance is thrown to indicate a recoverable
21
+ # failure
22
+ def recoverable?
23
+ false
24
+ end
25
+
26
+ # Indicates whether the instance is thrown to indicate a
27
+ # practically-unrecoverable failure
28
+ def practically_unrecoverable?
29
+ false
30
+ end
31
+
32
+ # Indicates whether the instance is thrown to indicate a faulted
33
+ # contition (i.e. a fault arising from a defect arising from a
34
+ # programming error)
35
+ def faulted?
36
+ false
37
+ end
38
+ end # module Throwable # rubocop:todo Style/CommentedKeyword
39
+ end # module Diagnostics # rubocop:todo Style/CommentedKeyword
40
+ end # module Core # rubocop:todo Style/CommentedKeyword
41
+ end # module RazorRisk # rubocop:todo Style/CommentedKeyword
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ##########################################################################
4
+ #
5
+ # Version for RazorRisk.Ruby.Core.Diagnostics library
6
+ #
7
+ # Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
8
+ #
9
+ # ##########################################################################
10
+
11
+ module RazorRisk
12
+ module Core
13
+ module Diagnostics # rubocop:todo Style/Documentation
14
+ # Current version of the RazorRisk::Core::Diagnostics library
15
+ VERSION = '0.2.0'
16
+
17
+ private # rubocop:todo Lint/UselessAccessModifier
18
+
19
+ VERSION_PARTS_ = VERSION.split(/[.]/).collect(&:to_i)
20
+
21
+ public # rubocop:todo Lint/UselessAccessModifier
22
+
23
+ # Major version of the RazorRisk::Core::Diagnostics library
24
+ VERSION_MAJOR = VERSION_PARTS_[0]
25
+ # Minor version of the RazorRisk::Core::Diagnostics library
26
+ VERSION_MINOR = VERSION_PARTS_[1]
27
+ # Patch version of the RazorRisk::Core::Diagnostics library
28
+ VERSION_PATCH = VERSION_PARTS_[2]
29
+ # Commit version of the RazorRisk::Core::Diagnostics library
30
+ VERSION_COMMIT = VERSION_PARTS_[3] || 0
31
+
32
+ # The description of the framework
33
+ DESCRIPTION = "Razor Risk's Core Services' Diagnostics library"
34
+ end # module Diagnostics # rubocop:todo Style/CommentedKeyword
35
+ end # module Core # rubocop:todo Style/CommentedKeyword
36
+ end # module RazorRisk # rubocop:todo Style/CommentedKeyword
37
+
38
+ # ############################## end of file ############################# #
@@ -0,0 +1,86 @@
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # ##########################################################################
5
+ #
6
+ # Copyright (c) 2017 Razor Risk Technologies Pty Limited. All rights reserved.
7
+ #
8
+ # ##########################################################################
9
+
10
+ # ##########################################################
11
+ # load path
12
+
13
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *(['..'] * 4), 'lib')
14
+
15
+ # ##########################################################
16
+ # diagnostics
17
+
18
+ unless $DEBUG
19
+
20
+ require 'pantheios/globals'
21
+ require 'pantheios/services/null_log_service'
22
+
23
+ ::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [::Pantheios::Services::NullLogService]
24
+ end
25
+
26
+ # ##########################################################
27
+ # code coverage
28
+
29
+ require 'simplecov'
30
+
31
+ # ##########################################################
32
+ # requires
33
+
34
+ require 'razor_risk/core/diagnostics/exceptions'
35
+
36
+ require 'xqsr3/extensions/test/unit'
37
+
38
+ require 'test/unit'
39
+
40
+ # ##########################################################
41
+ # tests
42
+
43
+ # rubocop:todo Style/Documentation
44
+ # rubocop:todo Naming/ClassAndModuleCamelCase
45
+ class Test_RRCSBaseException < Test::Unit::TestCase
46
+ include ::RazorRisk::Core::Diagnostics::Exceptions
47
+
48
+ class TestException < RRCSBaseException
49
+ end
50
+ class TestExceptionWithParams < RRCSBaseException
51
+ def initialize(p0, p1) # rubocop:todo Naming/MethodParameterName
52
+ @attr0 = p0
53
+ @attr1 = p1
54
+ end
55
+
56
+ attr_reader :attr0
57
+ attr_reader :attr1
58
+ end
59
+ # rubocop:enable Style/Documentation
60
+
61
+ def test_type_exists_and_is_a_class
62
+ assert defined? RRCSBaseException
63
+
64
+ # rubocop:todo Style/CaseEquality
65
+ assert Class === RRCSBaseException
66
+ # rubocop:enable Style/CaseEquality
67
+ end
68
+
69
+ def test_construct_is_not_valid
70
+ assert_raise(::NoMethodError) { RRCSBaseException.new }
71
+ end
72
+
73
+ def test_construct_derived_class_is_valid
74
+ TestException.new
75
+ end
76
+
77
+ def test_construct_derived_class_with_params
78
+ x = TestExceptionWithParams.new 'a0', 'a1'
79
+
80
+ assert_equal 'a0', x.attr0
81
+ assert_equal 'a1', x.attr1
82
+ end
83
+ end
84
+ # rubocop:enable Naming/ClassAndModuleCamelCase
85
+
86
+ # ############################## end of file ############################# #
@@ -0,0 +1,68 @@
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # ##########################################################################
5
+ #
6
+ # Copyright (c) 2017 Razor Risk Technologies Pty Limited. All rights reserved.
7
+ #
8
+ # ##########################################################################
9
+
10
+ # ##########################################################
11
+ # load path
12
+
13
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *(['..'] * 4), 'lib')
14
+
15
+ # ##########################################################
16
+ # diagnostics
17
+
18
+ unless $DEBUG
19
+
20
+ require 'pantheios/globals'
21
+ require 'pantheios/services/null_log_service'
22
+
23
+ ::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [::Pantheios::Services::NullLogService]
24
+ end
25
+
26
+ # ##########################################################
27
+ # code coverage
28
+
29
+ require 'simplecov'
30
+
31
+ # ##########################################################
32
+ # requires
33
+
34
+ require 'razor_risk/core/diagnostics/logic_errors'
35
+
36
+ require 'xqsr3/extensions/test/unit'
37
+
38
+ require 'test/unit'
39
+
40
+ # ##########################################################
41
+ # tests
42
+
43
+ # rubocop:todo Style/Documentation
44
+ # rubocop:todo Naming/ClassAndModuleCamelCase
45
+ class Test_RRCSLogicError < Test::Unit::TestCase
46
+ include ::RazorRisk::Core::Diagnostics::LogicErrors
47
+
48
+ class TestError < RRCSLogicError
49
+ end
50
+
51
+ def test_type_exists_and_is_a_class
52
+ assert defined? RRCSLogicError
53
+
54
+ assert Class === RRCSLogicError # rubocop:todo Style/CaseEquality
55
+ end
56
+
57
+ def test_construct_is_not_valid
58
+ assert_raise(::NoMethodError) { RRCSLogicError.new }
59
+ end
60
+
61
+ def test_construct_derived_class_is_valid
62
+ TestError.new
63
+ end
64
+ end
65
+ # rubocop:enable Naming/ClassAndModuleCamelCase
66
+ # rubocop:enable Style/Documentation
67
+
68
+ # ############################## end of file ############################# #
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: razorrisk-core-diagnostics
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Razor Risk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-08-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: razorrisk-core-baseutilities
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pantheios-ruby
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.20.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.20.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: xqsr3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.30'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.30'
55
+ description: Razor Risk's Core Services' Diagnostics library
56
+ email: operations@razor-risk.com
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - Rakefile
62
+ - lib/razor_risk/core/diagnostics/exceptions.rb
63
+ - lib/razor_risk/core/diagnostics/exceptions/rrcs_base_exception.rb
64
+ - lib/razor_risk/core/diagnostics/logger.rb
65
+ - lib/razor_risk/core/diagnostics/logger/logger.rb
66
+ - lib/razor_risk/core/diagnostics/logic_errors.rb
67
+ - lib/razor_risk/core/diagnostics/logic_errors/rrcs_logic_error.rb
68
+ - lib/razor_risk/core/diagnostics/throwable.rb
69
+ - lib/razor_risk/core/diagnostics/version.rb
70
+ - test/unit/core/diagnostics/exceptions/tc_rrcs_base_exception.rb
71
+ - test/unit/core/diagnostics/logic_errors/tc_rrcs_logic_error.rb
72
+ homepage: https://razor-risk.com/software
73
+ licenses: []
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '2.0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 2.6.14
92
+ signing_key:
93
+ specification_version: 4
94
+ summary: RazorRisk.Ruby.Core.Diagnostics
95
+ test_files: []