colours 0.6.12
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of colours might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/LICENCE.md +22 -0
- data/README.md +970 -0
- data/bin/colours +7 -0
- data/bin/html_colour_to_hex_value +7 -0
- data/bin/html_colourize +7 -0
- data/bin/print_rainbow_line +7 -0
- data/bin/rainbow_colours +7 -0
- data/bin/remove_ansii_escape_sequences +7 -0
- data/colours.gemspec +76 -0
- data/doc/COLOUR_CODES_CHART.md +28 -0
- data/doc/HOW_TO_PICK_YOUR_OWN_COLOURS.md +29 -0
- data/doc/README.gen +927 -0
- data/doc/todo/todo.md +25 -0
- data/lib/colours/256_colours/support_for_256_colours.rb +190 -0
- data/lib/colours/autoalias_e.rb +10 -0
- data/lib/colours/autogenerated/README.md +2 -0
- data/lib/colours/autogenerated/support_for_256_colours.rb +2235 -0
- data/lib/colours/autogenerated/support_for_html_colours.rb +1778 -0
- data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +6367 -0
- data/lib/colours/autoinclude.rb +14 -0
- data/lib/colours/base/base.rb +23 -0
- data/lib/colours/basic_colours/README.md +4 -0
- data/lib/colours/basic_colours/basic_colours.rb +334 -0
- data/lib/colours/class/class.rb +125 -0
- data/lib/colours/colour_methods/README.md +11 -0
- data/lib/colours/colour_methods/default_colour.rb +66 -0
- data/lib/colours/colour_methods/sargument.rb +70 -0
- data/lib/colours/colour_methods/scomments.rb +105 -0
- data/lib/colours/colour_methods/sdir.rb +66 -0
- data/lib/colours/colour_methods/sfancy.rb +84 -0
- data/lib/colours/colour_methods/sfile.rb +71 -0
- data/lib/colours/colour_methods/simportant.rb +92 -0
- data/lib/colours/colour_methods/snormal.rb +66 -0
- data/lib/colours/colour_methods/ssymlink.rb +102 -0
- data/lib/colours/colour_methods/swarn.rb +76 -0
- data/lib/colours/colour_table/README.md +3 -0
- data/lib/colours/colour_table/colour_table.rb +275 -0
- data/lib/colours/colours_e_autoinclude.rb +9 -0
- data/lib/colours/commandline/README.md +2 -0
- data/lib/colours/commandline/commandline.rb +44 -0
- data/lib/colours/commandline/menu.rb +111 -0
- data/lib/colours/constants/colour_constants.rb +301 -0
- data/lib/colours/constants/file_constants.rb +72 -0
- data/lib/colours/constants/hash_simple_colours.rb +146 -0
- data/lib/colours/constants/misc.rb +59 -0
- data/lib/colours/constants/newline.rb +14 -0
- data/lib/colours/constants/registered_colour_methods.rb +53 -0
- data/lib/colours/e/README.md +13 -0
- data/lib/colours/e/autoinclude.rb +11 -0
- data/lib/colours/e/e.rb +35 -0
- data/lib/colours/e.rb +5 -0
- data/lib/colours/eparse/eparse.rb +77 -0
- data/lib/colours/everything/autoinclude.rb +11 -0
- data/lib/colours/html_colours/README.md +1 -0
- data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +22 -0
- data/lib/colours/html_colours/hash_html_colours.rb +63 -0
- data/lib/colours/html_colours/html_colourize.rb +48 -0
- data/lib/colours/html_colours/is_this_html_colour_included.rb +64 -0
- data/lib/colours/html_colours/misc.rb +186 -0
- data/lib/colours/html_colours/show_html_colours.rb +85 -0
- data/lib/colours/kde_colour_palette/kde_colour_palette.rb +128 -0
- data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +219 -0
- data/lib/colours/module.rb +11 -0
- data/lib/colours/project/project_base_directory.rb +22 -0
- data/lib/colours/rainbow_colours/README.md +2 -0
- data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +26 -0
- data/lib/colours/rainbow_colours/constants.rb +30 -0
- data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +164 -0
- data/lib/colours/rainbow_colours/paint_detected_mode.rb +20 -0
- data/lib/colours/rainbow_colours/print_rainbow_line.rb +68 -0
- data/lib/colours/rainbow_colours/println_ani.rb +32 -0
- data/lib/colours/rainbow_colours/println_plain.rb +36 -0
- data/lib/colours/rainbow_colours/rainbow.rb +38 -0
- data/lib/colours/rainbow_colours/report_errors.rb +32 -0
- data/lib/colours/rainbow_colours/returnln_plain.rb +63 -0
- data/lib/colours/rainbow_colours/set_mode.rb +24 -0
- data/lib/colours/requires/require_all_colour_methods.rb +5 -0
- data/lib/colours/requires/require_commandline.rb +7 -0
- data/lib/colours/requires/require_eparse.rb +11 -0
- data/lib/colours/requires/require_rgb.rb +5 -0
- data/lib/colours/requires/require_sdir.rb +5 -0
- data/lib/colours/requires/require_sfile.rb +5 -0
- data/lib/colours/requires/require_the_256_colours_module.rb +16 -0
- data/lib/colours/requires/require_the_basic_colours.rb +7 -0
- data/lib/colours/requires/require_the_colour_methods.rb +34 -0
- data/lib/colours/requires/require_the_colour_table.rb +7 -0
- data/lib/colours/requires/require_the_colours_project.rb +52 -0
- data/lib/colours/requires/require_the_constants.rb +11 -0
- data/lib/colours/requires/require_the_html_colours.rb +11 -0
- data/lib/colours/requires/require_the_kde_colour_palette.rb +7 -0
- data/lib/colours/requires/require_the_toplevel_methods.rb +42 -0
- data/lib/colours/requires/require_yaml.rb +9 -0
- data/lib/colours/revert/revert.rb +106 -0
- data/lib/colours/rgb/rgb.rb +547 -0
- data/lib/colours/testing/README.md +2 -0
- data/lib/colours/testing/testing.rb +157 -0
- data/lib/colours/toplevel_methods/bold.rb +35 -0
- data/lib/colours/toplevel_methods/bold_and_italic.rb +36 -0
- data/lib/colours/toplevel_methods/cat.rb +39 -0
- data/lib/colours/toplevel_methods/clear_screen.rb +18 -0
- data/lib/colours/toplevel_methods/cliner.rb +19 -0
- data/lib/colours/toplevel_methods/col.rb +56 -0
- data/lib/colours/toplevel_methods/e.rb +63 -0
- data/lib/colours/toplevel_methods/esystem.rb +19 -0
- data/lib/colours/toplevel_methods/fancy_parse.rb +83 -0
- data/lib/colours/toplevel_methods/html_colourize.rb +64 -0
- data/lib/colours/toplevel_methods/is_on_roebe.rb +16 -0
- data/lib/colours/toplevel_methods/italic.rb +110 -0
- data/lib/colours/toplevel_methods/make_colour.rb +29 -0
- data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +350 -0
- data/lib/colours/toplevel_methods/misc.rb +156 -0
- data/lib/colours/toplevel_methods/open_this_file.rb +26 -0
- data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +85 -0
- data/lib/colours/toplevel_methods/random_html_colour.rb +48 -0
- data/lib/colours/toplevel_methods/random_value.rb +37 -0
- data/lib/colours/toplevel_methods/remove_escape_sequence.rb +112 -0
- data/lib/colours/toplevel_methods/set_last_colour_used.rb +32 -0
- data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +36 -0
- data/lib/colours/toplevel_methods/underline.rb +129 -0
- data/lib/colours/toplevel_methods/use_colours.rb +290 -0
- data/lib/colours/utility_scripts/README.md +2 -0
- data/lib/colours/utility_scripts/autogenerate.rb +291 -0
- data/lib/colours/version/version.rb +25 -0
- data/lib/colours/yaml/256_colours.yml +277 -0
- data/lib/colours/yaml/basic_colours.yml +23 -0
- data/lib/colours/yaml/html_colours.yml +835 -0
- data/lib/colours/yaml/kde_colour_palette.yml +183 -0
- data/lib/colours/yaml/prefer_this_colour_schemata.yml +15 -0
- data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +15 -0
- data/lib/colours.rb +5 -0
- data/test/test.html +18 -0
- data/test/testing_256_colours_support.rb +29 -0
- data/test/testing_col.rb +10 -0
- data/test/testing_colours.rb +95 -0
- data/test/testing_colours_e.rb +13 -0
- data/test/testing_eparse.rb +13 -0
- data/test/testing_kde_colour_palette.rb +30 -0
- data/test/testing_konsole_submodule.rb +226 -0
- data/test/testing_map_symbol_to_corresponding_colour.rb +14 -0
- data/test/testing_rgb_to_hex.rb +32 -0
- data/test/testing_the_basic_colours_of_the_colours_project.rb +58 -0
- data/test/testing_the_colour_methods.rb +36 -0
- data/test/testing_the_constants_of_the_colours_project.rb +9 -0
- data/test/testing_the_html_colours_of_the_colours_project.rb +37 -0
- data/test/testing_whether_colours_will_be_used.rb +7 -0
- metadata +229 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/rainbow_colours/print_rainbow_line.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/toplevel_methods/e.rb'
|
8
|
+
require 'colours/rainbow_colours/constants.rb'
|
9
|
+
require 'colours/rainbow_colours/println_plain.rb'
|
10
|
+
|
11
|
+
module Colours
|
12
|
+
|
13
|
+
module RainbowColours
|
14
|
+
|
15
|
+
# ========================================================================= #
|
16
|
+
# === Colours::RainbowColours.e
|
17
|
+
# ========================================================================= #
|
18
|
+
def self.e(i = '')
|
19
|
+
::Colours.e(i)
|
20
|
+
end
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === Colours::RainbowColours.print_rainbow_line
|
24
|
+
#
|
25
|
+
# This line will do the colourizing part, on a per-line basis.
|
26
|
+
#
|
27
|
+
# The second and third arguments are Hashes.
|
28
|
+
#
|
29
|
+
# Simple invocation example:
|
30
|
+
#
|
31
|
+
# Colours::RainbowColours.print_rainbow_line("Hello world! \n" * 80)
|
32
|
+
#
|
33
|
+
# ========================================================================= #
|
34
|
+
def self.print_rainbow_line(
|
35
|
+
string = 'Hello world!',
|
36
|
+
defaults = {},
|
37
|
+
options_hash = {}
|
38
|
+
)
|
39
|
+
if string.is_a? Array
|
40
|
+
string = string.join(' ').strip
|
41
|
+
end
|
42
|
+
options_hash.merge!(defaults)
|
43
|
+
string = string.dup if string.frozen?
|
44
|
+
string.chomp! if string.include? N
|
45
|
+
# ======================================================================= #
|
46
|
+
# Next, get rid of ANSI colours, unless the string is nil.
|
47
|
+
# ======================================================================= #
|
48
|
+
if !string.nil? and ($stdout.tty? or options_hash[:force])
|
49
|
+
string.gsub!(STRIP_ANSI, '')
|
50
|
+
end
|
51
|
+
# ======================================================================= #
|
52
|
+
# Replace all tabs with 2 spaces.
|
53
|
+
# ======================================================================= #
|
54
|
+
string.gsub!("\t", ' ' * 2) if string.include? "\t"
|
55
|
+
if options_hash[:animate]
|
56
|
+
# ===================================================================== #
|
57
|
+
# Handle animated frames, as specified by the options-hash.
|
58
|
+
# ===================================================================== #
|
59
|
+
println_ani(string, options_hash)
|
60
|
+
else
|
61
|
+
RainbowColours.println_plain(string, options_hash)
|
62
|
+
end
|
63
|
+
e
|
64
|
+
end; self.instance_eval { alias print_line print_rainbow_line } # === Colours::RainbowColours.print_line
|
65
|
+
self.instance_eval { alias rainbow_line print_rainbow_line } # === Colours::RainbowColours.rainbow_line
|
66
|
+
self.instance_eval { alias say_in_rainbow_line print_rainbow_line } # === Colours::RainbowColours.say_in_rainbow_line
|
67
|
+
|
68
|
+
end; end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
require 'colours/rainbow_colours/println_plain.rb'
|
6
|
+
|
7
|
+
module Colours
|
8
|
+
|
9
|
+
module RainbowColours
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === Colours::RainbowColours.println_ani
|
13
|
+
#
|
14
|
+
# This method here will be called if the "animate option" was enabled,
|
15
|
+
# that is, set to true.
|
16
|
+
# ========================================================================= #
|
17
|
+
def self.println_ani(
|
18
|
+
str, opts = {}
|
19
|
+
)
|
20
|
+
return if str.empty? # Return early in this case.
|
21
|
+
(1..opts[:duration]).each { |irrelevant_variable|
|
22
|
+
print "\e[#{str.length}D"
|
23
|
+
opts[:os] += opts[:spread]
|
24
|
+
# ===================================================================== #
|
25
|
+
# Next, delegate to println_plain():
|
26
|
+
# ===================================================================== #
|
27
|
+
println_plain(str, opts)
|
28
|
+
sleep 1.0/opts[:speed]
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
end; end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/rainbow_colours/println_plain.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/rainbow_colours/returnln_plain.rb'
|
8
|
+
|
9
|
+
module Colours
|
10
|
+
|
11
|
+
module RainbowColours
|
12
|
+
|
13
|
+
# ========================================================================= #
|
14
|
+
# === Colours::RainbowColours.println_plain
|
15
|
+
#
|
16
|
+
# This method will colourize the given input line.
|
17
|
+
#
|
18
|
+
# Usage example:
|
19
|
+
#
|
20
|
+
# Colours::RainbowColours.println_plain
|
21
|
+
# Colours::RainbowColours.println_plain 'one two three four five six seven eight'
|
22
|
+
#
|
23
|
+
# ========================================================================= #
|
24
|
+
def self.println_plain(
|
25
|
+
str = "Hello world! Good morning sunshine.\n",
|
26
|
+
defaults = {},
|
27
|
+
opts = {
|
28
|
+
spread: DEFAULT_RAINBOW_SPREAD,
|
29
|
+
os: rand(256),
|
30
|
+
truecolor: true
|
31
|
+
}
|
32
|
+
)
|
33
|
+
print returnln_plain(str, defaults, opts)
|
34
|
+
end
|
35
|
+
|
36
|
+
end; end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
module Colours
|
6
|
+
|
7
|
+
module RainbowColours
|
8
|
+
|
9
|
+
# ========================================================================= #
|
10
|
+
# === Colours::RainbowColours.rainbow
|
11
|
+
#
|
12
|
+
# Do the colour calculations next, via the rainbow() method.
|
13
|
+
#
|
14
|
+
# The frequency is typically a value such as 0.1.
|
15
|
+
#
|
16
|
+
# We will calculate the RGB values here (R, G, B).
|
17
|
+
#
|
18
|
+
# Invocation example:
|
19
|
+
#
|
20
|
+
# Colours::RainbowColours.rainbow(:default, 3) # => "#A5D604"
|
21
|
+
# Colours::RainbowColours.rainbow(:default, 12) # => "#F66C1C"
|
22
|
+
#
|
23
|
+
# ========================================================================= #
|
24
|
+
def self.rainbow(
|
25
|
+
frequency = 0.1, i
|
26
|
+
)
|
27
|
+
case frequency
|
28
|
+
when nil,
|
29
|
+
:default
|
30
|
+
frequency = 0.1
|
31
|
+
end
|
32
|
+
red = Math.sin(frequency * i + 0) * 127 + 128
|
33
|
+
green = Math.sin(frequency * i + 2 * Math::PI/3) * 127 + 128
|
34
|
+
blue = Math.sin(frequency * i + 4 * Math::PI/3) * 127 + 128
|
35
|
+
'#%02X%02X%02X' % [ red, green, blue ]
|
36
|
+
end
|
37
|
+
|
38
|
+
end; end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/rainbow_colours/report_errors.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Colours
|
8
|
+
|
9
|
+
module RainbowColours
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === Colours::RainbowColours.report_no_such_file_or_directory
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.report_no_such_file_or_directory(file)
|
15
|
+
e "Colours::RainbowColours: #{file}: No such file or directory"
|
16
|
+
end
|
17
|
+
|
18
|
+
# ========================================================================= #
|
19
|
+
# === Colours::RainbowColours.report_is_a_directory
|
20
|
+
# ========================================================================= #
|
21
|
+
def self.report_is_a_directory(file)
|
22
|
+
e "Colours::RainbowColours: #{file}: Is a directory"
|
23
|
+
end
|
24
|
+
|
25
|
+
# ========================================================================= #
|
26
|
+
# === Colours::RainbowColours.report_permission_denied
|
27
|
+
# ========================================================================= #
|
28
|
+
def self.report_permission_denied(file)
|
29
|
+
e "Colours::RainbowColours: #{file}: Permission denied"
|
30
|
+
end
|
31
|
+
|
32
|
+
end; end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/rainbow_colours/returnln_plain.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/rainbow_colours/rainbow.rb'
|
8
|
+
require 'colours/rainbow_colours/set_mode.rb'
|
9
|
+
|
10
|
+
module Colours
|
11
|
+
|
12
|
+
module RainbowColours
|
13
|
+
|
14
|
+
# ========================================================================= #
|
15
|
+
# === Colours::RainbowColours.returnln_plain
|
16
|
+
#
|
17
|
+
# This will return a rainbow-coloured text.
|
18
|
+
#
|
19
|
+
# The first argument is the text that you wish to display.
|
20
|
+
#
|
21
|
+
# Invocation example:
|
22
|
+
#
|
23
|
+
# puts Colours::RainbowColours.returnln_plain('abc def ' * 1000)
|
24
|
+
#
|
25
|
+
# ========================================================================= #
|
26
|
+
def self.returnln_plain(
|
27
|
+
str = "Hello world! Good morning sunshine.\n",
|
28
|
+
defaults = {},
|
29
|
+
options_hash = {
|
30
|
+
spread: DEFAULT_RAINBOW_SPREAD,
|
31
|
+
os: rand(256),
|
32
|
+
truecolor: true
|
33
|
+
}
|
34
|
+
)
|
35
|
+
options_hash.merge!(defaults)
|
36
|
+
RainbowColours.set_mode(options_hash[:truecolor])
|
37
|
+
the_chars = str.chomp.chars # We obtain the individual characters here.
|
38
|
+
# ======================================================================= #
|
39
|
+
# Iterate over the chars. i, aka the second argument, is the index.
|
40
|
+
# ======================================================================= #
|
41
|
+
result = ''.dup
|
42
|
+
the_chars.each_with_index { |character, index|
|
43
|
+
# ===================================================================== #
|
44
|
+
# Delegate towards the toplevel-method rainbow().
|
45
|
+
# ===================================================================== #
|
46
|
+
division_result = (
|
47
|
+
options_hash[:os]+index / options_hash[:spread]
|
48
|
+
)
|
49
|
+
# ===================================================================== #
|
50
|
+
# Next, we will obtain some ASCII value such as '#A5D604':
|
51
|
+
# ===================================================================== #
|
52
|
+
code = RainbowColours.rainbow(options_hash[:freq], division_result)
|
53
|
+
# ===================================================================== #
|
54
|
+
# Delegate towards Paint[] next. The painted character will be
|
55
|
+
# displayed one-per-char.
|
56
|
+
# This will yield a String such as "\e[38;2;16;236;130mo\e[0m".
|
57
|
+
# ===================================================================== #
|
58
|
+
result << Paint[character, *[ (:black if options_hash[:invert]), code ].compact ]
|
59
|
+
}
|
60
|
+
return result
|
61
|
+
end
|
62
|
+
|
63
|
+
end; end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/rainbow_colours/set_mode.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Colours
|
8
|
+
|
9
|
+
module RainbowColours
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === Colours::RainbowColours.set_mode
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.set_mode(truecolor)
|
15
|
+
begin
|
16
|
+
unless Object.const_defined? :Paint
|
17
|
+
require 'paint'
|
18
|
+
end
|
19
|
+
@paint_mode_detected ||= Paint.mode
|
20
|
+
Paint.mode = truecolor ? 0xffffff : @paint_mode_detected
|
21
|
+
rescue LoadError; end
|
22
|
+
end
|
23
|
+
|
24
|
+
end; end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_commandline.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/commandline/commandline.rb'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_eparse.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
|
8
|
+
# =========================================================================== #
|
9
|
+
# Add the .eparse() functionality:
|
10
|
+
# =========================================================================== #
|
11
|
+
require 'colours/eparse/eparse.rb'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# Note that this .rb file is normally NOT required the colours gem by
|
6
|
+
# default - it is only meant to be required manually.
|
7
|
+
# =========================================================================== #
|
8
|
+
# require 'colours/requires/require_the_256_colours_module.rb'
|
9
|
+
# =========================================================================== #
|
10
|
+
|
11
|
+
# =========================================================================== #
|
12
|
+
# Add support for the 256-colours:
|
13
|
+
# =========================================================================== #
|
14
|
+
require 'colours/256_colours/support_for_256_colours.rb'
|
15
|
+
|
16
|
+
require 'colours/autogenerated/support_for_256_colours.rb'
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_the_basic_colours.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/basic_colours/basic_colours.rb'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The "colour-methods" are methods such as sdir(), swarn() and so forth.
|
6
|
+
#
|
7
|
+
# The file here specifies code that can be used to require these .rb
|
8
|
+
# files from the given colour_methods/ subdirectory of the colours
|
9
|
+
# project.
|
10
|
+
# =========================================================================== #
|
11
|
+
# require 'colours/requires/require_the_colour_methods.rb'
|
12
|
+
# =========================================================================== #
|
13
|
+
require 'colours/project/project_base_directory.rb'
|
14
|
+
|
15
|
+
module Colours
|
16
|
+
|
17
|
+
# ========================================================================= #
|
18
|
+
# === Colours.require_the_colour_methods
|
19
|
+
#
|
20
|
+
# This method will batch-require the .rb files that are found in the
|
21
|
+
# colour_methods/ subdirectory of the colours gem.
|
22
|
+
# ========================================================================= #
|
23
|
+
def self.require_the_colour_methods
|
24
|
+
target = "#{Colours::PROJECT_BASE_DIRECTORY}colour_methods/"
|
25
|
+
|
26
|
+
Dir["#{target}*.rb"].each {|this_file|
|
27
|
+
require target+File.basename(this_file)
|
28
|
+
}
|
29
|
+
|
30
|
+
end; self.instance_eval { alias default_string_methods require_the_colour_methods } # === Colours.default_string_methods
|
31
|
+
|
32
|
+
Colours.require_the_colour_methods # Also trigger the above method at once.
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_the_colour_table.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/colour_table/colour_table.rb'
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
require 'colours/project/project_base_directory.rb'
|
6
|
+
require 'colours/requires/require_the_constants.rb'
|
7
|
+
require 'colours/requires/require_the_basic_colours.rb'
|
8
|
+
require 'colours/requires/require_the_toplevel_methods.rb'
|
9
|
+
# =========================================================================== #
|
10
|
+
# Next require the colour-methods:
|
11
|
+
# =========================================================================== #
|
12
|
+
require 'colours/requires/require_the_colour_methods.rb'
|
13
|
+
# =========================================================================== #
|
14
|
+
# Next require the html-colours components of the colours project:
|
15
|
+
# =========================================================================== #
|
16
|
+
require 'colours/requires/require_the_html_colours.rb'
|
17
|
+
require 'colours/requires/require_eparse.rb'
|
18
|
+
require 'colours/requires/require_commandline.rb'
|
19
|
+
require 'colours/requires/require_the_colour_table.rb'
|
20
|
+
require 'colours/requires/require_rgb.rb'
|
21
|
+
require 'colours/requires/require_the_256_colours_module.rb'
|
22
|
+
require 'colours/requires/require_the_kde_colour_palette.rb'
|
23
|
+
require 'colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb'
|
24
|
+
# =========================================================================== #
|
25
|
+
# Require the big "symbol-mapper" next:
|
26
|
+
# =========================================================================== #
|
27
|
+
require 'colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb'
|
28
|
+
# =========================================================================== #
|
29
|
+
# Load up the testing-relevant code:
|
30
|
+
# =========================================================================== #
|
31
|
+
require 'colours/testing/testing.rb'
|
32
|
+
# =========================================================================== #
|
33
|
+
# Next, add the submodule at "Colours::E":
|
34
|
+
# =========================================================================== #
|
35
|
+
require 'colours/e/e.rb'
|
36
|
+
require 'colours/autogenerated/support_for_html_colours.rb'
|
37
|
+
require 'colours/autogenerated/toplevel_basic_colour_methods.rb'
|
38
|
+
require 'colours/base/base.rb'
|
39
|
+
require 'colours/version/version.rb'
|
40
|
+
require 'colours/utility_scripts/autogenerate.rb'
|
41
|
+
|
42
|
+
module Colours
|
43
|
+
|
44
|
+
# ========================================================================= #
|
45
|
+
# We have to put the ColourMethods into the toplevel namespace at once,
|
46
|
+
# so that methods such as slateblue() are defined.
|
47
|
+
# ========================================================================= #
|
48
|
+
extend ::Colours::AllColourMethods
|
49
|
+
|
50
|
+
include ::Colours::AllColourMethods
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
require 'colours/constants/colour_constants.rb'
|
6
|
+
require 'colours/constants/file_constants.rb'
|
7
|
+
require 'colours/constants/hash_simple_colours.rb'
|
8
|
+
require 'colours/constants/misc.rb'
|
9
|
+
require 'colours/constants/newline.rb'
|
10
|
+
require 'colours/constants/registered_colour_methods.rb'
|
11
|
+
require 'colours/revert/revert.rb'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_the_html_colours.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
|
8
|
+
# =========================================================================== #
|
9
|
+
# Require the html-colours components of the colours project:
|
10
|
+
# =========================================================================== #
|
11
|
+
require 'colours/html_colours/misc.rb'
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_the_kde_colour_palette.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'colours/kde_colour_palette/kde_colour_palette.rb'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# This file will pull in all .rb files that reside in the
|
6
|
+
# colours/toplevel_methods/ subdirectory.
|
7
|
+
# =========================================================================== #
|
8
|
+
require 'colours/project/project_base_directory.rb'
|
9
|
+
|
10
|
+
require_these_files = Dir["#{Colours::PROJECT_BASE_DIRECTORY}toplevel_methods/*.rb"]
|
11
|
+
|
12
|
+
if require_these_files.empty?
|
13
|
+
# ===================================================================== #
|
14
|
+
# If we can not find any of the files then we will use a hardcoded
|
15
|
+
# approach, which follows next.
|
16
|
+
# ===================================================================== #
|
17
|
+
require_these_files = %w(
|
18
|
+
bold_and_italic.rb
|
19
|
+
bold.rb
|
20
|
+
cat.rb
|
21
|
+
clear_screen.rb
|
22
|
+
cliner.rb
|
23
|
+
col.rb
|
24
|
+
e.rb
|
25
|
+
html_colourize.rb
|
26
|
+
is_on_roebe.rb
|
27
|
+
italic.rb
|
28
|
+
make_colour.rb
|
29
|
+
misc.rb
|
30
|
+
prefer_this_colour_schemata.rb
|
31
|
+
random_html_colour.rb
|
32
|
+
random_value.rb
|
33
|
+
remove_escape_sequence.rb
|
34
|
+
show_basic_colour_palette.rb
|
35
|
+
underline.rb
|
36
|
+
use_colours.rb
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
require_these_files.each {|this_file|
|
41
|
+
require "colours/toplevel_methods/#{File.basename(this_file)}"
|
42
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/requires/require_yaml.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
begin
|
8
|
+
require 'yaml'
|
9
|
+
rescue LoadError; end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal = true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'colours/revert/revert.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module Colours
|
8
|
+
|
9
|
+
# ========================================================================= #
|
10
|
+
# === Colours::ESC
|
11
|
+
#
|
12
|
+
# Escape sequences start with the character ESC (ASCII decimal 27/hex
|
13
|
+
# 0x1B/octal 033).
|
14
|
+
#
|
15
|
+
# The characters ESC and [ (left bracket) are called CSI, for "Control
|
16
|
+
# Sequence Initiator".
|
17
|
+
#
|
18
|
+
# Keep in mind that "\e" can be represented via "\u001b" in Ruby, too.
|
19
|
+
# ========================================================================= #
|
20
|
+
ESC = "\e["
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === Colours::COLOUR_NC
|
24
|
+
#
|
25
|
+
# Note that this will actually reset all attributes.
|
26
|
+
#
|
27
|
+
# The "\e[0m" sequence removes all attributes, including formatting
|
28
|
+
# and colours. It may be useful to add it to the end of each colour
|
29
|
+
# text - and this is what the Colours project is essentially doing.
|
30
|
+
#
|
31
|
+
# An alternative may be to assign REVERT to WHITE, but this seems
|
32
|
+
# to be incorrect according to the specification.
|
33
|
+
# ========================================================================= #
|
34
|
+
COLOUR_NC = "#{ESC}0m" # No Colour.
|
35
|
+
REVERT = COLOUR_NC # === REVERT
|
36
|
+
REV = COLOUR_NC # === REV
|
37
|
+
CLOSING_TAG = COLOUR_NC # === CLOSING_TAG (also represented as "#{ESC}0m")
|
38
|
+
RESET = COLOUR_NC # === RESET
|
39
|
+
RESET_TERMINAL = COLOUR_NC # === RESET_TERMINAL
|
40
|
+
CLEAR = COLOUR_NC # === CLEAR
|
41
|
+
COLOUR_RESET = COLOUR_NC # === COLOUR_RESET
|
42
|
+
DEFAULT_COLOUR = COLOUR_RESET # === DEFAULT_COLOUR
|
43
|
+
|
44
|
+
# ========================================================================= #
|
45
|
+
# === RESET_ALL_ATTRIBUTES
|
46
|
+
#
|
47
|
+
# This is essentially the same as COLOUR_NC / RESET.
|
48
|
+
# ========================================================================= #
|
49
|
+
RESET_ALL_ATTRIBUTES = "\x1b[0m"
|
50
|
+
|
51
|
+
# ========================================================================= #
|
52
|
+
# === @revert
|
53
|
+
# ========================================================================= #
|
54
|
+
@revert = "\e[0;37m"
|
55
|
+
|
56
|
+
# ========================================================================= #
|
57
|
+
# === Colours.set_revert
|
58
|
+
# ========================================================================= #
|
59
|
+
def self.set_revert(i = :default)
|
60
|
+
case i
|
61
|
+
when :default
|
62
|
+
i = REVERT
|
63
|
+
end
|
64
|
+
@revert = i
|
65
|
+
end
|
66
|
+
|
67
|
+
# ========================================================================= #
|
68
|
+
# === Colours.rev
|
69
|
+
#
|
70
|
+
# We use this method to revert to the old default, that is, the prior
|
71
|
+
# state for ANSI colours. It should be equivalent to: "\x1b[0m" e. g.
|
72
|
+
# REVERT = "\x1b[0m" # "\x1b[39;49m" <--- This here seems to fail for Konsole.underline, though.
|
73
|
+
#
|
74
|
+
# An alternative could be DEFAULT_COLOUR.
|
75
|
+
# ========================================================================= #
|
76
|
+
def self.rev
|
77
|
+
# REVERT # <- This used to be: "\e[0;37m"
|
78
|
+
@revert # This is light white. I prefer this colour actually.
|
79
|
+
end; self.instance_eval { alias revert rev } # === Colours.revert
|
80
|
+
self.instance_eval { alias revert? rev } # === Colours.revert?
|
81
|
+
self.instance_eval { alias restore? rev } # === Colours.restore?
|
82
|
+
|
83
|
+
# ========================================================================= #
|
84
|
+
# === rev
|
85
|
+
#
|
86
|
+
# Use this method to "revert" to the old default colour again, by
|
87
|
+
# delegating towards the Colours.rev() method defined above.
|
88
|
+
#
|
89
|
+
# From this point on, we use methods that can be toggled.
|
90
|
+
# ========================================================================= #
|
91
|
+
def rev(i = '')
|
92
|
+
::Colours.rev # This will refer to the Colours.rev() module method.
|
93
|
+
end; alias revert rev # === revert
|
94
|
+
# alias default_colour rev
|
95
|
+
|
96
|
+
# ========================================================================= #
|
97
|
+
# === restore?
|
98
|
+
#
|
99
|
+
# This will restore to the default again.
|
100
|
+
# ========================================================================= #
|
101
|
+
def restore?
|
102
|
+
Colours.restore?
|
103
|
+
end; alias revert restore? # === revert
|
104
|
+
alias rev? restore? # === rev?
|
105
|
+
|
106
|
+
end
|