ruby_smart-simple_logger 1.0.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 +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: []
|