singlogger 0.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f8045d7390151924e109e664a844ff94598b2fd3245526258697c6410426d7d0
4
+ data.tar.gz: 56b6e456e38d4816c306bec439d8dd826a09309f41b95297c271dd0333733843
5
+ SHA512:
6
+ metadata.gz: 38ce691d8b27911ad97591d64bb1a80ab9980bc0d0fd1dd4741093e18059786e6f8311c5582d5e52af37e234252c230e9b9d68753d4abd61f8cb3bd0ee9e1d7a
7
+ data.tar.gz: 8ee554c571b7ef12dac135a3e0827f4198c225cd8ca25cf4df88b698959cc45e332fadf7727b8b053a6140882917ce3b3f07c906373ee1d2dec5963079448cbe
@@ -0,0 +1,8 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.5.0
5
+ before_install: gem install bundler -v 1.16.1
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in singlogger.gemspec
6
+ gemspec
@@ -0,0 +1,32 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ singlogger (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ docile (1.1.5)
10
+ json (2.1.0)
11
+ power_assert (1.1.3)
12
+ rake (10.5.0)
13
+ simplecov (0.14.1)
14
+ docile (~> 1.1.0)
15
+ json (>= 1.8, < 3)
16
+ simplecov-html (~> 0.10.0)
17
+ simplecov-html (0.10.2)
18
+ test-unit (3.2.8)
19
+ power_assert
20
+
21
+ PLATFORMS
22
+ ruby
23
+
24
+ DEPENDENCIES
25
+ bundler (~> 1.16)
26
+ rake (~> 10.0)
27
+ simplecov (~> 0.14.1)
28
+ singlogger!
29
+ test-unit (~> 3.2.8)
30
+
31
+ BUNDLED WITH
32
+ 1.16.1
@@ -0,0 +1,51 @@
1
+ # SingLogger
2
+
3
+ This is a simple singleton wrapper around the Logger class.
4
+
5
+ I'm sure others have done this, but I found myself copying and pasting this
6
+ wrapper into every project I write, so I thought it made sense to put it into a
7
+ single gem that I can import wherever I want!
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ ```ruby
14
+ gem 'singlogger'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install singlogger
24
+
25
+ ## Usage
26
+
27
+ I generally start by using `SingLogger.set_level_from_string()` when the
28
+ application runs, based on a user parameter. You can use
29
+ `SingLogger.set_level_from_string()` or `SingLogger.set_level()` any time you
30
+ want to change it. `set_level()` takes logger constants, such as
31
+ `::Logger::DEBUG`, `::Logger::INFO`, etc.
32
+
33
+ If you don't want to use STDERR for the sink, it's important to set the `sink:`
34
+ parameter of `SingLogger.instance()` the first time you use it. That'll set the
35
+ sink of the logger going forward.
36
+
37
+ To actually log, in the `initialize()` function of your classes, add
38
+
39
+ @logger = SingLogger.instance()
40
+
41
+ Then when you want to log:
42
+
43
+ @logger.debug("debug message")
44
+ @logger.info("info message")
45
+ @logger.warn("warn message")
46
+ @logger.error("error message")
47
+ @logger.fatal("fatal message")
48
+
49
+ ## Contributing
50
+
51
+ Bug reports and pull requests are welcome on GitHub at https://github.com/iagox86/singlogger.
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList["test/**/*_test.rb"]
8
+ end
9
+
10
+ task :default => :test
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "singlogger"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,55 @@
1
+ ##
2
+ # singlogger.rb
3
+ # By Ron
4
+ # 2018-01
5
+ #
6
+ # This is a simple wrapper around the ruby Logger class to make it a singleton
7
+ # (since it's a little weird to create new instances all over the place)
8
+ ##
9
+
10
+ require 'logger'
11
+
12
+ class SingLogger < ::Logger
13
+ VERSION = "0.0.1"
14
+
15
+ @@instance = nil
16
+
17
+ private
18
+ def initialize(level:, sink:)
19
+ super(sink)
20
+ @level = level
21
+ end
22
+
23
+ public
24
+ def self.instance(level: nil, sink: ::STDERR)
25
+ if(@@instance)
26
+ if(level)
27
+ @@instance.level = level
28
+ end
29
+ return @@instance
30
+ end
31
+
32
+ @@instance = SingLogger.new(level: (level || ::Logger::INFO), sink: sink)
33
+ return @@instance
34
+ end
35
+
36
+ public
37
+ def self.set_level(level:)
38
+ self.instance(level: level)
39
+ end
40
+
41
+ public
42
+ def self.set_level_from_string(level:)
43
+
44
+ self.set_level(level: ::Logger::DEBUG)
45
+ if(level =~ /info/i)
46
+ self.set_level(level: ::Logger::INFO)
47
+ elsif(level =~ /warn/i)
48
+ self.set_level(level: ::Logger::WARN)
49
+ elsif(level =~ /error/i)
50
+ self.set_level(level: ::Logger::ERROR)
51
+ elsif(level =~ /fatal/i)
52
+ self.set_level(level: ::Logger::FATAL)
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,28 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "singlogger"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "singlogger"
8
+ spec.version = SingLogger::VERSION
9
+ spec.authors = ["iagox86"]
10
+ spec.email = ["ron-git@skullsecurity.org"]
11
+ spec.license = '0BSD'
12
+
13
+ spec.summary = "Singleton wrapper around Logger"
14
+ spec.description = "A simple Singleton wrapper around the ruby Logger class, gem-ified it because I found myself using it in several different projects"
15
+ spec.homepage = "https://github.com/iagox86/singlogger"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.16"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "test-unit", "~> 3.2"
27
+ spec.add_development_dependency "simplecov", "~> 0.14.1"
28
+ end
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: singlogger
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - iagox86
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-07-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: test-unit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.14.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.14.1
69
+ description: A simple Singleton wrapper around the ruby Logger class, gem-ified it
70
+ because I found myself using it in several different projects
71
+ email:
72
+ - ron-git@skullsecurity.org
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".travis.yml"
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - README.md
82
+ - Rakefile
83
+ - bin/console
84
+ - bin/setup
85
+ - lib/singlogger.rb
86
+ - singlogger.gemspec
87
+ homepage: https://github.com/iagox86/singlogger
88
+ licenses:
89
+ - 0BSD
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.7.3
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Singleton wrapper around Logger
111
+ test_files: []