logue 1.0.18 → 1.1.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.
Files changed (68) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +0 -0
  3. data/.glarkrc +0 -0
  4. data/.idea/.gitignore +10 -0
  5. data/.idea/aws.xml +11 -0
  6. data/.idea/codeStyles/Project.xml +7 -0
  7. data/.idea/codeStyles/codeStyleConfig.xml +5 -0
  8. data/.idea/inspectionProfiles/Project_Default.xml +11 -0
  9. data/.idea/libraries/pkg.xml +16 -0
  10. data/.idea/logue.iml +53 -0
  11. data/.idea/misc.xml +9 -0
  12. data/.idea/modules.xml +8 -0
  13. data/.idea/vcs.xml +6 -0
  14. data/Gemfile +0 -0
  15. data/Gemfile.lock +8 -8
  16. data/LICENSE.txt +0 -0
  17. data/README.md +0 -0
  18. data/lib/logue/{colorlog.rb → colorable.rb} +6 -27
  19. data/lib/logue/core/applog.rb +18 -0
  20. data/lib/logue/core/base_loggable.rb +58 -0
  21. data/lib/logue/core/base_writer.rb +23 -0
  22. data/lib/logue/core/dynamic.rb +17 -0
  23. data/lib/logue/core/object_util.rb +6 -0
  24. data/lib/logue/elements/base_element.rb +21 -0
  25. data/lib/logue/elements/block_element.rb +16 -0
  26. data/lib/logue/elements/element.rb +13 -0
  27. data/lib/logue/elements/element_factory.rb +50 -0
  28. data/lib/logue/elements/element_lines.rb +23 -0
  29. data/lib/logue/elements/elements_log.rb +21 -0
  30. data/lib/logue/elements/elements_loggable.rb +17 -0
  31. data/lib/logue/elements/elements_writer.rb +33 -0
  32. data/lib/logue/elements/enum_element.rb +12 -0
  33. data/lib/logue/elements/hash_element.rb +9 -0
  34. data/lib/logue/elements/indexed_element.rb +15 -0
  35. data/lib/logue/elements/msg_element.rb +13 -0
  36. data/lib/logue/elements/msg_obj_element.rb +13 -0
  37. data/lib/logue/elements/struct_element.rb +9 -0
  38. data/lib/logue/elements/verbose_element.rb +18 -0
  39. data/lib/logue/filter.rb +8 -49
  40. data/lib/logue/{location_format.rb → format/location_format.rb} +16 -11
  41. data/lib/logue/format/pathutil.rb +36 -0
  42. data/lib/logue/legacy_logger.rb +7 -18
  43. data/lib/logue/level.rb +0 -11
  44. data/lib/logue/levels/level_logger.rb +55 -0
  45. data/lib/logue/lines/line_base.rb +4 -0
  46. data/lib/logue/lines/line_block.rb +11 -0
  47. data/lib/logue/lines/line_msg_block.rb +12 -0
  48. data/lib/logue/lines/line_msg_obj.rb +19 -0
  49. data/lib/logue/lines/lines_factory.rb +19 -0
  50. data/lib/logue/lines/lines_writer.rb +29 -0
  51. data/lib/logue/locations/frame.rb +19 -0
  52. data/lib/logue/locations/location.rb +17 -0
  53. data/lib/logue/locations/location_writer.rb +13 -0
  54. data/lib/logue/{stack.rb → locations/stack.rb} +5 -7
  55. data/lib/logue/log.rb +27 -60
  56. data/lib/logue/loggable.rb +4 -20
  57. data/lib/logue/logger.rb +28 -81
  58. data/lib/logue/version.rb +1 -4
  59. data/lib/logue/writer.rb +2 -31
  60. data/lib/logue/writer2.rb +5 -0
  61. data/lib/logue.rb +3 -3
  62. data/logue.gemspec +3 -3
  63. metadata +58 -22
  64. data/lib/logue/element.rb +0 -16
  65. data/lib/logue/frame.rb +0 -37
  66. data/lib/logue/line.rb +0 -44
  67. data/lib/logue/location.rb +0 -24
  68. data/lib/logue/pathutil.rb +0 -39
data/lib/logue/logger.rb CHANGED
@@ -9,13 +9,14 @@
9
9
  # Documentation:: Author
10
10
  #
11
11
 
12
- require 'logue/colorlog'
12
+ require 'logue/colorable'
13
13
  require 'logue/writer'
14
14
  require 'logue/filter'
15
15
  require 'logue/legacy_logger'
16
- require 'logue/stack'
17
- require 'logue/line'
18
- require 'logue/location'
16
+ require 'logue/locations/stack'
17
+ require 'logue/locations/location'
18
+ require 'logue/core/object_util'
19
+ require 'logue/levels/level_logger'
19
20
 
20
21
  #
21
22
  # == Logger
@@ -29,47 +30,23 @@ require 'logue/location'
29
30
  #
30
31
 
31
32
  module Logue
32
- class Logger
33
+ class Logger < LevelLogger
33
34
  include LegacyLogger
34
- include ColorLog
35
-
36
- attr_accessor :level
35
+ include Colorable
36
+
37
37
  attr_accessor :format
38
38
  attr_accessor :filter
39
39
  attr_accessor :writer
40
40
 
41
- def initialize format: LocationFormat.new, level: Level::WARN, filter: Filter.new, writer: Writer.new
41
+ def initialize format: LocationFormat.new, level: Level::WARN, filter: Filter.new, writer: ElementsWriter.new
42
42
  reset format: format, level: level, filter: filter, writer: writer
43
43
  end
44
-
45
- def verbose= v
46
- @level = case v
47
- when TrueClass
48
- Level::DEBUG
49
- when FalseClass
50
- Level::FATAL
51
- when Integer
52
- v
53
- end
54
- end
55
-
56
- def verbose
57
- @level <= Level::DEBUG
58
- end
59
44
 
60
45
  def reset format: LocationFormat.new, level: FATAL, filter: Filter.new, writer: Writer.new
61
- @level = level
62
46
  @filter = filter
63
47
  @format = format
64
48
  @writer = writer
65
- end
66
-
67
- def quiet
68
- @level >= Level::WARN
69
- end
70
-
71
- def quiet= b
72
- @level = b ? Level::WARN : Level::DEBUG
49
+ self.level = level
73
50
  end
74
51
 
75
52
  # Assigns output to a file with the given name. Returns the file; the client is responsible for
@@ -85,51 +62,16 @@ module Logue
85
62
  @format = LocationFormat.new file: file, line: line, method: method
86
63
  end
87
64
 
88
- def debug msg = "", obj = nil, classname: nil, &blk
89
- log msg, obj, level: Level::DEBUG, classname: classname, &blk
90
- end
91
-
92
- def info msg = "", obj = nil, classname: nil, &blk
93
- log msg, obj, level: Level::INFO, classname: classname, &blk
94
- end
95
-
96
- def warn msg = "", obj = nil, classname: nil, &blk
97
- log msg, obj, level: Level::WARN, classname: classname, &blk
98
- end
99
-
100
- def error msg = "", obj = nil, classname: nil, &blk
101
- log msg, obj, level: Level::ERROR, classname: classname, &blk
102
- end
103
-
104
- def fatal msg = "", obj = nil, classname: nil, &blk
105
- log msg, obj, level: Level::FATAL, classname: classname, &blk
106
- end
107
-
108
- def write msg = "", obj = nil, classname: nil, &blk
109
- log msg, obj, level: Level::WARN, classname: classname, &blk
110
- end
111
-
112
- # Logs the given message.
113
- def log msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk
114
- log_frames msg, obj, classname: classname, level: level, nframes: 0, &blk
115
- end
116
-
117
- # Shows the current stack.
118
- def stack msg = "", obj = nil, level: Level::DEBUG, classname: nil, &blk
119
- log_frames msg, obj, classname: classname, level: level, nframes: -1, &blk
120
- end
121
-
122
- def log_frames msg, obj = nil, classname: nil, level: nil, nframes: -1, &blk
123
- if level >= @level
124
- stack = Stack.new
125
- stack.filtered[0 .. nframes].each do |frame|
126
- log_frame frame, msg, obj, classname: classname, level: level, &blk
127
- classname = nil
128
- msg = ""
129
- obj = nil
130
- end
65
+ def log_frames msg, obj = ObjectUtil::NONE, classname: nil, level: nil, nframes: -1, &blk
66
+ return if level < self.level
67
+ stack = Stack.new
68
+ stack.filtered[0..nframes].each do |frame|
69
+ log_frame frame, msg, obj, classname: classname, level: level, &blk
70
+ classname = nil
71
+ msg = ""
72
+ obj = nil
131
73
  end
132
- end
74
+ end
133
75
 
134
76
  def log_frame frame, msg, obj, classname: nil, level: nil, &blk
135
77
  if @filter.log? frame.path, classname, frame.method
@@ -138,10 +80,15 @@ module Logue
138
80
  end
139
81
 
140
82
  def print_frame frame, msg, obj, classname: nil, level: nil, &blk
141
- loc = Location.new frame.path, frame.line, classname, frame.method
142
- line = Line.new loc, msg, obj, &blk
143
- lstr = line.format @format
144
- @writer.print lstr, level
83
+ location = Location.new frame.path, frame.line, classname, frame.method
84
+ locstr = @format.format_location location
85
+ if msg == ObjectUtil::NONE && blk
86
+ @writer.write_block locstr, level, &blk
87
+ elsif blk
88
+ @writer.write_msg_blk locstr, msg, level, &blk
89
+ else
90
+ @writer.write_msg_obj locstr, msg, obj, level
91
+ end
145
92
  end
146
93
  end
147
94
  end
data/lib/logue/version.rb CHANGED
@@ -1,6 +1,3 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
3
-
4
1
  module Logue
5
- VERSION = '1.0.18'
2
+ VERSION = '1.1.1'
6
3
  end
data/lib/logue/writer.rb CHANGED
@@ -1,34 +1,5 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
1
+ require 'logue/lines/lines_writer'
3
2
 
4
3
  module Logue
5
- class Writer
6
- attr_accessor :output
7
- attr_accessor :colors
8
- attr_accessor :colorize_line
9
-
10
- def initialize output: $stdout, colors: Array.new, colorize_line: false
11
- @output = output
12
- @colors = colors
13
- @colorize_line = colorize_line
14
- end
15
-
16
- def print lstr, lvl
17
- str = lvlcol = @colors[lvl] ? lstr.color(lvlcol) : lstr
18
- @output.puts str
19
- end
20
-
21
- def line location, msg, lvl
22
- if lvlcol = @colors[lvl]
23
- if @colorize_line
24
- line = location + " " + msg
25
- line.color lvlcol
26
- else
27
- location + " " + msg.color(lvlcol)
28
- end
29
- else
30
- location + " " + msg
31
- end
32
- end
33
- end
4
+ Writer = LinesWriter
34
5
  end
@@ -0,0 +1,5 @@
1
+ require 'logue/elements/elements_writer'
2
+
3
+ module Logue
4
+ Writer2 = ElementsWriter
5
+ end
data/lib/logue.rb CHANGED
@@ -1,13 +1,13 @@
1
- loguelibdir = File.dirname(__FILE__)
1
+ loguelibdir = File.dirname __FILE__
2
2
 
3
3
  $:.unshift(loguelibdir) unless
4
4
  $:.include?(loguelibdir) || $:.include?(File.expand_path(loguelibdir))
5
5
 
6
6
  require 'pathname'
7
7
 
8
- rbre = Regexp.new('\.rb$')
8
+ rbre = Regexp.new '\.rb$'
9
9
 
10
10
  Pathname.glob(loguelibdir + '/logue/**/*.rb').each do |file|
11
- fname = file.sub(Regexp.new('^' + loguelibdir + '/'), '').sub(rbre, '')
11
+ fname = file.to_s.sub(Regexp.new('^' + loguelibdir + '/'), '').sub(rbre, '')
12
12
  require fname
13
13
  end
data/logue.gemspec CHANGED
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_development_dependency "bundler", "~> 1.16"
33
+ spec.add_development_dependency "bundler", ">= 2.0"
34
34
  spec.add_development_dependency "rainbow", "~> 3.0.0"
35
- spec.add_development_dependency "rake", "~> 10.0"
36
- spec.add_development_dependency "test-unit", "~> 3.1"
35
+ spec.add_development_dependency "rake", "~> 13.0.1"
36
+ spec.add_development_dependency "test-unit", "3.6.1"
37
37
  spec.add_development_dependency "paramesan", "~> 0.1.1"
38
38
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logue
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.18
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Pace
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-14 00:00:00.000000000 Z
11
+ date: 2026-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rainbow
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 13.0.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 13.0.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: test-unit
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: '3.1'
61
+ version: 3.6.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: '3.1'
68
+ version: 3.6.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: paramesan
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -89,6 +89,16 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
91
  - ".glarkrc"
92
+ - ".idea/.gitignore"
93
+ - ".idea/aws.xml"
94
+ - ".idea/codeStyles/Project.xml"
95
+ - ".idea/codeStyles/codeStyleConfig.xml"
96
+ - ".idea/inspectionProfiles/Project_Default.xml"
97
+ - ".idea/libraries/pkg.xml"
98
+ - ".idea/logue.iml"
99
+ - ".idea/misc.xml"
100
+ - ".idea/modules.xml"
101
+ - ".idea/vcs.xml"
92
102
  - Gemfile
93
103
  - Gemfile.lock
94
104
  - LICENSE.txt
@@ -97,22 +107,49 @@ files:
97
107
  - bin/console
98
108
  - bin/setup
99
109
  - lib/logue.rb
100
- - lib/logue/colorlog.rb
101
- - lib/logue/element.rb
110
+ - lib/logue/colorable.rb
111
+ - lib/logue/core/applog.rb
112
+ - lib/logue/core/base_loggable.rb
113
+ - lib/logue/core/base_writer.rb
114
+ - lib/logue/core/dynamic.rb
115
+ - lib/logue/core/object_util.rb
116
+ - lib/logue/elements/base_element.rb
117
+ - lib/logue/elements/block_element.rb
118
+ - lib/logue/elements/element.rb
119
+ - lib/logue/elements/element_factory.rb
120
+ - lib/logue/elements/element_lines.rb
121
+ - lib/logue/elements/elements_log.rb
122
+ - lib/logue/elements/elements_loggable.rb
123
+ - lib/logue/elements/elements_writer.rb
124
+ - lib/logue/elements/enum_element.rb
125
+ - lib/logue/elements/hash_element.rb
126
+ - lib/logue/elements/indexed_element.rb
127
+ - lib/logue/elements/msg_element.rb
128
+ - lib/logue/elements/msg_obj_element.rb
129
+ - lib/logue/elements/struct_element.rb
130
+ - lib/logue/elements/verbose_element.rb
102
131
  - lib/logue/filter.rb
103
- - lib/logue/frame.rb
132
+ - lib/logue/format/location_format.rb
133
+ - lib/logue/format/pathutil.rb
104
134
  - lib/logue/legacy_logger.rb
105
135
  - lib/logue/level.rb
106
- - lib/logue/line.rb
107
- - lib/logue/location.rb
108
- - lib/logue/location_format.rb
136
+ - lib/logue/levels/level_logger.rb
137
+ - lib/logue/lines/line_base.rb
138
+ - lib/logue/lines/line_block.rb
139
+ - lib/logue/lines/line_msg_block.rb
140
+ - lib/logue/lines/line_msg_obj.rb
141
+ - lib/logue/lines/lines_factory.rb
142
+ - lib/logue/lines/lines_writer.rb
143
+ - lib/logue/locations/frame.rb
144
+ - lib/logue/locations/location.rb
145
+ - lib/logue/locations/location_writer.rb
146
+ - lib/logue/locations/stack.rb
109
147
  - lib/logue/log.rb
110
148
  - lib/logue/loggable.rb
111
149
  - lib/logue/logger.rb
112
- - lib/logue/pathutil.rb
113
- - lib/logue/stack.rb
114
150
  - lib/logue/version.rb
115
151
  - lib/logue/writer.rb
152
+ - lib/logue/writer2.rb
116
153
  - logue.gemspec
117
154
  homepage: https://www.github.com/jpace/logue
118
155
  licenses:
@@ -134,8 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
171
  - !ruby/object:Gem::Version
135
172
  version: '0'
136
173
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.6.3
174
+ rubygems_version: 3.2.3
139
175
  signing_key:
140
176
  specification_version: 4
141
177
  summary: A minimalist logging module.
data/lib/logue/element.rb DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
3
-
4
- module Logue
5
- class Element
6
- attr_reader :object
7
-
8
- def initialize object
9
- @object = object
10
- end
11
-
12
- def write output = $stdout
13
- output.print @object.to_s
14
- end
15
- end
16
- end
data/lib/logue/frame.rb DELETED
@@ -1,37 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
3
-
4
- require 'pathname'
5
-
6
- module Logue
7
- class Frame
8
- FRAME_RE = Regexp.new '(.*):(\d+)(?::in \`(.*)\')?'
9
-
10
- attr_reader :path
11
- attr_reader :line
12
- attr_reader :method
13
-
14
- def initialize entry: nil, path: nil, line: nil, method: nil
15
- # entry if called from "caller(x)" elements, path/line/method if called from
16
- # "caller_location(x)" elements.
17
- if entry
18
- md = FRAME_RE.match entry
19
- @path = md[1]
20
- @line = md[2].to_i
21
- @method = md[3] || ""
22
- else
23
- @path = path
24
- @line = line
25
- @method = method
26
- end
27
- end
28
-
29
- def to_s
30
- [ :path, :line, :method ].collect { |field| "#{field}: " + send(field).to_s }.join ", "
31
- end
32
-
33
- def formatted format, cname
34
- format.format @path, @line, cname, @method
35
- end
36
- end
37
- end
data/lib/logue/line.rb DELETED
@@ -1,44 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
3
-
4
- require 'logue/location_format'
5
- require 'logue/element'
6
- require 'stringio'
7
-
8
- module Logue
9
- class Line
10
- attr_reader :location
11
- attr_reader :msg
12
- attr_reader :obj
13
- attr_reader :block
14
-
15
- def initialize location, msg, obj = nil, &blk
16
- @location = location
17
- @msg = msg
18
- @obj = obj
19
- @block = blk
20
- end
21
-
22
- def location_string locformat
23
- @location.format locformat
24
- end
25
-
26
- def message_string
27
- if @block
28
- @block.call.to_s
29
- elsif @obj
30
- elmt = Element.new @obj
31
- io = StringIO.new
32
- elmt.write io
33
- io.close
34
- @msg.to_s + ": " + io.string
35
- else
36
- @msg.to_s
37
- end
38
- end
39
-
40
- def format locformat
41
- location_string(locformat) + " " + message_string
42
- end
43
- end
44
- end
@@ -1,24 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
3
-
4
- require 'logue/location_format'
5
-
6
- module Logue
7
- class Location
8
- attr_reader :path
9
- attr_reader :line
10
- attr_reader :cls
11
- attr_reader :method
12
-
13
- def initialize path, line, cls, method
14
- @path = path
15
- @line = line
16
- @cls = cls
17
- @method = method
18
- end
19
-
20
- def format locformat
21
- locformat.format @path, @line, @cls, @method
22
- end
23
- end
24
- end
@@ -1,39 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # -*- ruby -*-
3
-
4
- module Logue
5
- class PathUtil
6
- class << self
7
- def trim_left str, maxlen
8
- str[0, maxlen] || ""
9
- end
10
-
11
- def trim_right str, maxlen
12
- if str.length > maxlen
13
- trim_path_right str, maxlen
14
- else
15
- str
16
- end
17
- end
18
-
19
- def trim_path_right path, maxlen
20
- return "" if maxlen < 0
21
- comps = path.split "/"
22
- str = comps.pop
23
- comps.reverse.each do |comp|
24
- newstr = comp + "/" + str
25
- if newstr.length + 4 <= maxlen
26
- str = newstr
27
- else
28
- newstr = ".../" + str
29
- if newstr.length <= maxlen
30
- str = newstr
31
- end
32
- break
33
- end
34
- end
35
- str
36
- end
37
- end
38
- end
39
- end