terminal_colors 0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9a4eb15311221d34c1db2c612d24a48c122d45aa
4
+ data.tar.gz: 38d95ae8f22a5844121cc68d8154eb8e034bffb0
5
+ SHA512:
6
+ metadata.gz: a18ed700d02e3c5c75b860f13562d00f76b23593e1db63e55a1c43234f7604edf83a9f61a3f7458f36ed1bd196b8e133e5541f765ad79150f30d42bc25104049
7
+ data.tar.gz: c742f755f924fd4631b8f95e1017baf36d8cda8e20be70f83cf0b6ef1cf949e948752b82af362118dd1ff96d9e5a31f179deae4f1901ed7d82573632c40a6e1e
@@ -0,0 +1,30 @@
1
+ module TerminalColors
2
+ module Apply
3
+ def self.call string, fg: nil, bg: nil, bold: nil
4
+ output = String.new
5
+
6
+ styled = fg || bg || bold
7
+
8
+ if styled
9
+ fg = Palette.fetch fg if fg
10
+ bg = Palette.fetch bg if bg
11
+ bold_octet = bold ? '1' : '0'
12
+
13
+ output << "\e[#{bold_octet}"
14
+ output << ";" if fg or bg
15
+ output << "3#{fg}" if fg
16
+ output << ";" if fg and bg
17
+ output << "4#{bg}" if bg
18
+ output << "m"
19
+ end
20
+
21
+ output << string
22
+
23
+ if styled
24
+ output << "\e[0m"
25
+ end
26
+
27
+ output
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ module TerminalColors
2
+ InvalidLabelError = Class.new StandardError
3
+ end
@@ -0,0 +1,24 @@
1
+ module TerminalColors
2
+ module Palette
3
+ def self.fetch label_or_index
4
+ index = get label_or_index
5
+
6
+ if index.nil?
7
+ raise InvalidLabelError, "Invalid label #{label_or_index.inspect}"
8
+ end
9
+
10
+ index
11
+ end
12
+
13
+ def self.get label_or_index
14
+ case label_or_index
15
+ when Integer then label_or_index
16
+ else list.index label_or_index.to_sym
17
+ end
18
+ end
19
+
20
+ def self.list
21
+ @list ||= %i(black red green yellow blue magenta cyan white)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,3 @@
1
+ require 'terminal_colors/apply'
2
+ require 'terminal_colors/invalid_label_error'
3
+ require 'terminal_colors/palette'
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: terminal_colors
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Nathan Ladd
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-12-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Apply ANSI terminal colors to strings
14
+ email: nathanladd+github@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/terminal_colors.rb
20
+ - lib/terminal_colors/apply.rb
21
+ - lib/terminal_colors/invalid_label_error.rb
22
+ - lib/terminal_colors/palette.rb
23
+ homepage: https://github.com/ntl/terminal-colors
24
+ licenses:
25
+ - MIT
26
+ metadata: {}
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 2.6.8
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Apply ANSI terminal colors to strings
47
+ test_files: []