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.

Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.md +22 -0
  3. data/README.md +970 -0
  4. data/bin/colours +7 -0
  5. data/bin/html_colour_to_hex_value +7 -0
  6. data/bin/html_colourize +7 -0
  7. data/bin/print_rainbow_line +7 -0
  8. data/bin/rainbow_colours +7 -0
  9. data/bin/remove_ansii_escape_sequences +7 -0
  10. data/colours.gemspec +76 -0
  11. data/doc/COLOUR_CODES_CHART.md +28 -0
  12. data/doc/HOW_TO_PICK_YOUR_OWN_COLOURS.md +29 -0
  13. data/doc/README.gen +927 -0
  14. data/doc/todo/todo.md +25 -0
  15. data/lib/colours/256_colours/support_for_256_colours.rb +190 -0
  16. data/lib/colours/autoalias_e.rb +10 -0
  17. data/lib/colours/autogenerated/README.md +2 -0
  18. data/lib/colours/autogenerated/support_for_256_colours.rb +2235 -0
  19. data/lib/colours/autogenerated/support_for_html_colours.rb +1778 -0
  20. data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +6367 -0
  21. data/lib/colours/autoinclude.rb +14 -0
  22. data/lib/colours/base/base.rb +23 -0
  23. data/lib/colours/basic_colours/README.md +4 -0
  24. data/lib/colours/basic_colours/basic_colours.rb +334 -0
  25. data/lib/colours/class/class.rb +125 -0
  26. data/lib/colours/colour_methods/README.md +11 -0
  27. data/lib/colours/colour_methods/default_colour.rb +66 -0
  28. data/lib/colours/colour_methods/sargument.rb +70 -0
  29. data/lib/colours/colour_methods/scomments.rb +105 -0
  30. data/lib/colours/colour_methods/sdir.rb +66 -0
  31. data/lib/colours/colour_methods/sfancy.rb +84 -0
  32. data/lib/colours/colour_methods/sfile.rb +71 -0
  33. data/lib/colours/colour_methods/simportant.rb +92 -0
  34. data/lib/colours/colour_methods/snormal.rb +66 -0
  35. data/lib/colours/colour_methods/ssymlink.rb +102 -0
  36. data/lib/colours/colour_methods/swarn.rb +76 -0
  37. data/lib/colours/colour_table/README.md +3 -0
  38. data/lib/colours/colour_table/colour_table.rb +275 -0
  39. data/lib/colours/colours_e_autoinclude.rb +9 -0
  40. data/lib/colours/commandline/README.md +2 -0
  41. data/lib/colours/commandline/commandline.rb +44 -0
  42. data/lib/colours/commandline/menu.rb +111 -0
  43. data/lib/colours/constants/colour_constants.rb +301 -0
  44. data/lib/colours/constants/file_constants.rb +72 -0
  45. data/lib/colours/constants/hash_simple_colours.rb +146 -0
  46. data/lib/colours/constants/misc.rb +59 -0
  47. data/lib/colours/constants/newline.rb +14 -0
  48. data/lib/colours/constants/registered_colour_methods.rb +53 -0
  49. data/lib/colours/e/README.md +13 -0
  50. data/lib/colours/e/autoinclude.rb +11 -0
  51. data/lib/colours/e/e.rb +35 -0
  52. data/lib/colours/e.rb +5 -0
  53. data/lib/colours/eparse/eparse.rb +77 -0
  54. data/lib/colours/everything/autoinclude.rb +11 -0
  55. data/lib/colours/html_colours/README.md +1 -0
  56. data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +22 -0
  57. data/lib/colours/html_colours/hash_html_colours.rb +63 -0
  58. data/lib/colours/html_colours/html_colourize.rb +48 -0
  59. data/lib/colours/html_colours/is_this_html_colour_included.rb +64 -0
  60. data/lib/colours/html_colours/misc.rb +186 -0
  61. data/lib/colours/html_colours/show_html_colours.rb +85 -0
  62. data/lib/colours/kde_colour_palette/kde_colour_palette.rb +128 -0
  63. data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +219 -0
  64. data/lib/colours/module.rb +11 -0
  65. data/lib/colours/project/project_base_directory.rb +22 -0
  66. data/lib/colours/rainbow_colours/README.md +2 -0
  67. data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +26 -0
  68. data/lib/colours/rainbow_colours/constants.rb +30 -0
  69. data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +164 -0
  70. data/lib/colours/rainbow_colours/paint_detected_mode.rb +20 -0
  71. data/lib/colours/rainbow_colours/print_rainbow_line.rb +68 -0
  72. data/lib/colours/rainbow_colours/println_ani.rb +32 -0
  73. data/lib/colours/rainbow_colours/println_plain.rb +36 -0
  74. data/lib/colours/rainbow_colours/rainbow.rb +38 -0
  75. data/lib/colours/rainbow_colours/report_errors.rb +32 -0
  76. data/lib/colours/rainbow_colours/returnln_plain.rb +63 -0
  77. data/lib/colours/rainbow_colours/set_mode.rb +24 -0
  78. data/lib/colours/requires/require_all_colour_methods.rb +5 -0
  79. data/lib/colours/requires/require_commandline.rb +7 -0
  80. data/lib/colours/requires/require_eparse.rb +11 -0
  81. data/lib/colours/requires/require_rgb.rb +5 -0
  82. data/lib/colours/requires/require_sdir.rb +5 -0
  83. data/lib/colours/requires/require_sfile.rb +5 -0
  84. data/lib/colours/requires/require_the_256_colours_module.rb +16 -0
  85. data/lib/colours/requires/require_the_basic_colours.rb +7 -0
  86. data/lib/colours/requires/require_the_colour_methods.rb +34 -0
  87. data/lib/colours/requires/require_the_colour_table.rb +7 -0
  88. data/lib/colours/requires/require_the_colours_project.rb +52 -0
  89. data/lib/colours/requires/require_the_constants.rb +11 -0
  90. data/lib/colours/requires/require_the_html_colours.rb +11 -0
  91. data/lib/colours/requires/require_the_kde_colour_palette.rb +7 -0
  92. data/lib/colours/requires/require_the_toplevel_methods.rb +42 -0
  93. data/lib/colours/requires/require_yaml.rb +9 -0
  94. data/lib/colours/revert/revert.rb +106 -0
  95. data/lib/colours/rgb/rgb.rb +547 -0
  96. data/lib/colours/testing/README.md +2 -0
  97. data/lib/colours/testing/testing.rb +157 -0
  98. data/lib/colours/toplevel_methods/bold.rb +35 -0
  99. data/lib/colours/toplevel_methods/bold_and_italic.rb +36 -0
  100. data/lib/colours/toplevel_methods/cat.rb +39 -0
  101. data/lib/colours/toplevel_methods/clear_screen.rb +18 -0
  102. data/lib/colours/toplevel_methods/cliner.rb +19 -0
  103. data/lib/colours/toplevel_methods/col.rb +56 -0
  104. data/lib/colours/toplevel_methods/e.rb +63 -0
  105. data/lib/colours/toplevel_methods/esystem.rb +19 -0
  106. data/lib/colours/toplevel_methods/fancy_parse.rb +83 -0
  107. data/lib/colours/toplevel_methods/html_colourize.rb +64 -0
  108. data/lib/colours/toplevel_methods/is_on_roebe.rb +16 -0
  109. data/lib/colours/toplevel_methods/italic.rb +110 -0
  110. data/lib/colours/toplevel_methods/make_colour.rb +29 -0
  111. data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +350 -0
  112. data/lib/colours/toplevel_methods/misc.rb +156 -0
  113. data/lib/colours/toplevel_methods/open_this_file.rb +26 -0
  114. data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +85 -0
  115. data/lib/colours/toplevel_methods/random_html_colour.rb +48 -0
  116. data/lib/colours/toplevel_methods/random_value.rb +37 -0
  117. data/lib/colours/toplevel_methods/remove_escape_sequence.rb +112 -0
  118. data/lib/colours/toplevel_methods/set_last_colour_used.rb +32 -0
  119. data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +36 -0
  120. data/lib/colours/toplevel_methods/underline.rb +129 -0
  121. data/lib/colours/toplevel_methods/use_colours.rb +290 -0
  122. data/lib/colours/utility_scripts/README.md +2 -0
  123. data/lib/colours/utility_scripts/autogenerate.rb +291 -0
  124. data/lib/colours/version/version.rb +25 -0
  125. data/lib/colours/yaml/256_colours.yml +277 -0
  126. data/lib/colours/yaml/basic_colours.yml +23 -0
  127. data/lib/colours/yaml/html_colours.yml +835 -0
  128. data/lib/colours/yaml/kde_colour_palette.yml +183 -0
  129. data/lib/colours/yaml/prefer_this_colour_schemata.yml +15 -0
  130. data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +15 -0
  131. data/lib/colours.rb +5 -0
  132. data/test/test.html +18 -0
  133. data/test/testing_256_colours_support.rb +29 -0
  134. data/test/testing_col.rb +10 -0
  135. data/test/testing_colours.rb +95 -0
  136. data/test/testing_colours_e.rb +13 -0
  137. data/test/testing_eparse.rb +13 -0
  138. data/test/testing_kde_colour_palette.rb +30 -0
  139. data/test/testing_konsole_submodule.rb +226 -0
  140. data/test/testing_map_symbol_to_corresponding_colour.rb +14 -0
  141. data/test/testing_rgb_to_hex.rb +32 -0
  142. data/test/testing_the_basic_colours_of_the_colours_project.rb +58 -0
  143. data/test/testing_the_colour_methods.rb +36 -0
  144. data/test/testing_the_constants_of_the_colours_project.rb +9 -0
  145. data/test/testing_the_html_colours_of_the_colours_project.rb +37 -0
  146. data/test/testing_whether_colours_will_be_used.rb +7 -0
  147. metadata +229 -0
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Colours::E
6
+ #
7
+ # require 'colours/e/e.rb'
8
+ # include ::Colours::E
9
+ # =========================================================================== #
10
+ module Colours
11
+
12
+ module E # === Colours::E
13
+
14
+ # ========================================================================= #
15
+ # === Colours::E.e
16
+ # ========================================================================= #
17
+ def self.e(i = '')
18
+ if i.is_a? Array
19
+ i = i.join(' ')
20
+ end
21
+ puts i
22
+ end; self.instance_eval { alias [] e } # === Colours::E[]
23
+
24
+ # ========================================================================= #
25
+ # === e
26
+ # ========================================================================= #
27
+ def e(i = '')
28
+ ::Colours::E.e(i)
29
+ end
30
+
31
+ end; end
32
+
33
+ if __FILE__ == $PROGRAM_NAME
34
+ Colours::E.e(ARGV)
35
+ end
data/lib/colours/e.rb ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/e/e.rb'
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/eparse/eparse.rb'
6
+ # =========================================================================== #
7
+ require 'colours/toplevel_methods/e.rb'
8
+ require 'colours/constants/colour_constants.rb'
9
+
10
+ module Colours
11
+
12
+ # ========================================================================= #
13
+ # === Colours.eparse
14
+ #
15
+ # This method primarily exists because we can easily split a string
16
+ # if it has a '#' token. The part that comes after the '#' token is
17
+ # assumed to be a comment or an explanation.
18
+ # ========================================================================= #
19
+ def self.eparse(i = '')
20
+ Colours.e(rparse(i))
21
+ end
22
+
23
+ # ========================================================================= #
24
+ # === Colours.rparse
25
+ #
26
+ # This method will return a string; the method eparse will output that
27
+ # (colourized) String.
28
+ # ========================================================================= #
29
+ def self.rparse(i = '')
30
+ _ = i.to_s # We require a String.
31
+ split_at = ':' # <- Split at this character.
32
+ # ======================================================================== #
33
+ # If the input does not include a ':' but it does include a '#', then
34
+ # we will use that character instead.
35
+ #
36
+ # However had, as of Jun 2017, I have disabled that check. Now '#' will
37
+ # always overrule. My reasoning now is that '#' is more important than
38
+ # ':', if it is part of the input-string.
39
+ # ======================================================================== #
40
+ split_at = '#' if _.include? '#'
41
+ first_colour = COLOUR_GREEN
42
+ second_colour = COLOUR_TEAL
43
+ if i.include? split_at
44
+ splitted = _.split(split_at)
45
+ _ = first_colour+
46
+ splitted.first+
47
+ split_at+
48
+ second_colour+
49
+ splitted[1..-1].join(split_at).dup
50
+ _ << REVERT
51
+ elsif i.include? ' '
52
+ split_at = ' '
53
+ splitted = _.split(/ /)
54
+ index = splitted.find_index {|e| ! e.empty? }
55
+ _ = first_colour+splitted[0..index].join(' ')+split_at+
56
+ second_colour+splitted[index+1..-1].join(' ').dup
57
+ _ << REVERT
58
+ end
59
+ return _
60
+ end
61
+
62
+ # ========================================================================== #
63
+ # === eparse (eparse tag)
64
+ #
65
+ # Input could be like this:
66
+ # eparse 'Foo: bla'
67
+ # eparse 'Foo: '+bla
68
+ # ========================================================================== #
69
+ def eparse(i = '')
70
+ Colours.eparse(i)
71
+ end
72
+
73
+ end
74
+
75
+ if __FILE__ == $PROGRAM_NAME
76
+ Colours.eparse('Hello there # how do you do, this is a test')
77
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/everything/autoinclude'
6
+ # =========================================================================== #
7
+ require 'colours'
8
+ require 'colours/e'
9
+
10
+ include Colours
11
+ include Colours::E
@@ -0,0 +1 @@
1
+ This directory has code for the html "colours".
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This file will add the autogenerated HTML-colours onto the toplevel
6
+ # module "namespace".
7
+ # =========================================================================== #
8
+ # require 'colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb'
9
+ # Colours.add_html_colours_onto_the_toplevel_namespace
10
+ # =========================================================================== #
11
+ require 'colours/autogenerated/support_for_html_colours.rb'
12
+
13
+ module Colours
14
+
15
+ # ========================================================================= #
16
+ # === Colours.add_html_colours_onto_the_toplevel_namespace
17
+ # ========================================================================= #
18
+ def self.add_html_colours_onto_the_toplevel_namespace
19
+ extend Colours::SupportForHTMLColours
20
+ end
21
+
22
+ end
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/html_colours/hash_html_colours.rb'
6
+ # =========================================================================== #
7
+ require 'yaml'
8
+ require 'colours/constants/file_constants.rb'
9
+
10
+ module Colours
11
+
12
+ module HtmlColours # === Colours::HtmlColours
13
+
14
+ # =========================================================================== #
15
+ # === Colours::HtmlColours::HASH_HTML_COLOURS
16
+ #
17
+ # The colours in the yaml file are stored in a:
18
+ #
19
+ # name: hexvalue
20
+ #
21
+ # format.
22
+ # =========================================================================== #
23
+ _ = FILE_HTML_COLOURS
24
+
25
+ # =========================================================================== #
26
+ # === @hash_html_colours
27
+ # =========================================================================== #
28
+ @hash_html_colours = {}
29
+
30
+ if File.exist? _
31
+ @hash_html_colours = YAML.load_file(_)
32
+ else
33
+ # ======================================================================= #
34
+ # The second check is not ideal but I think that I only need this
35
+ # on my home system anyway.
36
+ # ======================================================================= #
37
+ if ("#{ENV['IS_ROEBE']}" == '1')
38
+ puts "Colours::HtmlColours: We could not find any "\
39
+ "file at `#{_}`."
40
+ end
41
+ end
42
+
43
+ # =========================================================================== #
44
+ # === Colours::HtmlColours.hash_html_colours?
45
+ # =========================================================================== #
46
+ def self.hash_html_colours?
47
+ @hash_html_colours
48
+ end; self.instance_eval { alias main_hash? hash_html_colours? } # === Colours::HtmlColours.main_hash?
49
+
50
+ end
51
+
52
+ # =========================================================================== #
53
+ # === Colours.hash_html_colours?
54
+ # =========================================================================== #
55
+ def self.hash_html_colours?
56
+ ::Colours::HtmlColours.hash_html_colours?
57
+ end
58
+
59
+ end
60
+
61
+ if __FILE__ == $PROGRAM_NAME
62
+ pp Colours::HtmlColours.hash_html_colours?
63
+ end # hash_html_colours
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/html_colours/html_colourize.rb'
6
+ # =========================================================================== #
7
+ module Colours
8
+
9
+ module HtmlColours
10
+
11
+ require 'colours/toplevel_methods/misc.rb'
12
+ require 'colours/toplevel_methods/methods_related_to_html_colours.rb'
13
+
14
+ # ========================================================================= #
15
+ # === Colours::HtmlColours.html_colourize
16
+ # ========================================================================= #
17
+ def self.html_colourize(i)
18
+ if i.is_a? Array
19
+ i = i.join(' ')
20
+ end
21
+ if i
22
+ if File.file?(i)
23
+ i = File.read(i)
24
+ elsif i.respond_to? :read
25
+ i = i.read
26
+ end
27
+ end
28
+ if i.is_a? String
29
+ # ===================================================================== #
30
+ # Find all HTML colours next in that String:
31
+ # ===================================================================== #
32
+ splitted = i.split("\n")
33
+ splitted.map! {|entry|
34
+ if ::Colours.does_this_line_include_a_html_colour?(entry)
35
+ entry = ::Colours.replace_all_raw_html_colours_in_this_line(entry)
36
+ end
37
+ entry
38
+ }
39
+ i = splitted.join("\n")
40
+ end
41
+ e i
42
+ end
43
+
44
+ end; end
45
+
46
+ if __FILE__ == $PROGRAM_NAME
47
+ Colours::HtmlColours.html_colourize(ARGF)
48
+ end # html_colourize foo bar
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/html_colours/is_this_html_colour_included.rb'
6
+ # =========================================================================== #
7
+ require 'colours/html_colours/hash_html_colours.rb'
8
+
9
+ module Colours
10
+
11
+ module HtmlColours
12
+
13
+ # =========================================================================== #
14
+ # === Colours::HtmlColours.does_include?
15
+ #
16
+ # This method will return true if the given input is included in the
17
+ # HTML colours.
18
+ #
19
+ # Usage examples:
20
+ #
21
+ # Colours::HtmlColours.does_include? 'slateblue' # => true
22
+ # Colours::HtmlColours.is_this_html_colour_included? 'royalblue' # => true
23
+ # Colours::HtmlColours.is_this_html_colour_included? 'megawhite' # => false
24
+ #
25
+ # =========================================================================== #
26
+ def self.does_include?(i = :slateblue)
27
+ return true if @hash_html_colours.has_key?(i.to_s)
28
+ false # else return false.
29
+ end; self.instance_eval { alias is_this_html_colour_included? does_include? } # === Colours::HtmlColours.is_this_html_colour_included?
30
+ self.instance_eval { alias is_a_html_colour? does_include? } # === Colours::HtmlColours.is_a_html_colour?
31
+ self.instance_eval { alias is_this_a_html_colour? does_include? } # === Colours::HtmlColours.is_this_a_html_colour?
32
+ self.instance_eval { alias html_colours_include? does_include? } # === Colours::HtmlColours.html_colours_include?
33
+ self.instance_eval { alias include_this_html_colour? does_include? } # === Colours::HtmlColours.include_this_html_colour?
34
+ self.instance_eval { alias is_this_a_valid_html_colour? does_include? } # === Colours::HtmlColours.is_this_a_valid_html_colour?
35
+ self.instance_eval { alias is_this_input_a_html_colour? does_include? } # === Colours::HtmlColours.is_this_input_a_html_colour?
36
+ self.instance_eval { alias has_colour? does_include? } # === Colours::HtmlColours.has_colour?
37
+ self.instance_eval { alias registered_colour? does_include? } # === Colours::HtmlColours.registered_colour?
38
+
39
+ end
40
+
41
+ # =========================================================================== #
42
+ # === Colours.does_include?
43
+ #
44
+ # Usage examples:
45
+ #
46
+ # Colours.does_include? 'slateblue'
47
+ # Colours.is_this_html_colour_included? 'royalblue' # => true
48
+ # Colours.is_this_html_colour_included? 'megawhite' # => false
49
+ #
50
+ # =========================================================================== #
51
+ def self.does_include?(i = :slateblue)
52
+ i = i.to_sym unless i.is_a? Symbol
53
+ ::Colours::HtmlColours.does_include?(i)
54
+ end; self.instance_eval { alias is_this_html_colour_included? does_include? } # === Colours.is_this_html_colour_included?
55
+ self.instance_eval { alias is_a_html_colour? does_include? } # === Colours.is_a_html_colour?
56
+ self.instance_eval { alias is_this_a_html_colour? does_include? } # === Colours.is_this_a_html_colour?
57
+ self.instance_eval { alias html_colours_include? does_include? } # === Colours.html_colours_include?
58
+ self.instance_eval { alias include_this_html_colour? does_include? } # === Colours.include_this_html_colour?
59
+ self.instance_eval { alias is_this_a_valid_html_colour? does_include? } # === Colours.is_this_a_valid_html_colour?
60
+ self.instance_eval { alias is_this_input_a_html_colour? does_include? } # === Colours.is_this_input_a_html_colour?
61
+ self.instance_eval { alias has_colour? does_include? } # === Colours.has_colour?
62
+ self.instance_eval { alias registered_colour? does_include? } # === Colours.registered_colour?
63
+
64
+ end
@@ -0,0 +1,186 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/html_colours/misc.rb'
6
+ # =========================================================================== #
7
+ require 'colours/toplevel_methods/e.rb'
8
+ require 'colours/html_colours/hash_html_colours.rb'
9
+ require 'colours/html_colours/is_this_html_colour_included.rb'
10
+
11
+ module Colours
12
+
13
+ module HtmlColours # === Colours::HtmlColours
14
+
15
+ # =========================================================================== #
16
+ # === Colours::HtmlColours.e
17
+ # =========================================================================== #
18
+ def self.e(i = '')
19
+ ::Colours.e(i)
20
+ end
21
+
22
+ # =========================================================================== #
23
+ # === Colours::HtmlColours.available_html_colours?
24
+ #
25
+ # This method will return an Array with all available HTML colours.
26
+ # =========================================================================== #
27
+ def self.available_html_colours?
28
+ @hash_html_colours.keys
29
+ end; self.instance_eval { alias html_colours available_html_colours? } # === Colours::HtmlColours.html_colours
30
+ self.instance_eval { alias all_html_colours available_html_colours? } # === Colours::HtmlColours.all_html_colours
31
+ self.instance_eval { alias return_all_html_colours available_html_colours? } # === Colours::HtmlColours.return_all_html_colours
32
+ self.instance_eval { alias all_colours available_html_colours? } # === HtmlColours.all_colours
33
+ self.instance_eval { alias all_colours? available_html_colours? } # === HtmlColours.all_colours?
34
+ self.instance_eval { alias colours available_html_colours? } # === HtmlColours.colours
35
+ self.instance_eval { alias colours? available_html_colours? } # === HtmlColours.colours?
36
+ self.instance_eval { alias all? available_html_colours? } # === HtmlColours.all?
37
+ self.instance_eval { alias registered_colours? available_html_colours? } # === HtmlColours.registered_colours?
38
+
39
+ # =========================================================================== #
40
+ # === all_html_colours
41
+ #
42
+ # This method will feedback all html colours known.
43
+ # =========================================================================== #
44
+ def all_html_colours
45
+ ::Colours::HtmlColours.available_html_colours?
46
+ end; alias html_colours? all_html_colours # === html_colours?
47
+ alias all_colours all_html_colours # === all_colours
48
+
49
+ require 'colours/autogenerated/support_for_html_colours.rb'
50
+ # ========================================================================= #
51
+ # === Colours::HtmlColours[]
52
+ #
53
+ # Usage examples:
54
+ #
55
+ # Colours::HtmlColours['slateblue','Hello World!'] # works as Example 1
56
+ # Colours::HtmlColours['slateblue']
57
+ # Colours::HtmlColours['lightgreen','Hello World!']
58
+ # Colours::HtmlColours[:random]
59
+ # e Colours::HtmlColours[:random, 'yo there']
60
+ #
61
+ # ========================================================================= #
62
+ def self.[](
63
+ which_colour_to_use, optional_text_to_display = ''
64
+ )
65
+ case which_colour_to_use
66
+ when :random
67
+ which_colour_to_use = random_html_colour
68
+ end
69
+ if ::Colours.use_html_colours?
70
+ ::Colours::SupportForHTMLColours.send(
71
+ which_colour_to_use, optional_text_to_display
72
+ )
73
+ else # else return it unmodified.
74
+ optional_text_to_display
75
+ end
76
+ end
77
+
78
+ # =========================================================================== #
79
+ # === Colours::HtmlColours.colour_to_rgb('royalblue')
80
+ #
81
+ # This method will convert the long colour name to an Array
82
+ # with R,G,B values.
83
+ #
84
+ # Usage examples:
85
+ #
86
+ # Colours::HtmlColours.colour_to_rgb('whitesmoke') # => [245, 245, 245]
87
+ # Colours::HtmlColours.colour_to_rgb('slateblue') # => [106, 90, 205]
88
+ # Colours::HtmlColours.colour_to_rgb(:royalblue) # => [65, 105, 225]
89
+ #
90
+ # =========================================================================== #
91
+ def self.colour_to_rgb(long_name = :slateblue)
92
+ pointer = @hash_html_colours[long_name.to_s] # This will be an Array.
93
+ return [pointer[0], pointer[1], pointer[2]]
94
+ end; self.instance_eval { alias to_rgb colour_to_rgb } # === HtmlColours.to_rgb()
95
+
96
+ # =========================================================================== #
97
+ # === Colours::HtmlColours.random_colour?
98
+ #
99
+ # Obtain a random sample, aka a random colour, from all the registered
100
+ # html colours.
101
+ # =========================================================================== #
102
+ def self.random_colour?
103
+ available_html_colours?.sample
104
+ end; self.instance_eval { alias random_colour random_colour? } # === Colours::HtmlColours.random_colour
105
+ self.instance_eval { alias random random_colour? } # === Colours::HtmlColours.random
106
+ self.instance_eval { alias sample random_colour? } # === Colours::HtmlColours.sample
107
+ self.instance_eval { alias random_html_colour random_colour? } # === Colours::HtmlColours.random_html_colour
108
+ self.instance_eval { alias return_random_html_colour random_colour? } # === Colours::HtmlColours.return_random_html_colour
109
+ self.instance_eval { alias return_random_colour random_colour? } # === Colours::HtmlColours.return_random_colour
110
+
111
+ end
112
+
113
+ # =========================================================================== #
114
+ # === Colours.random_colour?
115
+ #
116
+ # Obtain a random sample, aka a random colour, from all the registered
117
+ # html colours.
118
+ # =========================================================================== #
119
+ def self.random_colour?
120
+ Colours::HtmlColours.random_colour?
121
+ end; self.instance_eval { alias random_colour random_colour? } # === Colours.random_colour
122
+ self.instance_eval { alias random random_colour? } # === Colours.random
123
+ self.instance_eval { alias sample random_colour? } # === Colours.sample
124
+ self.instance_eval { alias random_html_colour random_colour? } # === Colours.random_html_colour
125
+ self.instance_eval { alias return_random_html_colour random_colour? } # === Colours.return_random_html_colour
126
+ self.instance_eval { alias return_random_colour random_colour? } # === Colours.return_random_colour
127
+
128
+ # =========================================================================== #
129
+ # === Colours.colour_to_rgb
130
+ # =========================================================================== #
131
+ def self.colour_to_rgb(i = :slateblue)
132
+ ::Colours::HtmlColours.colour_to_rgb(i)
133
+ end; self.instance_eval { alias to_rgb colour_to_rgb } # === Colours.to_rgb()
134
+
135
+ # =========================================================================== #
136
+ # === Colours.available_html_colours?
137
+ # =========================================================================== #
138
+ def self.available_html_colours?
139
+ ::Colours::HtmlColours.available_html_colours?
140
+ end; self.instance_eval { alias html_colours? available_html_colours? } # === Colours.html_colours?
141
+ self.instance_eval { alias html_colours available_html_colours? } # === Colours.html_colours
142
+ self.instance_eval { alias all_html_colours available_html_colours? } # === Colours.all_html_colours
143
+ self.instance_eval { alias return_all_html_colours available_html_colours? } # === Colours.return_all_html_colours
144
+ self.instance_eval { alias colours? available_html_colours? } # === Colours.colours?
145
+ self.instance_eval { alias colours available_html_colours? } # === Colours.colours
146
+ self.instance_eval { alias registered_colours? available_html_colours? } # === Colours.registered_colours?
147
+
148
+ # =========================================================================== #
149
+ # === available_html_colours?
150
+ # =========================================================================== #
151
+ def available_html_colours?
152
+ Colours.available_html_colours?
153
+ end; alias html_colours? available_html_colours? # === html_colours?
154
+ alias html_colours available_html_colours? # === html_colours
155
+ alias all_html_colours available_html_colours? # === all_html_colours
156
+ alias return_all_html_colours available_html_colours? # === return_all_html_colours
157
+ alias colours? available_html_colours? # === colours?
158
+ alias colours available_html_colours? # === colours
159
+ alias registered_colours? available_html_colours? # === registered_colours?
160
+
161
+ # # =========================================================================== #
162
+ # # === Colours[]
163
+ # # =========================================================================== #
164
+ # def self.[](i = :slateblue, optional_text_to_display = '')
165
+ # ::Colours::HtmlColours[i, optional_text_to_display]
166
+ # end
167
+
168
+ end
169
+
170
+ if __FILE__ == $PROGRAM_NAME
171
+ pp Colours::HtmlColours.return_all_html_colours
172
+ p Colours.return_all_html_colours
173
+ pp Colours::HtmlColours.colour_to_rgb('royalblue')
174
+ if ARGV.first
175
+ p Colours::HtmlColours[ARGV.first]
176
+ else
177
+ print 'sienna -> '; pp Colours::HtmlColours.colour_to_rgb(:sienna)
178
+ Colours::HtmlColours.show_all_colours
179
+ p Colours::HtmlColours['sienna']
180
+ end
181
+ # puts Colours.random_html_colour
182
+ # puts Colours.random_html_colour
183
+ # puts Colours.random_html_colour
184
+ # pp Colours::HtmlColours.available_html_colours?
185
+ # pp Colours::HtmlColours.random_colour?
186
+ end #
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/html_colours/show_html_colours.rb'
6
+ # =========================================================================== #
7
+ module Colours
8
+
9
+ module HtmlColours # === Colours::HtmlColours
10
+
11
+ require 'colours/html_colours/hash_html_colours.rb'
12
+ require 'colours/html_colours/misc.rb'
13
+ require 'colours/rgb/rgb.rb'
14
+
15
+ require 'colours/revert/revert.rb'
16
+ # ========================================================================= #
17
+ # === Colours::HtmlColours.rev
18
+ # ========================================================================= #
19
+ def self.rev
20
+ ::Colours.rev
21
+ end
22
+
23
+ # ========================================================================= #
24
+ # === Colours::HtmlColours.show_html_colours
25
+ #
26
+ # This can be used to output the colours. It requires the method
27
+ # html_colours().
28
+ #
29
+ # To invoke this method from the commandline, try:
30
+ #
31
+ # colours --show_html_colours
32
+ #
33
+ # ========================================================================= #
34
+ def self.show_html_colours
35
+ lpad = 22
36
+ show_this_standard_sentence =
37
+ 'This is a longer test-sentence in that colour.'
38
+ print ' '; e '=' * 100
39
+ html_colours.each {|this_html_colour|
40
+ result = "#{::Colours.rgb_as_string(this_html_colour)} #{this_html_colour.to_s.ljust(22)}"
41
+ # ===================================================================== #
42
+ # Next, show that particular colour.
43
+ # ===================================================================== #
44
+ string = ::Colours.rgb_as_string(this_html_colour).strip
45
+ ansi_escape_code = string.tr("\e","\\e")
46
+ display_this_line =
47
+ " | #{(this_html_colour+': ').ljust(lpad)}| "\
48
+ "#{result}#{::Colours.rev} | #{::Colours.rgb_as_string(this_html_colour)}#{show_this_standard_sentence}#{rev} |\n".dup # rev() is needed to restore the old default.
49
+ display_this_line << ' | | '
50
+ display_this_line << ''.ljust(22)
51
+ echo_string = " | echo -e \""+string+"\\"+ansi_escape_code+"xyz#{rev}"+'"'
52
+ padded_echo_string = (echo_string.rstrip).ljust(72)
53
+ display_this_line << padded_echo_string+'|'
54
+ e display_this_line
55
+ }
56
+ print ' '; e '=' * 100
57
+ end; self.instance_eval { alias display_all_colours show_html_colours } # === Colours::HtmlColours.display_all_colours
58
+ self.instance_eval { alias show_colours show_html_colours } # === Colours::HtmlColours.show_colours
59
+ self.instance_eval { alias test show_html_colours } # === Colours::HtmlColours.test
60
+ self.instance_eval { alias show_all_colours show_html_colours } # === Colours::HtmlColours.show_all_colours
61
+
62
+ end
63
+
64
+ # =========================================================================== #
65
+ # === Colours.show_html_colours
66
+ # =========================================================================== #
67
+ def self.show_html_colours
68
+ ::Colours::HtmlColours.show_html_colours
69
+ end; self.instance_eval { alias display_all_colours show_html_colours } # === Colours.display_all_colours
70
+ self.instance_eval { alias show_colours show_html_colours } # === Colours.show_colours
71
+ self.instance_eval { alias test show_html_colours } # === Colours.test
72
+ self.instance_eval { alias show_all_colours show_html_colours } # === Colours.show_all_colours
73
+
74
+ # =========================================================================== #
75
+ # === show_html_colours
76
+ # =========================================================================== #
77
+ def show_html_colours
78
+ ::Colours.show_html_colours
79
+ end
80
+
81
+ end
82
+
83
+ if __FILE__ == $PROGRAM_NAME
84
+ Colours::HtmlColours.show_html_colours
85
+ end