cmessages 0.1.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
+ SHA256:
3
+ metadata.gz: '0119dff67dc1b586119287ea69e4e5535e630773ab4539269a9f15a441ca564b'
4
+ data.tar.gz: 92b3f3b789a463eecd807a36f6a300023fb43360a335faed90eb3f2f6a5a73ff
5
+ SHA512:
6
+ metadata.gz: bf65cc481b2ff4bc7a817bc9403fb1a5da580b42ff7b9d7f0bab175b88aafb29626b65ade500e931f748571e0dbb10cbd73557011b1259036503d7b7c3e969fa
7
+ data.tar.gz: ca0d42d9dd2427c89e0a3824df433ddf41519c7822edb47eb01dac5738abf2806f9f05d296eff4f624b23a9e5a2c24905a01e301ce16b3158647d5d3dd74afff
data/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ # Just override github
2
+ * linguist-language=Ruby
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ .idea
2
+ ab-results*
3
+
4
+ /.bundle/
5
+ /.yardoc
6
+ /_yardoc/
7
+ /coverage/
8
+ /doc/
9
+ /pkg/
10
+ /spec/reports/
11
+ /tmp/
12
+
13
+ /Gemfile.lock
14
+
15
+ *.gem
16
+
17
+ # rspec failure tracking
18
+ .rspec_status
19
+
20
+ .lock
21
+
22
+ .caretaker.yml
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,44 @@
1
+ Layout/IndentationWidth:
2
+ Width: 4
3
+
4
+ Layout/LineLength:
5
+ Enabled: false
6
+
7
+ Layout/SpaceAroundOperators:
8
+ Enabled: false
9
+
10
+ Metrics/AbcSize:
11
+ Enabled: false
12
+
13
+ Metrics/BlockLength:
14
+ Enabled: false
15
+
16
+ Metrics/ClassLength:
17
+ Enabled: false
18
+
19
+ Metrics/CyclomaticComplexity:
20
+ Enabled: false
21
+
22
+ Metrics/MethodLength:
23
+ Enabled: false
24
+
25
+ Metrics/PerceivedComplexity:
26
+ Enabled: false
27
+
28
+ Style/FrozenStringLiteralComment:
29
+ Enabled: false
30
+
31
+ Style/HashSyntax:
32
+ Enabled: false
33
+
34
+ Style/RedundantParentheses:
35
+ Enabled: false
36
+
37
+ Style/RedundantBegin:
38
+ Enabled: false
39
+
40
+ Style/RedundantReturn:
41
+ Enabled: false
42
+
43
+ Style/SpecialGlobalVars:
44
+ Enabled: false
data/.travis.yml ADDED
@@ -0,0 +1,69 @@
1
+ matrix:
2
+ include:
3
+ - language: ruby
4
+ name: Bundler (rvm 2.4 & bundler 1.17.3)
5
+ rvm: 2.4
6
+ before_install:
7
+ - gem install bundler -v 1.17.3
8
+ - language: ruby
9
+ name: Bundler (rvm 2.4 & bundler 2.0.1)
10
+ rvm: 2.4
11
+ before_install:
12
+ - gem install bundler -v 2.0.1
13
+ - language: ruby
14
+ name: Bundler (rvm 2.5 & bundler 2.0.1)
15
+ rvm: 2.5
16
+ before_install:
17
+ - gem install bundler -v 2.0.1
18
+ - language: ruby
19
+ name: Bundler (rvm 2.6 & bundler 2.0.1)
20
+ rvm: 2.6
21
+ before_install:
22
+ - gem install bundler -v 2.0.1
23
+ - language: ruby
24
+ name: Rubocop (rvm 2.4)
25
+ env: SKIP_INTERPRETER=true
26
+ rvm: 2.4
27
+ before_install:
28
+ - git clone https://github.com/TravisToolbox/rubocop-travis.git
29
+ install:
30
+ - "./rubocop-travis/install.sh"
31
+ script:
32
+ - "./rubocop-travis/scan.sh"
33
+ - language: ruby
34
+ name: Rubocop (rvm 2.5)
35
+ env: SKIP_INTERPRETER=true
36
+ rvm: 2.5
37
+ before_install:
38
+ - git clone https://github.com/TravisToolbox/rubocop-travis.git
39
+ install:
40
+ - "./rubocop-travis/install.sh"
41
+ script:
42
+ - "./rubocop-travis/scan.sh"
43
+ - language: ruby
44
+ name: Rubocop (rvm 2.6)
45
+ env: SKIP_INTERPRETER=true
46
+ rvm: 2.6
47
+ before_install:
48
+ - git clone https://github.com/TravisToolbox/rubocop-travis.git
49
+ install:
50
+ - "./rubocop-travis/install.sh"
51
+ script:
52
+ - "./rubocop-travis/scan.sh"
53
+ - language: ruby
54
+ name: Link Checking (rvm 2.6)
55
+ rvm: 2.6
56
+ env:
57
+ - WHITELIST="https://img.shields.io"
58
+ - EXCLUDE_FILES="CHANGELOG.md"
59
+ before_install:
60
+ - mkdir travis
61
+ - git clone https://github.com/TravisToolbox/awesomebot-travis.git travis/awesomebot
62
+ install:
63
+ - "./travis/awesomebot/install.sh"
64
+ script:
65
+ - "./travis/awesomebot/scan.sh"
66
+ notifications:
67
+ email: false
68
+ slack:
69
+ secure: oW+QJywQdCoGoyIwystfLulGhUGP2ZzXtyNn3bq6SjbsxBE1i1LuOJEK+mJF6LB84vijQA8/pgWB8Tt0+kMwhN89ShjpVaTpXqXBbq75T7K7dVKyzftvgLa3VfKAH8yo0fmDXvyhcuIq7OTyou8b0QBuN1jevebi7tgixW6xKepP/ICTtYXKMaXHAvLuhn4E7mMx27mRyqHhiFMYqpgSBD1XwvA/m+jAFOP3O/JnzYaWaZEjDn0nxSqv2qQW2zU1ehh7/rIL75kkvaL2LsOVRKWEVjskCGtCrKm9uZ4gsFhZ6gjf7uQy7pWbYJo9DaCRT4m8Y7qZD+DxG489lp41OZRB6oqFxFITGcgUMDcvbqgska5z/tsJYOWcjxP8spiJAHIJB7ubnvq1Q5LoRTY2nZOuH/YMbaS4bcAldz8EDGlFp9rd8aRgKPtKMxqcnTc7bHZnfOEUVDeiV/oAPV7QC0N7ZXzbPWlCgurpS10/uw/Bb4pph7ds+eKG3zaKgSNvVVijvwCfQi5yyhZ8USWueQdL5a5iwbGeuEq7hphMh13MGayjVnlWOi/QicPQv/zEVPe7IwQw/I4iO7zHbdVuPXW2Lewi2nI/Hbq54FbGtNgiL2iwAOcjSoAn8iLXH+jkTw8v4GSUSFzIhR0dfjxopVvCz+VNY7GIMZEV5S6snBU=
data/CODEOWNERS ADDED
@@ -0,0 +1,7 @@
1
+ # The codeowners file:
2
+ #
3
+ # For more information please read: https://help.github.com/articles/about-codeowners/
4
+
5
+ # These owners will be the default owners for everything in
6
+ # the repo. Unless a later match takes precedence,
7
+ * @WolfSoftware/reviewers
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,3 @@
1
+ # Contributing
2
+
3
+ Please refer to the [contributing](https://github.com/WolfSoftware/contributing) documentation.
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 slackit.gemspec
6
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,24 @@
1
+ # The MIT License (MIT)
2
+
3
+ Copyright © `2016 - 2020` `Wolf Software Limited`
4
+
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the “Software”), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,119 @@
1
+ [![Build Status](https://img.shields.io/travis/WolfSoftware/cmessages/master?style=for-the-badge&logo=travis)](https://travis-ci.org/WolfSoftware/cmessages)
2
+ [![Software License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE.md)
3
+ [![Release](https://img.shields.io/github/release/WolfSoftware/cmessages?color=blue&style=for-the-badge&logo=github&label=Latest%20Release)](https://github.com/WolfSoftware/cmessages/releases/latest)
4
+ [![Last Release](https://img.shields.io/github/release-date/WolfSoftware/cmessages?color=blue&style=for-the-badge&logo=github)](https://github.com/WolfSoftware/cmessages/releases/latest)
5
+ [![Github commits (since latest release)](https://img.shields.io/github/commits-since/WolfSoftware/cmessages/latest?color=blue&style=for-the-badge&logo=github)](https://github.com/WolfSoftware/cmessages/commits)
6
+ [![Last Commit](https://img.shields.io/github/last-commit/WolfSoftware/cmessages?color=blue&style=for-the-badge&logo=github)](https://github.com/WolfSoftware/cmessages/commits/master)
7
+ [![WolfSoftware](https://img.shields.io/badge/Released%20By-Wolf%20Software%20Ltd.-blue?style=for-the-badge)](https://github.com/WolfSoftware)
8
+
9
+ # Cmessages
10
+
11
+ A simple gem for outputting console errors/warnings/success/info messages. The module has 4 main functions.
12
+
13
+ * Error - Display an error message - Default light red text with an ```[ Error ]``` prefix.
14
+ * Warning - Display a warning message - Default light yellow text with an ```[ Warning ]``` prefix.
15
+ * Success - Display a success message - Default light green text with an ```[ Success ]``` prefix.
16
+ * Info - Display an info message - Default light cyan text with an ```[ Info ]``` prefix.
17
+
18
+ It is possible to disable colour, disable prefixed, define custom colours and custom prefixes.
19
+
20
+ ## Installation
21
+
22
+ Add this line to your application's Gemfile:
23
+
24
+ ```ruby
25
+ gem 'cmessages'
26
+ ```
27
+
28
+ And then execute:
29
+
30
+ ```
31
+ bundle install
32
+ ```
33
+
34
+ Or install it yourself as:
35
+
36
+ ```
37
+ gem install cmessages
38
+ ```
39
+
40
+ ## Usage
41
+
42
+ ### Default Users
43
+
44
+ ```ruby
45
+ cm = Cmessages.new()
46
+
47
+ cm.error('This is an error message')
48
+ cm.warning('This is a warning warning')
49
+ cm.success('This is a success message')
50
+ cm.info('This is an info message')
51
+ ```
52
+
53
+ It is also possible to chain the functions.
54
+
55
+ ```ruby
56
+ message='This is an error message'
57
+ message.error
58
+ ```
59
+
60
+ ### Advanced Usage
61
+
62
+ It is possible to pass configuration when creating a new instance of cmessages.
63
+
64
+ ```
65
+ cm = Cmessages.new( { use_prefixes => false } )
66
+ cm.error('This is an error with no prefix')
67
+ ```
68
+
69
+ or
70
+
71
+ ```
72
+ message='This is an error message'
73
+ message.error( { use_prefixes => false } )
74
+ ```
75
+
76
+ ### Configuration Options
77
+
78
+ | Name | Purpose | Default |
79
+ | ---- | ------- |:-------:|
80
+ | :error_colour | Set the colour for an error message | :light_red |
81
+ | :warning_colour | Set the colour for a warning message | :light_yellow |
82
+ | :success_colour | Set the colour for a warning message | :light_green |
83
+ | :info_colour | Set the colour for an info message | :light_cyan |
84
+ | :error_prefix | Set the colour for an error message | '[ Error ]' |
85
+ | :warning_prefix | Set the colour for a warning message | '[ Warning ]' |
86
+ | :success_prefix | Set the colour for a warning message | '[ Success ]' |
87
+ | :info_prefix | Set the colour for an info message | '[ Info ]' |
88
+ | :use_colours | Should we use colour in the output | true |
89
+ | :use_prefixes | Should we use prefies in the output | true |
90
+
91
+ ### Valid Colours
92
+
93
+ | Default Colour | Highlighted Colour |
94
+ | -------------- | ------------------ |
95
+ | :black | :light_black |
96
+ | :red | :light_red |
97
+ | :green | :light_green |
98
+ | :yellow | :light_yellow |
99
+ | :blue | :light_blue |
100
+ | :magenta | :light_magenta |
101
+ | :cyan | ;light_cyan |
102
+ | :white | :light_white |
103
+ | :default | N/A |
104
+
105
+ > Note: If you use an invalid colour, it will not error, it will simply use the default colour instead.
106
+
107
+ ## Development
108
+
109
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
110
+
111
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
112
+
113
+ ### Testing
114
+
115
+ For local testing make sure that you run `bundle exec rspec spec` and then `rake install` to install the gem locally.
116
+
117
+ For further information please refer to the [contributing](https://github.com/WolfSoftware/contributing) documentation.
118
+
119
+ <p align="right"><img src="https://img.shields.io/badge/Created%20By-Wolf-black?style=for-the-badge" /></p>
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'cmessages'
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__)
data/bin/setup ADDED
@@ -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
data/cmessages.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'cmessages/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'cmessages'
7
+ spec.version = Cmessages::VERSION
8
+ spec.authors = ['Tim Gurney aka Wolf']
9
+ spec.email = ['wolf@tgwolf.com']
10
+
11
+ spec.summary = 'A simple gem for outputting console errors/warnings/success/info messages.'
12
+ spec.description = 'A simple gem for outputting console errors/warnings/success/info messages.'
13
+ spec.homepage = 'https://github.com/WolfSoftware/cmessages'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+
18
+ spec.bindir = 'exe'
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_development_dependency 'bundler', '>= 1.17', '< 3.0'
23
+ spec.add_development_dependency 'colorize', '~> 0.8.0'
24
+ spec.add_development_dependency 'rake', '~> 13.0'
25
+ spec.add_development_dependency 'rspec', '~> 3.0'
26
+
27
+ spec.add_runtime_dependency 'colorize', '~> 0.8.0'
28
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift('./lib')
4
+
5
+ require 'bundler/setup'
6
+ require 'cmessages'
7
+
8
+ test = Cmessages.new
9
+
10
+ test.error('This is an error')
11
+ test.warning('This is a warning')
12
+ test.success('This is a success')
13
+ test.info('This is a message')
14
+
15
+ 'This is an error'.error
16
+ 'This is a warning'.warning
17
+ 'This is a success'.success
18
+ 'This is a message'.info
19
+
20
+ 'This is a customised error'.error(:error_colour => :magenta, :error_prefix => '[ Custom Error ]')
21
+ 'This is a customised error with no prefix'.error(:error_colour => :blue, :use_prefixes => false)
22
+ 'This is a customised error with no prefix or colour'.error(:use_colours => false, :use_prefixes => false)
23
+
24
+ 'This is a customised error with an invalid colour'.error(:error_colour => :invalid_colour, :error_prefix => '[ Custom Error ]')
data/lib/cmessages.rb ADDED
@@ -0,0 +1,81 @@
1
+ require 'cmessages/overloads.rb'
2
+ require 'cmessages/version'
3
+
4
+ require 'colorize'
5
+
6
+ #
7
+ # Docs to follow
8
+ #
9
+ class Cmessages
10
+ def initialize(options = {})
11
+ @valid_colours = %I[black light_black red light_red green light_green yellow light_yellow blue light_blue magenta light_magenta cyan light_cyan white light_white default]
12
+
13
+ @error_colour = :light_red
14
+ @warning_colour = :light_yellow
15
+ @success_colour = :light_green
16
+ @info_colour = :light_cyan
17
+
18
+ @error_prefix = '[ Error ]'
19
+ @warning_prefix = '[ Warning ]'
20
+ @success_prefix = '[ Success ]'
21
+ @info_prefix = '[ Info ]'
22
+
23
+ @use_colours = true unless options.key?(:use_colours) && options[:use_colours] == false
24
+ @use_prefixes = true unless options.key?(:use_prefixes) && options[:use_prefixes] == false
25
+
26
+ @error_colour = options[:error_colour] if options.key?(:error_colour) && valid_colour(options[:error_colour])
27
+ @warning_colour = options[:warning_colour] if options.key?(:warning_colour) && valid_colour(options[:warning_colour])
28
+ @success_colour = options[:success_colour] if options.key?(:success_colour) && valid_colour(options[:success_colour])
29
+ @info_colour = options[:info_colour] if options.key?(:info_colour) && valid_colour(options[:info_colour])
30
+
31
+ @error_prefix = options[:error_prefix] if options.key?(:error_prefix)
32
+ @warning_prefix = options[:warning_prefix] if options.key?(:warning_prefix)
33
+ @success_prefix = options[:success_prefix] if options.key?(:success_prefix)
34
+ @info_prefix = options[:info_prefix] if options.key?(:info_prefix)
35
+ end
36
+
37
+ def valid_colour(colour)
38
+ return @valid_colours.include?(colour)
39
+ end
40
+
41
+ def error(message = nil)
42
+ return if message.nil?
43
+
44
+ real_show_messge(@error_prefix, message, @error_colour)
45
+ end
46
+
47
+ def warning(message = nil)
48
+ return if message.nil?
49
+
50
+ real_show_messge(@warning_prefix, message, @warning_colour)
51
+ end
52
+
53
+ def success(message = nil)
54
+ return if message.nil?
55
+
56
+ real_show_messge(@success_prefix, message, @success_colour)
57
+ end
58
+
59
+ def info(message = nil)
60
+ return if message.nil?
61
+
62
+ real_show_messge(@info_prefix, message, @info_colour)
63
+ end
64
+
65
+ def real_show_messge(prefix, message, colour)
66
+ return if message.nil?
67
+
68
+ return if message.empty?
69
+
70
+ # String contains 0 or more white-space character and nothing else.
71
+ return if message =~ /^\s*$/
72
+
73
+ message = "#{prefix} #{message}" if @use_prefixes
74
+
75
+ if @use_colours
76
+ puts message.colorize(colour)
77
+ else
78
+ puts message
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,22 @@
1
+ # Overloads
2
+
3
+ #
4
+ # Docs to follow
5
+ #
6
+ class String
7
+ def error(options = {})
8
+ Cmessages.new(options).error(self)
9
+ end
10
+
11
+ def warning(options = {})
12
+ Cmessages.new(options).warning(self)
13
+ end
14
+
15
+ def success(options = {})
16
+ Cmessages.new(options).success(self)
17
+ end
18
+
19
+ def info(options = {})
20
+ Cmessages.new(options).info(self)
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ class Cmessages
2
+ VERSION = '0.1.0'.freeze
3
+ end
@@ -0,0 +1,202 @@
1
+ require 'cmessages'
2
+
3
+ RSpec.describe Cmessages do
4
+ it 'has a version number' do
5
+ expect(Cmessages::VERSION).not_to be nil
6
+ end
7
+
8
+ context 'Class Accessor Method' do
9
+ before(:each) do
10
+ @cm = Cmessages.new
11
+ @cmnc = Cmessages.new(:use_colours => false)
12
+ @cmnp = Cmessages.new(:use_prefixes => false)
13
+ @cmncnp = Cmessages.new(:use_colours => false, :use_prefixes => false)
14
+ @cmcustome = Cmessages.new(:error_prefix => '{ Error }')
15
+ @cmcustomw = Cmessages.new(:warning_prefix => '{ Warning }')
16
+ @cmcustoms = Cmessages.new(:success_prefix => '{ Success }')
17
+ @cmcustomi = Cmessages.new(:info_prefix => '{ Info }')
18
+ end
19
+
20
+ context 'Error prefix validation' do
21
+ context 'default (colour and prefix)' do
22
+ specify { expect { @cm.error('foo') }.to output("\e[0;91;49m[ Error ] foo\e[0m\n").to_stdout }
23
+ end
24
+ context 'no colour' do
25
+ specify { expect { @cmnc.error('foo') }.to output("[ Error ] foo\n").to_stdout }
26
+ end
27
+ context 'no prefix' do
28
+ specify { expect { @cmnp.error('foo') }.to output("\e[0;91;49mfoo\e[0m\n").to_stdout }
29
+ end
30
+ context 'no prefix and no colour' do
31
+ specify { expect { @cmncnp.error('foo') }.to output("foo\n").to_stdout }
32
+ end
33
+ end
34
+
35
+ context 'Warning Prefixes' do
36
+ context 'default (colour and prefix)' do
37
+ specify { expect { @cm.warning('foo') }.to output("\e[0;93;49m[ Warning ] foo\e[0m\n").to_stdout }
38
+ end
39
+ context 'no colour' do
40
+ specify { expect { @cmnc.warning('foo') }.to output("[ Warning ] foo\n").to_stdout }
41
+ end
42
+ context 'no prefix' do
43
+ specify { expect { @cmnp.warning('foo') }.to output("\e[0;93;49mfoo\e[0m\n").to_stdout }
44
+ end
45
+ context 'no prefix and no colour' do
46
+ specify { expect { @cmncnp.warning('foo') }.to output("foo\n").to_stdout }
47
+ end
48
+ end
49
+
50
+ context 'Success Prefixes' do
51
+ context 'default (colour and prefix)' do
52
+ specify { expect { @cm.success('foo') }.to output("\e[0;92;49m[ Success ] foo\e[0m\n").to_stdout }
53
+ end
54
+ context 'no colour' do
55
+ specify { expect { @cmnc.success('foo') }.to output("[ Success ] foo\n").to_stdout }
56
+ end
57
+ context 'no prefix' do
58
+ specify { expect { @cmnp.success('foo') }.to output("\e[0;92;49mfoo\e[0m\n").to_stdout }
59
+ end
60
+ context 'no prefix and no colour' do
61
+ specify { expect { @cmncnp.success('foo') }.to output("foo\n").to_stdout }
62
+ end
63
+ end
64
+
65
+ context 'Info Prefixes' do
66
+ context 'default (colour and prefix)' do
67
+ specify { expect { @cm.info('foo') }.to output("\e[0;96;49m[ Info ] foo\e[0m\n").to_stdout }
68
+ end
69
+ context 'no colour' do
70
+ specify { expect { @cmnc.info('foo') }.to output("[ Info ] foo\n").to_stdout }
71
+ end
72
+ context 'no prefix' do
73
+ specify { expect { @cmnp.info('foo') }.to output("\e[0;96;49mfoo\e[0m\n").to_stdout }
74
+ end
75
+ context 'no prefix and no colour' do
76
+ specify { expect { @cmncnp.info('foo') }.to output("foo\n").to_stdout }
77
+ end
78
+ end
79
+
80
+ context 'Custom Prefixes' do
81
+ context 'error prefix' do
82
+ specify { expect { Cmessages.new(:error_prefix => '{ Error }').error('foo') }.to output("\e[0;91;49m{ Error } foo\e[0m\n").to_stdout }
83
+ end
84
+ context 'warning prefix' do
85
+ specify { expect { Cmessages.new(:warning_prefix => '{ Warning }').warning('foo') }.to output("\e[0;93;49m{ Warning } foo\e[0m\n").to_stdout }
86
+ end
87
+ context 'success prefix' do
88
+ specify { expect { Cmessages.new(:success_prefix => '{ Success }').success('foo') }.to output("\e[0;92;49m{ Success } foo\e[0m\n").to_stdout }
89
+ end
90
+ context 'info prefix' do
91
+ specify { expect { Cmessages.new(:info_prefix => '{ Info }').info('foo') }.to output("\e[0;96;49m{ Info } foo\e[0m\n").to_stdout }
92
+ end
93
+ end
94
+
95
+ context 'Custom Colours' do
96
+ context 'error colour' do
97
+ specify { expect { Cmessages.new(:error_colour => :blue).error('foo') }.to output("\e[0;34;49m[ Error ] foo\e[0m\n").to_stdout }
98
+ end
99
+ context 'warning colour' do
100
+ specify { expect { Cmessages.new(:warning_colour => :white).warning('foo') }.to output("\e[0;37;49m[ Warning ] foo\e[0m\n").to_stdout }
101
+ end
102
+ context 'success colour' do
103
+ specify { expect { Cmessages.new(:success_colour => :black).success('foo') }.to output("\e[0;30;49m[ Success ] foo\e[0m\n").to_stdout }
104
+ end
105
+ context 'info colour' do
106
+ specify { expect { Cmessages.new(:info_colour => :magenta).info('foo') }.to output("\e[0;35;49m[ Info ] foo\e[0m\n").to_stdout }
107
+ end
108
+ end
109
+ end
110
+
111
+ context 'String Accessor Method' do
112
+ context 'Error prefix validation' do
113
+ context 'default (colour and prefix)' do
114
+ specify { expect { 'foo'.error }.to output("\e[0;91;49m[ Error ] foo\e[0m\n").to_stdout }
115
+ end
116
+ context 'no colour' do
117
+ specify { expect { 'foo'.error(:use_colours => false) }.to output("[ Error ] foo\n").to_stdout }
118
+ end
119
+ context 'no prefix' do
120
+ specify { expect { 'foo'.error(:use_prefixes => false) }.to output("\e[0;91;49mfoo\e[0m\n").to_stdout }
121
+ end
122
+ context 'no prefix and no colour' do
123
+ specify { expect { 'foo'.error(:use_colours => false, :use_prefixes => false) }.to output("foo\n").to_stdout }
124
+ end
125
+ end
126
+
127
+ context 'Warning Prefixes' do
128
+ context 'default (colour and prefix)' do
129
+ specify { expect { 'foo'.warning }.to output("\e[0;93;49m[ Warning ] foo\e[0m\n").to_stdout }
130
+ end
131
+ context 'no colour' do
132
+ specify { expect { 'foo'.warning(:use_colours => false) }.to output("[ Warning ] foo\n").to_stdout }
133
+ end
134
+ context 'no prefix' do
135
+ specify { expect { 'foo'.warning(:use_prefixes => false) }.to output("\e[0;93;49mfoo\e[0m\n").to_stdout }
136
+ end
137
+ context 'no prefix and no colour' do
138
+ specify { expect { 'foo'.warning(:use_colours => false, :use_prefixes => false) }.to output("foo\n").to_stdout }
139
+ end
140
+ end
141
+
142
+ context 'Success Prefixes' do
143
+ context 'default (colour and prefix)' do
144
+ specify { expect { 'foo'.success }.to output("\e[0;92;49m[ Success ] foo\e[0m\n").to_stdout }
145
+ end
146
+ context 'no colour' do
147
+ specify { expect { 'foo'.success(:use_colours => false) }.to output("[ Success ] foo\n").to_stdout }
148
+ end
149
+ context 'no prefix' do
150
+ specify { expect { 'foo'.success(:use_prefixes => false) }.to output("\e[0;92;49mfoo\e[0m\n").to_stdout }
151
+ end
152
+ context 'no prefix and no colour' do
153
+ specify { expect { 'foo'.success(:use_colours => false, :use_prefixes => false) }.to output("foo\n").to_stdout }
154
+ end
155
+ end
156
+
157
+ context 'Info Prefixes' do
158
+ context 'default (colour and prefix)' do
159
+ specify { expect { 'foo'.info }.to output("\e[0;96;49m[ Info ] foo\e[0m\n").to_stdout }
160
+ end
161
+ context 'no colour' do
162
+ specify { expect { 'foo'.info(:use_colours => false) }.to output("[ Info ] foo\n").to_stdout }
163
+ end
164
+ context 'no prefix' do
165
+ specify { expect { 'foo'.info(:use_prefixes => false) }.to output("\e[0;96;49mfoo\e[0m\n").to_stdout }
166
+ end
167
+ context 'no prefix and no colour' do
168
+ specify { expect { 'foo'.info(:use_colours => false, :use_prefixes => false) }.to output("foo\n").to_stdout }
169
+ end
170
+ end
171
+
172
+ context 'Custom Prefixes' do
173
+ context 'error prefix' do
174
+ specify { expect { 'foo'.error(:error_prefix => '{ Error }') }.to output("\e[0;91;49m{ Error } foo\e[0m\n").to_stdout }
175
+ end
176
+ context 'warning prefix' do
177
+ specify { expect { 'foo'.warning(:warning_prefix => '{ Warning }') }.to output("\e[0;93;49m{ Warning } foo\e[0m\n").to_stdout }
178
+ end
179
+ context 'success prefix' do
180
+ specify { expect { 'foo'.success(:success_prefix => '{ Success }') }.to output("\e[0;92;49m{ Success } foo\e[0m\n").to_stdout }
181
+ end
182
+ context 'info prefix' do
183
+ specify { expect { 'foo'.info(:info_prefix => '{ Info }') }.to output("\e[0;96;49m{ Info } foo\e[0m\n").to_stdout }
184
+ end
185
+ end
186
+
187
+ context 'Custom Colours' do
188
+ context 'error colour' do
189
+ specify { expect { 'foo'.error(:error_colour => :blue) }.to output("\e[0;34;49m[ Error ] foo\e[0m\n").to_stdout }
190
+ end
191
+ context 'warning colour' do
192
+ specify { expect { 'foo'.warning(:warning_colour => :white) }.to output("\e[0;37;49m[ Warning ] foo\e[0m\n").to_stdout }
193
+ end
194
+ context 'success colour' do
195
+ specify { expect { 'foo'.success(:success_colour => :black) }.to output("\e[0;30;49m[ Success ] foo\e[0m\n").to_stdout }
196
+ end
197
+ context 'info colour' do
198
+ specify { expect { 'foo'.info(:info_colour => :magenta) }.to output("\e[0;35;49m[ Info ] foo\e[0m\n").to_stdout }
199
+ end
200
+ end
201
+ end
202
+ end
@@ -0,0 +1,26 @@
1
+ require 'bundler/setup'
2
+ require 'cmessages'
3
+
4
+ RSpec.configure do |config|
5
+ # Enable flags like --only-failures and --next-failure
6
+ config.example_status_persistence_file_path = '.rspec_status'
7
+
8
+ # Disable RSpec exposing methods globally on `Module` and `main`
9
+ config.disable_monkey_patching!
10
+
11
+ config.expect_with :rspec do |c|
12
+ c.syntax = :expect
13
+ end
14
+
15
+ original_stderr = $stderr
16
+ original_stdout = $stdout
17
+ config.before(:all) do
18
+ # Redirect stderr and stdout
19
+ $stderr = File.open(File::NULL, 'w')
20
+ $stdout = File.open(File::NULL, 'w')
21
+ end
22
+ config.after(:all) do
23
+ $stderr = original_stderr
24
+ $stdout = original_stdout
25
+ end
26
+ end
data/stale.yml ADDED
@@ -0,0 +1,17 @@
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 60
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: 7
5
+ # Issues with these labels will never be considered stale
6
+ exemptLabels:
7
+ - pinned
8
+ - security
9
+ # Label to use when marking an issue as stale
10
+ staleLabel: wontfix
11
+ # Comment to post when marking an issue as stale. Set to `false` to disable
12
+ markComment: >
13
+ This issue has been automatically marked as stale because it has not had
14
+ recent activity. It will be closed if no further activity occurs. Thank you
15
+ for your contributions.
16
+ # Comment to post when closing a stale issue. Set to `false` to disable
17
+ closeComment: true
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cmessages
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tim Gurney aka Wolf
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-03-03 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.17'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.17'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: colorize
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.8.0
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.8.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '13.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '13.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: colorize
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.8.0
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.8.0
89
+ description: A simple gem for outputting console errors/warnings/success/info messages.
90
+ email:
91
+ - wolf@tgwolf.com
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - ".gitattributes"
97
+ - ".gitignore"
98
+ - ".rspec"
99
+ - ".rubocop.yml"
100
+ - ".travis.yml"
101
+ - CODEOWNERS
102
+ - CONTRIBUTING.md
103
+ - Gemfile
104
+ - LICENSE.md
105
+ - README.md
106
+ - Rakefile
107
+ - bin/console
108
+ - bin/setup
109
+ - cmessages.gemspec
110
+ - examples/examples.rb
111
+ - lib/cmessages.rb
112
+ - lib/cmessages/overloads.rb
113
+ - lib/cmessages/version.rb
114
+ - spec/cmessages_spec.rb
115
+ - spec/spec_helper.rb
116
+ - stale.yml
117
+ homepage: https://github.com/WolfSoftware/cmessages
118
+ licenses:
119
+ - MIT
120
+ metadata: {}
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubygems_version: 3.1.2
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: A simple gem for outputting console errors/warnings/success/info messages.
140
+ test_files: []