ruby_smart-simple_logger 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/ruby.yml +38 -0
- data/.gitignore +25 -0
- data/.rspec +3 -0
- data/.yardopts +5 -0
- data/Gemfile +7 -0
- data/README.md +739 -0
- data/Rakefile +8 -0
- data/bin/console +8 -0
- data/bin/setup +8 -0
- data/docs/CHANGELOG.md +17 -0
- data/docs/CODE_OF_CONDUCT.md +84 -0
- data/docs/LICENSE.txt +21 -0
- data/lib/debugger.rb +20 -0
- data/lib/ruby_smart/simple_logger/core_ext/ruby/string.rb +43 -0
- data/lib/ruby_smart/simple_logger/devices/memory_device.rb +43 -0
- data/lib/ruby_smart/simple_logger/devices/multi_device.rb +69 -0
- data/lib/ruby_smart/simple_logger/devices/proc_device.rb +37 -0
- data/lib/ruby_smart/simple_logger/extensions/helper.rb +259 -0
- data/lib/ruby_smart/simple_logger/extensions/logs.rb +26 -0
- data/lib/ruby_smart/simple_logger/extensions/mask.rb +53 -0
- data/lib/ruby_smart/simple_logger/extensions/scene.rb +77 -0
- data/lib/ruby_smart/simple_logger/extensions/severity.rb +62 -0
- data/lib/ruby_smart/simple_logger/extensions/simple_log.rb +224 -0
- data/lib/ruby_smart/simple_logger/extensions/timer.rb +63 -0
- data/lib/ruby_smart/simple_logger/formatter.rb +153 -0
- data/lib/ruby_smart/simple_logger/gem_version.rb +23 -0
- data/lib/ruby_smart/simple_logger/klass_logger.rb +45 -0
- data/lib/ruby_smart/simple_logger/logger.rb +74 -0
- data/lib/ruby_smart/simple_logger/scenes.rb +288 -0
- data/lib/ruby_smart/simple_logger/version.rb +12 -0
- data/lib/ruby_smart/simple_logger.rb +25 -0
- data/lib/ruby_smart-simple_logger.rb +3 -0
- data/lib/simple_logger.rb +7 -0
- data/ruby_smart-simple_logger.gemspec +43 -0
- metadata +167 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'extensions/helper'
|
4
|
+
require_relative 'extensions/logs'
|
5
|
+
require_relative 'extensions/mask'
|
6
|
+
require_relative 'extensions/scene'
|
7
|
+
require_relative 'extensions/severity'
|
8
|
+
require_relative 'extensions/simple_log'
|
9
|
+
require_relative 'extensions/timer'
|
10
|
+
|
11
|
+
require_relative 'devices/memory_device'
|
12
|
+
require_relative 'devices/multi_device'
|
13
|
+
require_relative 'devices/proc_device'
|
14
|
+
|
15
|
+
require_relative 'formatter'
|
16
|
+
require_relative 'scenes'
|
17
|
+
|
18
|
+
# requires ruby's logger
|
19
|
+
require 'logger'
|
20
|
+
require 'gem_info'
|
21
|
+
|
22
|
+
module RubySmart
|
23
|
+
module SimpleLogger
|
24
|
+
class Logger < ::Logger
|
25
|
+
include Extensions::Helper
|
26
|
+
include Extensions::Logs
|
27
|
+
include Extensions::Mask
|
28
|
+
include Extensions::Scene
|
29
|
+
include Extensions::Severity
|
30
|
+
include Extensions::SimpleLog
|
31
|
+
include Extensions::Timer
|
32
|
+
|
33
|
+
include Scenes
|
34
|
+
|
35
|
+
# enable access to the logdev
|
36
|
+
attr_reader :logdev
|
37
|
+
|
38
|
+
# defines a uniq key to parse the data
|
39
|
+
PAYLOAD_DATA_KEY = :_data
|
40
|
+
|
41
|
+
# initialize new Logger
|
42
|
+
# @param [Object, Symbol, nil] builtin
|
43
|
+
# @param [Hash] opts
|
44
|
+
# @option opts [Symbol] :format - defines a custom format
|
45
|
+
def initialize(builtin = nil, opts = nil)
|
46
|
+
# check if only a hash was provided
|
47
|
+
if opts.nil? && builtin.is_a?(Hash)
|
48
|
+
opts = builtin
|
49
|
+
else
|
50
|
+
opts ||= {}
|
51
|
+
|
52
|
+
# extend builtin option if not set
|
53
|
+
opts[:builtin] = builtin unless opts[:builtin]
|
54
|
+
end
|
55
|
+
|
56
|
+
# initialize provided opts
|
57
|
+
o = _init_opts(opts)
|
58
|
+
|
59
|
+
super(
|
60
|
+
_logdev(o[:device]),
|
61
|
+
o[:shift_age] || 0,
|
62
|
+
o[:shift_size] || 1048576,
|
63
|
+
**o.slice(:level, :progname, :formatter, :datetime_format, :binmode, :shift_period_suffix)
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
# overwrite level setter, to accept every available (also newly defined) Severity
|
68
|
+
# @param [Numeric, String, Symbol] sev - severity to resolve
|
69
|
+
def level=(sev)
|
70
|
+
@level = _level(sev)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,288 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubySmart
|
4
|
+
module SimpleLogger
|
5
|
+
module Scenes
|
6
|
+
def self.included(base)
|
7
|
+
# debug method
|
8
|
+
# log level @ debug
|
9
|
+
# prints: prettified data by using the 'inspect' method
|
10
|
+
#
|
11
|
+
# > ================================================= [Debug] ================================================
|
12
|
+
# > "DEBUGGED DATA" <- analyzed by awesome_print#ai method
|
13
|
+
# > ==========================================================================================================
|
14
|
+
base.scene :debug, { level: :debug, inspect: true, payload: [[:mask, ' [%{subject}] '], :_data, :mask] } do |data, subject = 'Debug', opts = {}|
|
15
|
+
self.log data, _scene_opt(:debug, { subject: subject }, opts)
|
16
|
+
end
|
17
|
+
|
18
|
+
# info method (BASE)
|
19
|
+
# log level @ info
|
20
|
+
# prints: enclosed data
|
21
|
+
#
|
22
|
+
# > ================================================= [Info] =================================================
|
23
|
+
# > DATA
|
24
|
+
# > ==========================================================================================================
|
25
|
+
base.scene :info, { level: :info, mask: { clr: :cyan }, payload: [[:mask, ' [%{subject}] '], :_data, :mask] } do |data, subject = 'Info', opts = {}|
|
26
|
+
self.log data, _scene_opt(:info, { subject: subject }, opts)
|
27
|
+
end
|
28
|
+
|
29
|
+
# warn method (BASE)
|
30
|
+
# log level @ warn
|
31
|
+
# prints: enclosed data
|
32
|
+
#
|
33
|
+
# > ================================================= [Warn] =================================================
|
34
|
+
# > DATA
|
35
|
+
# > ==========================================================================================================
|
36
|
+
base.scene :warn, { level: :warn, mask: { clr: :yellow }, payload: [[:mask, ' [%{subject}] '], :_data, :mask] } do |data, subject = 'Warn', opts = {}|
|
37
|
+
self.log data, _scene_opt(:warn, { subject: subject }, opts)
|
38
|
+
end
|
39
|
+
|
40
|
+
# error method (BASE)
|
41
|
+
# log level @ error
|
42
|
+
# prints: enclosed data
|
43
|
+
#
|
44
|
+
# > ================================================ [Error] =================================================
|
45
|
+
# > DATA
|
46
|
+
# > ==========================================================================================================
|
47
|
+
base.scene :error, { level: :error, mask: { clr: :red }, payload: [[:mask, ' [%{subject}] '], :_data, :mask] } do |data, subject = 'Error', opts = {}|
|
48
|
+
self.log data, _scene_opt(:error, { subject: subject }, opts)
|
49
|
+
end
|
50
|
+
|
51
|
+
# fatal method (BASE)
|
52
|
+
# log level @ fatal
|
53
|
+
# prints: enclosed data
|
54
|
+
#
|
55
|
+
# > ================================================ [Fatal] =================================================
|
56
|
+
# > DATA
|
57
|
+
# > ==========================================================================================================
|
58
|
+
base.scene :fatal, { level: :fatal, mask: { clr: :bg_red }, payload: [[:mask, ' [%{subject}] '], :_data, :mask] } do |data, subject = 'Fatal', opts = {}|
|
59
|
+
self.log data, _scene_opt(:fatal, { subject: subject }, opts)
|
60
|
+
end
|
61
|
+
|
62
|
+
# success method
|
63
|
+
# log level @ success (sub-level of info)
|
64
|
+
# prints: enclosed data
|
65
|
+
#
|
66
|
+
# > ================================================ [Success] ================================================
|
67
|
+
# > DATA
|
68
|
+
# > ===========================================================================================================
|
69
|
+
base.scene :success, { level: :success, mask: { clr: :green }, payload: [[:mask, ' [%{subject}] '], :_data, :mask] } do |data, subject = 'Success', opts = {}|
|
70
|
+
self.log data, _scene_opt(:success, { subject: subject }, opts)
|
71
|
+
end
|
72
|
+
|
73
|
+
# header method
|
74
|
+
# log level @ debug
|
75
|
+
# prints: prettified subject
|
76
|
+
#
|
77
|
+
# > ===========================================================================================================
|
78
|
+
# > ================================================ <Subject> ================================================
|
79
|
+
# > ===========================================================================================================
|
80
|
+
base.scene :header, { level: :debug, payload: [:mask, [:mask, ' <%{subject}> '], :mask] } do |subject, opts = {}|
|
81
|
+
# autostart a timer method, if required
|
82
|
+
self.timer(:start, :default) if opts[:timer]
|
83
|
+
|
84
|
+
self.log nil, _scene_opt(:header, { subject: subject }, opts)
|
85
|
+
end
|
86
|
+
|
87
|
+
# footer method
|
88
|
+
# log level @ debug
|
89
|
+
# prints: prettified subject
|
90
|
+
#
|
91
|
+
# > ===========================================================================================================
|
92
|
+
# > ================================================ >Subject< ================================================
|
93
|
+
# > ===========================================================================================================
|
94
|
+
base.scene :footer, { level: :debug, payload: [:mask, [:mask, ' >%{subject}< '], :mask] } do |subject, opts = {}|
|
95
|
+
self.log nil, _scene_opt(:footer, { subject: subject }, opts)
|
96
|
+
|
97
|
+
# clears & prints timer
|
98
|
+
self.desc("duration: #{self.timer(:clear, :default, :humanized => true)}") if opts[:timer]
|
99
|
+
end
|
100
|
+
|
101
|
+
# topic method
|
102
|
+
# log level @ debug
|
103
|
+
# prints: prettified subject
|
104
|
+
#
|
105
|
+
# > --------------------------------------------------------------------------------
|
106
|
+
# > #----------------------------------- Subject ----------------------------------#
|
107
|
+
# > --------------------------------------------------------------------------------
|
108
|
+
base.scene :topic, { level: :debug, mask: { char: '-', length: 95, clr: :blueish }, payload: [:mask, [:mask, '%{title}'], :mask] } do |subject, opts = {}|
|
109
|
+
opts = _scene_opt(:topic, opts)
|
110
|
+
txt = " #{subject} ".center(opts[:mask][:length] - 2, opts[:mask][:char])
|
111
|
+
opts[:title] = "##{txt}#"
|
112
|
+
|
113
|
+
self.log nil, opts
|
114
|
+
end
|
115
|
+
|
116
|
+
# theme method
|
117
|
+
# log level @ debug
|
118
|
+
# prints: prettified, colored subject
|
119
|
+
#
|
120
|
+
# > # Subject
|
121
|
+
# > ----------------------------------------------------------------------
|
122
|
+
base.scene :theme, { level: :debug, clr: :purple, mask: { char: '-', length: 85, clr: :purple }, payload: [[:txt, '# %{subject}'], :mask] } do |subject, opts = {}|
|
123
|
+
self.log nil, _scene_opt(:theme, { subject: subject }, opts)
|
124
|
+
end
|
125
|
+
|
126
|
+
# theme_result method
|
127
|
+
# log level @ debug
|
128
|
+
# prints: prettified, colored result
|
129
|
+
#
|
130
|
+
# > ----------------------------------------------------------------------
|
131
|
+
# > -> Result
|
132
|
+
# >
|
133
|
+
base.scene :theme_result, { level: :debug, mask: { char: '-', length: 85, clr: :purple }, payload: [:mask, [:txt, '-> %{result}'], ''] } do |result, status = nil, opts = {}|
|
134
|
+
res_or_clr = status.nil? ? result : status
|
135
|
+
self.log nil, _scene_opt(:theme_result, { result: result, clr: _res_clr(res_or_clr) }, opts)
|
136
|
+
end
|
137
|
+
|
138
|
+
# theme_line method
|
139
|
+
# log level @ debug
|
140
|
+
# prints: colored line with no text
|
141
|
+
#
|
142
|
+
# > ----------------------------------------------------------------------
|
143
|
+
base.scene :theme_line, { level: :debug, mask: { char: '-', length: 85, clr: :purple }, payload: [:mask] } do |opts = {}|
|
144
|
+
self.log nil, _scene_opt(:theme_line, opts)
|
145
|
+
end
|
146
|
+
|
147
|
+
# desc method
|
148
|
+
# log level @ debug
|
149
|
+
# prints: colored text
|
150
|
+
#
|
151
|
+
# > "description"
|
152
|
+
# >
|
153
|
+
base.scene :desc, { level: :debug, clr: :purple, payload: [[:txt, '%{description}']] } do |description, opts = {}|
|
154
|
+
self.log nil, _scene_opt(:desc, { description: description.to_s }, opts)
|
155
|
+
end
|
156
|
+
|
157
|
+
# job method
|
158
|
+
# log level @ debug
|
159
|
+
# prints: colored line with job name (on inline formatter it prevents a line-break)
|
160
|
+
# calls the result method if a block was provided
|
161
|
+
#
|
162
|
+
# > - Job name =>
|
163
|
+
# ________________________________________________________________ <- 64 chars
|
164
|
+
base.scene :job, { level: :debug, clr: :cyan, nl: false, length: 64, payload: [[:concat, ['- ', [:txt, '%{name}'], ' => ']]] } do |name, opts = {}, &block|
|
165
|
+
self.log nil, _scene_opt(:job, { name: name }, opts)
|
166
|
+
self.result(*block.call) if block_given?
|
167
|
+
end
|
168
|
+
|
169
|
+
# sub_job method
|
170
|
+
# log level @ debug
|
171
|
+
# prints: line with job name (on inline formatter it prevents a line-break)
|
172
|
+
# calls the result method if a block was provided
|
173
|
+
#
|
174
|
+
# > * Subjob name =>
|
175
|
+
# ______________________________________________________________ <- 62 chars
|
176
|
+
base.scene :sub_job, { level: :debug, clr: :cyan, nl: false, length: 62, payload: [[:concat, [' * ', [:txt, '%{name}'], ' => ']]] } do |name, opts = {}, &block|
|
177
|
+
self.log nil, _scene_opt(:sub_job, { name: name }, opts)
|
178
|
+
self.result(*block.call) if block_given?
|
179
|
+
end
|
180
|
+
|
181
|
+
# result method
|
182
|
+
# log level @ debug
|
183
|
+
# prints: colored result
|
184
|
+
#
|
185
|
+
# > Result
|
186
|
+
base.scene :result, { level: :debug, payload: [[:txt, '%{result}']] } do |result, status = nil, opts = {}|
|
187
|
+
res_or_clr = status.nil? ? result : status
|
188
|
+
self.log nil, _scene_opt(:result, { result: result, clr: _res_clr(res_or_clr) }, opts)
|
189
|
+
end
|
190
|
+
|
191
|
+
# job_result method
|
192
|
+
# log level @ debug
|
193
|
+
# prints: job with combined colored result
|
194
|
+
#
|
195
|
+
# > - Job name => Result
|
196
|
+
base.scene :job_result, { level: :debug } do |name, result, status = nil, opts = {}|
|
197
|
+
self.job(name, opts)
|
198
|
+
self.result(result, status, opts)
|
199
|
+
end
|
200
|
+
|
201
|
+
# sub_job_result method
|
202
|
+
# log level @ debug
|
203
|
+
# prints: sub_job with combined colored result
|
204
|
+
#
|
205
|
+
# > * Subjob name => Result
|
206
|
+
base.scene :sub_job_result, { level: :debug } do |name, result, status = nil, opts = {}|
|
207
|
+
self.sub_job(name, opts)
|
208
|
+
self.result(result, status, opts)
|
209
|
+
end
|
210
|
+
|
211
|
+
# line method
|
212
|
+
# log level @ debug
|
213
|
+
# prints: just a line with data
|
214
|
+
#
|
215
|
+
# > DATA
|
216
|
+
base.scene :line, { level: :debug } do |data, opts = {}|
|
217
|
+
self.log data, _scene_opt(:line, opts)
|
218
|
+
end
|
219
|
+
|
220
|
+
# print method
|
221
|
+
# log level @ debug
|
222
|
+
# prints: prints data without a newline
|
223
|
+
#
|
224
|
+
# > DATA
|
225
|
+
base.scene :print, { level: :debug, nl: false } do |data, opts = {}|
|
226
|
+
self.log data, _scene_opt(:print, opts)
|
227
|
+
end
|
228
|
+
|
229
|
+
# nl method
|
230
|
+
# log level @ debug
|
231
|
+
# prints: a line break without any data
|
232
|
+
#
|
233
|
+
# >
|
234
|
+
# >
|
235
|
+
base.scene :nl, { level: :debug } do |opts = {}|
|
236
|
+
self.log '', _scene_opt(:nl, opts)
|
237
|
+
end
|
238
|
+
|
239
|
+
# spec method
|
240
|
+
# log level @ debug
|
241
|
+
# prints: colored spec result string - depending on the status (on inline formatter it prevents a line-break)
|
242
|
+
#
|
243
|
+
# true => . (green)
|
244
|
+
# false => F (red)
|
245
|
+
# "other" => ? (yellow)
|
246
|
+
#
|
247
|
+
# > .FFF...??...F....F...F..???....F...??
|
248
|
+
base.scene :spec, { level: :debug, nl: false, payload: [[:txt, '%{result}']] } do |status, opts = {}|
|
249
|
+
result = if status.is_a?(TrueClass)
|
250
|
+
'.'
|
251
|
+
elsif status.is_a?(FalseClass)
|
252
|
+
'F'
|
253
|
+
else
|
254
|
+
status = :yellow
|
255
|
+
'?'
|
256
|
+
end
|
257
|
+
self.log nil, _scene_opt(:spec, { result: result, clr: _res_clr(status) }, opts)
|
258
|
+
end
|
259
|
+
|
260
|
+
# progress method
|
261
|
+
# log level @ debug
|
262
|
+
# prints: a colored progress indicator
|
263
|
+
#
|
264
|
+
# > - Progress of Step 0 [ 0%] >-------------------------------------------------
|
265
|
+
# > - Progress of Step 1 [ 40%] ===================>------------------------------
|
266
|
+
# ________________________________________________ <- 48 chars
|
267
|
+
# 50 chars -> __________________________________________________
|
268
|
+
base.scene :progress, { level: :debug, payload: [[:txt, '- %{name} [%{perc}%] %{progress}']] } do |name, perc, opts = {}|
|
269
|
+
pmask_length = 50
|
270
|
+
|
271
|
+
# convert and fix progress
|
272
|
+
perc = perc.to_i
|
273
|
+
perc = 0 if perc < 0
|
274
|
+
perc = 100 if perc > 100
|
275
|
+
|
276
|
+
pmask_left_length = (pmask_length * perc / 100)
|
277
|
+
# reduce 1 char for the arrow '>'
|
278
|
+
pmask_left_length -= 1 if pmask_left_length > 0
|
279
|
+
pmask_right_length = pmask_length - pmask_left_length - 1
|
280
|
+
|
281
|
+
progress_string = _clr(('=' * pmask_left_length) + '>', :green) + _clr('-' * pmask_right_length, :red)
|
282
|
+
perc_string = perc.to_s.rjust(3,' ')
|
283
|
+
self.log nil, _scene_opt(:progress, { name: _clr(_lgth(name, 48), :cyan), perc: perc_string, progress: progress_string }, opts)
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
end
|
288
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "gem_info"
|
4
|
+
|
5
|
+
require_relative "simple_logger/core_ext/ruby/string"
|
6
|
+
require_relative "simple_logger/version"
|
7
|
+
require_relative "simple_logger/logger"
|
8
|
+
require_relative "simple_logger/klass_logger"
|
9
|
+
|
10
|
+
module RubySmart
|
11
|
+
module SimpleLogger
|
12
|
+
# delegate new method to logger
|
13
|
+
def self.new(*args)
|
14
|
+
RubySmart::SimpleLogger::Logger.new(*args)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# load date extensions for logger
|
20
|
+
if GemInfo.loaded?('activesupport') && GemInfo.installed?('actionview')
|
21
|
+
ActiveSupport.on_load(:action_view) do
|
22
|
+
require('action_view/helpers/date_helper')
|
23
|
+
RubySmart::SimpleLogger::Logger.include(ActionView::Helpers::DateHelper)
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/ruby_smart/simple_logger/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "ruby_smart-simple_logger"
|
7
|
+
spec.version = RubySmart::SimpleLogger.version
|
8
|
+
spec.authors = ['Tobias Gonsior']
|
9
|
+
spec.email = ['info@ruby-smart.org']
|
10
|
+
|
11
|
+
spec.summary = "A simple, multifunctional logging library for Ruby."
|
12
|
+
spec.description = <<~DESC
|
13
|
+
RubySmart::SimpleLogger is a fast, customizable logging library with multi-device support,
|
14
|
+
special (PRE-defined) scenes for better logging visibility.
|
15
|
+
DESC
|
16
|
+
|
17
|
+
spec.homepage = 'https://github.com/ruby-smart/simple_logger'
|
18
|
+
spec.license = 'MIT'
|
19
|
+
spec.required_ruby_version = '>= 2.6.0'
|
20
|
+
|
21
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
22
|
+
spec.metadata['source_code_uri'] = 'https://github.com/ruby-smart/simple_logger'
|
23
|
+
spec.metadata['documentation_uri'] = 'https://rubydoc.info/gems/ruby_smart-simple_logger'
|
24
|
+
spec.metadata['changelog_uri'] = "#{spec.metadata["source_code_uri"]}/blob/main/docs/CHANGELOG.md"
|
25
|
+
|
26
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
27
|
+
|
28
|
+
# Specify which files should be added to the gem when it is released.
|
29
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
30
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
31
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
32
|
+
end
|
33
|
+
|
34
|
+
spec.require_paths = ['lib']
|
35
|
+
|
36
|
+
spec.add_dependency 'ruby_smart-support', '~> 1.2'
|
37
|
+
|
38
|
+
spec.add_development_dependency 'awesome_print', '~> 1.9'
|
39
|
+
spec.add_development_dependency 'coveralls_reborn', '~> 0.25'
|
40
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
41
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
42
|
+
spec.add_development_dependency 'yard', '~> 0.9'
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby_smart-simple_logger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tobias Gonsior
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-01-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ruby_smart-support
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: awesome_print
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.9'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.9'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coveralls_reborn
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.25'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.25'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '13.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.9'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.9'
|
97
|
+
description: "RubySmart::SimpleLogger is a fast, customizable logging library with
|
98
|
+
multi-device support, \nspecial (PRE-defined) scenes for better logging visibility.\n"
|
99
|
+
email:
|
100
|
+
- info@ruby-smart.org
|
101
|
+
executables: []
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".github/workflows/ruby.yml"
|
106
|
+
- ".gitignore"
|
107
|
+
- ".rspec"
|
108
|
+
- ".yardopts"
|
109
|
+
- Gemfile
|
110
|
+
- README.md
|
111
|
+
- Rakefile
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- docs/CHANGELOG.md
|
115
|
+
- docs/CODE_OF_CONDUCT.md
|
116
|
+
- docs/LICENSE.txt
|
117
|
+
- lib/debugger.rb
|
118
|
+
- lib/ruby_smart-simple_logger.rb
|
119
|
+
- lib/ruby_smart/simple_logger.rb
|
120
|
+
- lib/ruby_smart/simple_logger/core_ext/ruby/string.rb
|
121
|
+
- lib/ruby_smart/simple_logger/devices/memory_device.rb
|
122
|
+
- lib/ruby_smart/simple_logger/devices/multi_device.rb
|
123
|
+
- lib/ruby_smart/simple_logger/devices/proc_device.rb
|
124
|
+
- lib/ruby_smart/simple_logger/extensions/helper.rb
|
125
|
+
- lib/ruby_smart/simple_logger/extensions/logs.rb
|
126
|
+
- lib/ruby_smart/simple_logger/extensions/mask.rb
|
127
|
+
- lib/ruby_smart/simple_logger/extensions/scene.rb
|
128
|
+
- lib/ruby_smart/simple_logger/extensions/severity.rb
|
129
|
+
- lib/ruby_smart/simple_logger/extensions/simple_log.rb
|
130
|
+
- lib/ruby_smart/simple_logger/extensions/timer.rb
|
131
|
+
- lib/ruby_smart/simple_logger/formatter.rb
|
132
|
+
- lib/ruby_smart/simple_logger/gem_version.rb
|
133
|
+
- lib/ruby_smart/simple_logger/klass_logger.rb
|
134
|
+
- lib/ruby_smart/simple_logger/logger.rb
|
135
|
+
- lib/ruby_smart/simple_logger/scenes.rb
|
136
|
+
- lib/ruby_smart/simple_logger/version.rb
|
137
|
+
- lib/simple_logger.rb
|
138
|
+
- ruby_smart-simple_logger.gemspec
|
139
|
+
homepage: https://github.com/ruby-smart/simple_logger
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
metadata:
|
143
|
+
homepage_uri: https://github.com/ruby-smart/simple_logger
|
144
|
+
source_code_uri: https://github.com/ruby-smart/simple_logger
|
145
|
+
documentation_uri: https://rubydoc.info/gems/ruby_smart-simple_logger
|
146
|
+
changelog_uri: https://github.com/ruby-smart/simple_logger/blob/main/docs/CHANGELOG.md
|
147
|
+
allowed_push_host: https://rubygems.org
|
148
|
+
post_install_message:
|
149
|
+
rdoc_options: []
|
150
|
+
require_paths:
|
151
|
+
- lib
|
152
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: 2.6.0
|
157
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
requirements: []
|
163
|
+
rubygems_version: 3.3.7
|
164
|
+
signing_key:
|
165
|
+
specification_version: 4
|
166
|
+
summary: A simple, multifunctional logging library for Ruby.
|
167
|
+
test_files: []
|