terminal_colors 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []