colours 0.8.12 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +331 -200
  3. data/bin/colours +2 -2
  4. data/bin/show_basic_colour_palette +7 -0
  5. data/colours.gemspec +1 -2
  6. data/doc/README.gen +294 -178
  7. data/doc/how_to_pick_your_own_colours/how_to_pick_your_own_colours.md +33 -0
  8. data/lib/colours/autoalias_e.rb +4 -1
  9. data/lib/colours/autogenerated/256_colours_instance_methods.rb +1429 -0
  10. data/lib/colours/autogenerated/256_colours_methods.rb +1429 -0
  11. data/lib/colours/autogenerated/html_colours_instance_methods.rb +1191 -0
  12. data/lib/colours/autogenerated/html_colours_methods.rb +1191 -0
  13. data/lib/colours/base/base.rb +61 -13
  14. data/lib/colours/class/colours.rb +8 -6
  15. data/lib/colours/{toplevel_methods/use_colours.rb → colour/colour.rb} +4 -125
  16. data/lib/colours/commandline/README.md +2 -1
  17. data/lib/colours/commandline/commandline.rb +177 -34
  18. data/lib/colours/constants/constants.rb +752 -6
  19. data/lib/colours/e/README.md +6 -6
  20. data/lib/colours/eparse/eparse.rb +2 -1
  21. data/lib/colours/essentials/README.md +5 -0
  22. data/lib/colours/{basic_colours/basic_colours.rb → essentials/essentials.rb} +87 -85
  23. data/lib/colours/html_colours/README.md +2 -1
  24. data/lib/colours/html_colours/hash_html_colours.rb +168 -0
  25. data/lib/colours/html_colours/html_colours.rb +226 -244
  26. data/lib/colours/html_colours/push_the_html_colours_methods_onto_the_toplevel_namespace.rb +30 -0
  27. data/lib/colours/html_colours/random_html_colour.rb +67 -0
  28. data/lib/colours/{requires/require_the_basic_colours.rb → html_colours.rb} +4 -2
  29. data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +12 -10
  30. data/lib/colours/module_256_colours/module_256_colours.rb +465 -0
  31. data/lib/colours/project/project.rb +3 -1
  32. data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +4 -0
  33. data/lib/colours/rainbow_colours/constants.rb +3 -3
  34. data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +9 -10
  35. data/lib/colours/rainbow_colours/print_rainbow_line.rb +4 -4
  36. data/lib/colours/rainbow_colours/println_ani.rb +7 -7
  37. data/lib/colours/rainbow_colours/println_plain.rb +2 -2
  38. data/lib/colours/rainbow_colours/rainbow.rb +31 -1
  39. data/lib/colours/rainbow_colours/report_errors.rb +7 -7
  40. data/lib/colours/rainbow_colours/returnln_plain.rb +3 -3
  41. data/lib/colours/replace_tokens_with_colour_code/replace_tokens_with_colour_code.rb +409 -0
  42. data/lib/colours/requires/require_autogenerated_colour_methods.rb +4 -1
  43. data/lib/colours/requires/{require_the_colour_table.rb → require_essentials.rb} +2 -2
  44. data/lib/colours/requires/require_save_file.rb +11 -0
  45. data/lib/colours/requires/require_the_256_colours_module.rb +1 -3
  46. data/lib/colours/requires/require_the_colour_methods.rb +1 -22
  47. data/lib/colours/requires/require_the_project.rb +31 -29
  48. data/lib/colours/requires/require_the_toplevel_methods.rb +2 -20
  49. data/lib/colours/rgb/rgb.rb +107 -89
  50. data/lib/colours/{colour_methods/colour_methods.rb → sfile_sdir_sfancy_swarn_simp_scomments_and_ssymlink/sfile_sdir_sfancy_swarn_simp_scomments_and_ssymlink.rb} +467 -405
  51. data/lib/colours/testing/testing.rb +1 -3
  52. data/lib/colours/toplevel_methods/e.rb +9 -13
  53. data/lib/colours/toplevel_methods/map_this_symbol_to_that_html_colour.rb +57 -0
  54. data/lib/colours/toplevel_methods/{revert.rb → rev.rb} +5 -48
  55. data/lib/colours/toplevel_methods/toplevel_methods.rb +1204 -0
  56. data/lib/colours/version/version.rb +2 -2
  57. data/lib/colours/yaml/256_colours.yml +776 -257
  58. data/lib/colours/yaml/html_colours.yml +1 -1
  59. data/lib/colours/yaml/prefer_this_colour_schemata.yml +1 -1
  60. data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +5 -1
  61. data/lib/colours.rb +1 -1
  62. data/test/testing_256_colours_support.rb +10 -1
  63. data/test/testing_replace_number_words_with_the_corresponding_html_colour.rb +15 -9
  64. data/test/testing_the_colour_methods_such_as_simp_sdir_sfile_swarn_sfancy_sargument_and_ssymlink.rb +53 -0
  65. metadata +30 -57
  66. data/doc/HOW_TO_PICK_YOUR_OWN_COLOURS.md +0 -28
  67. data/lib/colours/256_colours/support_for_256_colours.rb +0 -196
  68. data/lib/colours/autogenerated/support_for_256_colours.rb +0 -2235
  69. data/lib/colours/autogenerated/support_for_html_colours.rb +0 -1778
  70. data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +0 -7001
  71. data/lib/colours/basic_colours/README.md +0 -4
  72. data/lib/colours/colour_methods/README.md +0 -11
  73. data/lib/colours/colour_table/README.md +0 -2
  74. data/lib/colours/colour_table/colour_table.rb +0 -282
  75. data/lib/colours/commandline/menu.rb +0 -122
  76. data/lib/colours/constants/escape.rb +0 -22
  77. data/lib/colours/constants/file_constants.rb +0 -73
  78. data/lib/colours/constants/hash_ansi_colours.rb +0 -39
  79. data/lib/colours/constants/hash_simple_colours.rb +0 -148
  80. data/lib/colours/constants/misc.rb +0 -361
  81. data/lib/colours/constants/newline.rb +0 -14
  82. data/lib/colours/constants/registered_colour_methods.rb +0 -53
  83. data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +0 -22
  84. data/lib/colours/toplevel_methods/autogenerate.rb +0 -310
  85. data/lib/colours/toplevel_methods/bold.rb +0 -41
  86. data/lib/colours/toplevel_methods/bold_and_italic.rb +0 -38
  87. data/lib/colours/toplevel_methods/cat.rb +0 -39
  88. data/lib/colours/toplevel_methods/clear_screen.rb +0 -18
  89. data/lib/colours/toplevel_methods/cliner.rb +0 -17
  90. data/lib/colours/toplevel_methods/col.rb +0 -54
  91. data/lib/colours/toplevel_methods/esystem.rb +0 -19
  92. data/lib/colours/toplevel_methods/html_colour_to_hex_value.rb +0 -41
  93. data/lib/colours/toplevel_methods/html_colourize.rb +0 -69
  94. data/lib/colours/toplevel_methods/is_on_roebe.rb +0 -16
  95. data/lib/colours/toplevel_methods/italic.rb +0 -110
  96. data/lib/colours/toplevel_methods/make_colour.rb +0 -28
  97. data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +0 -336
  98. data/lib/colours/toplevel_methods/misc.rb +0 -226
  99. data/lib/colours/toplevel_methods/open_this_file.rb +0 -26
  100. data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +0 -88
  101. data/lib/colours/toplevel_methods/random_value.rb +0 -37
  102. data/lib/colours/toplevel_methods/remove_escape_sequence.rb +0 -112
  103. data/lib/colours/toplevel_methods/set_last_colour_used.rb +0 -32
  104. data/lib/colours/toplevel_methods/shell_file_containing_the_html_colours.sh +0 -148
  105. data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +0 -36
  106. data/lib/colours/toplevel_methods/underline.rb +0 -130
  107. data/test/testing_the_colour_methods.rb +0 -36
  108. /data/doc/{COLOUR_CODES_CHART.md → colour_codes_chart/colour_codes_chart.md} +0 -0
@@ -3,15 +3,28 @@
3
3
  # frozen_string_literal: true
4
4
  # =========================================================================== #
5
5
  # require 'colours/html_colours/html_colours.rb'
6
+ # Colours.map_this_symbol_to_that_html_colour
7
+ # Colours.autogenerate_html_colours_methods
6
8
  # =========================================================================== #
7
9
  module Colours
8
10
 
9
11
  module HtmlColours # === Colours::HtmlColours
10
12
 
11
- require 'yaml'
12
- require 'colours/constants/file_constants.rb'
13
+ # ========================================================================= #
14
+ # This module will also try to pull in the autogenerated
15
+ # Colours::HtmlColoursMethods module, if available.
16
+ # ========================================================================= #
17
+ begin
18
+ require 'colours/autogenerated/html_colours_methods.rb'
19
+ rescue LoadError
20
+ # puts 'No file exists at `colours/autogenerated/html_colours_methods.rb`.'
21
+ end
22
+
13
23
  require 'colours/toplevel_methods/e.rb'
14
- require 'colours/toplevel_methods/revert.rb'
24
+ require 'colours/toplevel_methods/map_this_symbol_to_that_html_colour.rb'
25
+ require 'colours/toplevel_methods/rev.rb'
26
+ require 'colours/html_colours/hash_html_colours.rb'
27
+ require 'colours/html_colours/random_html_colour.rb'
15
28
 
16
29
  # ========================================================================= #
17
30
  # === Colours::HtmlColours.rev
@@ -20,47 +33,133 @@ module HtmlColours # === Colours::HtmlColours
20
33
  ::Colours.rev
21
34
  end
22
35
 
23
- # =========================================================================== #
24
- # === Colours::HtmlColours::HASH_HTML_COLOURS
36
+ # ========================================================================= #
37
+ # === Colours::HtmlColours.e
38
+ # ========================================================================= #
39
+ def self.e(i = '')
40
+ ::Colours.e(i)
41
+ end
42
+
43
+ # ========================================================================= #
44
+ # === all_html_colours
45
+ #
46
+ # This method will feedback all html colours known.
47
+ # ========================================================================= #
48
+ def all_html_colours
49
+ ::Colours::HtmlColours.available_html_colours?
50
+ end; alias all_html_colours? all_html_colours # === all_html_colours?
51
+ alias html_colours? all_html_colours # === html_colours?
52
+ alias all_colours all_html_colours # === all_colours
53
+
54
+ # ========================================================================= #
55
+ # === Colours::HtmlColours.autogenerate_html_colours_methods (autogenerate tag)
25
56
  #
26
- # The colours in the yaml file are stored in a:
57
+ # This method will autogenerated all HTML colours, onto the toplevel
58
+ # namespace called "Colours".
27
59
  #
28
- # name: hexvalue
60
+ # Commandline invocation example:
29
61
  #
30
- # format.
31
- # =========================================================================== #
32
- _ = FILE_HTML_COLOURS
33
-
34
- # =========================================================================== #
35
- # === @hash_html_colours
36
- # =========================================================================== #
37
- @hash_html_colours = {}
62
+ # colours --autogenerate_html_colours_methods
63
+ #
64
+ # ========================================================================= #
65
+ def self.autogenerate_html_colours_methods(
66
+ into = HOME_DIRECTORY_OF_USER_X+
67
+ 'programming/ruby/src/'\
68
+ 'colours/lib/colours/autogenerated/'\
69
+ 'html_colours_methods.rb'
70
+ )
71
+ require 'colours/requires/require_save_file.rb'
72
+ dataset_from_the_yaml_file = YAML.load_file(::Colours.file_html_colours)
73
+ _ = "#{RUBY_HEADER}\n".dup
74
+ _ << "# require 'colours/autogenerated/#{File.basename(into)}'\n"
75
+ _ << "# =========================================================================== #\n"
76
+ _ << "# include ::Colours::HtmlColoursMethods\n"
77
+ _ << "# =========================================================================== #\n"
78
+ _ << "module Colours\n\n"
79
+ _ << "module HtmlColoursMethods # === ::Colours::HtmlColoursMethods\n\n"
38
80
 
39
- if File.exist? _
40
- @hash_html_colours = YAML.load_file(_)
41
- else
42
- # ======================================================================= #
43
- # The second check is not ideal but I think that I only need this
44
- # on my home system anyway.
45
- # ======================================================================= #
46
- if ("#{ENV['IS_ROEBE']}" == '1')
47
- puts "Colours::HtmlColours: We could not find any "\
48
- "file at `#{_}`."
49
- end
81
+ ::Colours::HtmlColours.all_html_colours?.each {|this_html_colour|
82
+ # ===================================================================== #
83
+ # We must obtain the proper entry from the .yml file next:
84
+ # ===================================================================== #
85
+ pointer = dataset_from_the_yaml_file[this_html_colour.to_s]
86
+ r = pointer[0]
87
+ g = pointer[1]
88
+ b = pointer[2]
89
+ _ << " # ========================================================================= #\n"
90
+ _ << " # === Colours::HtmlColoursMethods.#{this_html_colour}\n"
91
+ _ << " # ========================================================================= #\n"
92
+ _ << " def self.#{this_html_colour}(i = '', &block)\n"
93
+ # ===================================================================== #
94
+ # The colour code goes like this:
95
+ #
96
+ # \033[38;2;<R>;<G>;<B>m
97
+ #
98
+ # ===================================================================== #
99
+ _ << ' return "'+
100
+ '\e[38;2;'+
101
+ "#{r};#{g};#{b}m"+ # ← Here the r,g,b values. 'm' terminates the escape sequence.
102
+ "#\{i\}\""+
103
+ " if block_given? and (yield == :omit_end)"+
104
+ "\n"
105
+ _ << ' return "'+
106
+ '\e[38;2;'+
107
+ "#{r};#{g};#{b}m"+ # ← Here the r,g,b values. 'm' terminates the escape sequence.
108
+ "#\{i\}"+
109
+ "\\e[0m"+
110
+ "\"\n"
111
+ _ << " end\n\n"
112
+ }
113
+ _ << "end\n\n"
114
+ _ << "end\n"
115
+ e "Storing into the file `#{into}` next."
116
+ SaveFile.write_what_into(_, into)
117
+ autogenerate_html_colours_methods_for_instance_methods
50
118
  end
51
119
 
52
- # =========================================================================== #
53
- # === Colours::HtmlColours.hash_html_colours?
54
- # =========================================================================== #
55
- def self.hash_html_colours?
56
- @hash_html_colours
57
- end; self.instance_eval { alias main_hash? hash_html_colours? } # === Colours::HtmlColours.main_hash?
120
+ # ========================================================================= #
121
+ # === Colours::HtmlColours.autogenerate_html_colours_methods_for_instance_methods
122
+ #
123
+ # On my home system I can use this command to trigger this method:
124
+ #
125
+ # autogenerate_html_colours_methods
126
+ #
127
+ # ========================================================================= #
128
+ def self.autogenerate_html_colours_methods_for_instance_methods(
129
+ into = HOME_DIRECTORY_OF_USER_X+
130
+ 'programming/ruby/src/'\
131
+ 'colours/lib/colours/autogenerated/'\
132
+ 'html_colours_instance_methods.rb'
133
+ )
134
+ require 'colours/requires/require_save_file.rb'
135
+ _ = "#{RUBY_HEADER}\n".dup
136
+ _ << "# require 'colours/autogenerated/#{File.basename(into)}'\n"
137
+ _ << "# =========================================================================== #\n"
138
+ _ << "# include ::Colours::HtmlColoursMethods\n"
139
+ _ << "# =========================================================================== #\n"
140
+ _ << "module Colours\n\n"
141
+ _ << "module HtmlColoursMethods # === ::Colours::HtmlColoursMethods\n\n"
142
+
143
+ ::Colours::HtmlColours.all_html_colours?.each {|this_html_colour|
144
+ _ << " # ========================================================================= #\n"
145
+ _ << " # === #{this_html_colour}\n"
146
+ _ << " # ========================================================================= #\n"
147
+ _ << " def #{this_html_colour}(i = '', &block)\n"
148
+ _ << " return ::Colours::HtmlColoursMethods.#{this_html_colour}(i, &block)\n"
149
+ _ << " end; alias konsole_colour_#{this_html_colour} #{this_html_colour}\n"
150
+ _ << " alias konsole_#{this_html_colour} #{this_html_colour}\n\n"
151
+ }
152
+ _ << "end\n\n"
153
+ _ << "end\n"
154
+ e "Storing into the file `#{into}` next."
155
+ SaveFile.write_what_into(_, into)
156
+ end
58
157
 
59
158
  # ========================================================================= #
60
159
  # === Colours::HtmlColours.show_html_colours
61
160
  #
62
161
  # This can be used to output the colours. It requires the method
63
- # html_colours().
162
+ # html_colours() as well as support for RGB values.
64
163
  #
65
164
  # To invoke this method from the commandline, try:
66
165
  #
@@ -96,100 +195,6 @@ module HtmlColours # === Colours::HtmlColours
96
195
  self.instance_eval { alias test show_html_colours } # === Colours::HtmlColours.test
97
196
  self.instance_eval { alias show_all_colours show_html_colours } # === Colours::HtmlColours.show_all_colours
98
197
 
99
- # =========================================================================== #
100
- # === Colours::HtmlColours.does_include?
101
- #
102
- # This method will return true if the given input is included in the
103
- # HTML colours.
104
- #
105
- # Usage examples:
106
- #
107
- # Colours::HtmlColours.does_include? 'slateblue' # => true
108
- # Colours::HtmlColours.is_this_html_colour_included? 'royalblue' # => true
109
- # Colours::HtmlColours.is_this_html_colour_included? 'megawhite' # => false
110
- #
111
- # =========================================================================== #
112
- def self.does_include?(i = :slateblue)
113
- return true if @hash_html_colours.has_key?(i.to_s)
114
- false # else return false.
115
- end; self.instance_eval { alias is_this_html_colour_included? does_include? } # === Colours::HtmlColours.is_this_html_colour_included?
116
- self.instance_eval { alias is_a_html_colour? does_include? } # === Colours::HtmlColours.is_a_html_colour?
117
- self.instance_eval { alias is_a_HTML_colour? does_include? } # === Colours::HtmlColours.is_a_HTML_colour?
118
- self.instance_eval { alias is_this_a_html_colour? does_include? } # === Colours::HtmlColours.is_this_a_html_colour?
119
- self.instance_eval { alias html_colours_include? does_include? } # === Colours::HtmlColours.html_colours_include?
120
- self.instance_eval { alias include_this_html_colour? does_include? } # === Colours::HtmlColours.include_this_html_colour?
121
- self.instance_eval { alias is_this_a_valid_html_colour? does_include? } # === Colours::HtmlColours.is_this_a_valid_html_colour?
122
- self.instance_eval { alias is_this_input_a_html_colour? does_include? } # === Colours::HtmlColours.is_this_input_a_html_colour?
123
- self.instance_eval { alias has_colour? does_include? } # === Colours::HtmlColours.has_colour?
124
- self.instance_eval { alias registered_colour? does_include? } # === Colours::HtmlColours.registered_colour?
125
-
126
- # =========================================================================== #
127
- # === Colours::HtmlColours.e
128
- # =========================================================================== #
129
- def self.e(i = '')
130
- ::Colours.e(i)
131
- end
132
-
133
- # =========================================================================== #
134
- # === Colours::HtmlColours.available_html_colours?
135
- #
136
- # This method will return an Array with all available HTML colours.
137
- # =========================================================================== #
138
- def self.available_html_colours?
139
- @hash_html_colours.keys
140
- end; self.instance_eval { alias html_colours available_html_colours? } # === Colours::HtmlColours.html_colours
141
- self.instance_eval { alias all_html_colours available_html_colours? } # === Colours::HtmlColours.all_html_colours
142
- self.instance_eval { alias return_all_html_colours available_html_colours? } # === Colours::HtmlColours.return_all_html_colours
143
- self.instance_eval { alias all_colours available_html_colours? } # === HtmlColours.all_colours
144
- self.instance_eval { alias all_colours? available_html_colours? } # === HtmlColours.all_colours?
145
- self.instance_eval { alias colours available_html_colours? } # === HtmlColours.colours
146
- self.instance_eval { alias colours? available_html_colours? } # === HtmlColours.colours?
147
- self.instance_eval { alias all? available_html_colours? } # === HtmlColours.all?
148
- self.instance_eval { alias registered_colours? available_html_colours? } # === HtmlColours.registered_colours?
149
-
150
- # =========================================================================== #
151
- # === all_html_colours
152
- #
153
- # This method will feedback all html colours known.
154
- # =========================================================================== #
155
- def all_html_colours
156
- ::Colours::HtmlColours.available_html_colours?
157
- end; alias html_colours? all_html_colours # === html_colours?
158
- alias all_colours all_html_colours # === all_colours
159
-
160
- begin
161
- require 'colours/autogenerated/support_for_html_colours.rb'
162
- rescue LoadError
163
- puts 'No file exists at colours/autogenerated/support_for_html_colours.rb.'
164
- end
165
- # ========================================================================= #
166
- # === Colours::HtmlColours[]
167
- #
168
- # Usage examples:
169
- #
170
- # Colours::HtmlColours['slateblue','Hello World!'] # works as Example 1
171
- # Colours::HtmlColours['slateblue']
172
- # Colours::HtmlColours['lightgreen','Hello World!']
173
- # Colours::HtmlColours[:random]
174
- # e Colours::HtmlColours[:random, 'yo there']
175
- #
176
- # ========================================================================= #
177
- def self.[](
178
- which_colour_to_use, optional_text_to_display = ''
179
- )
180
- case which_colour_to_use
181
- when :random
182
- which_colour_to_use = random_html_colour
183
- end
184
- if ::Colours.use_html_colours?
185
- ::Colours::SupportForHTMLColours.send(
186
- which_colour_to_use, optional_text_to_display
187
- )
188
- else # else return it unmodified.
189
- optional_text_to_display
190
- end
191
- end
192
-
193
198
  # ========================================================================= #
194
199
  # === Colours::HtmlColours.html_colourize
195
200
  # ========================================================================= #
@@ -220,8 +225,8 @@ module HtmlColours # === Colours::HtmlColours
220
225
  e i
221
226
  end
222
227
 
223
- # =========================================================================== #
224
- # === Colours::HtmlColours.colour_to_rgb('royalblue')
228
+ # ========================================================================= #
229
+ # === Colours::HtmlColours.colour_to_rgb
225
230
  #
226
231
  # This method will convert the long colour name to an Array
227
232
  # with R,G,B values.
@@ -232,29 +237,64 @@ module HtmlColours # === Colours::HtmlColours
232
237
  # Colours::HtmlColours.colour_to_rgb('slateblue') # => [106, 90, 205]
233
238
  # Colours::HtmlColours.colour_to_rgb(:royalblue) # => [65, 105, 225]
234
239
  #
235
- # =========================================================================== #
236
- def self.colour_to_rgb(long_name = :slateblue)
237
- pointer = @hash_html_colours[long_name.to_s] # This will be an Array.
240
+ # ========================================================================= #
241
+ def self.colour_to_rgb(
242
+ long_name = :slateblue
243
+ )
244
+ pointer = @dataset[long_name.to_s] # This will be an Array.
238
245
  return [pointer[0], pointer[1], pointer[2]]
239
246
  end; self.instance_eval { alias to_rgb colour_to_rgb } # === HtmlColours.to_rgb()
240
247
 
241
- # =========================================================================== #
242
- # === Colours::HtmlColours.random_colour?
248
+ # ========================================================================= #
249
+ # === Colours::HtmlColours[]
250
+ #
251
+ # Easier toplevel-access method, through [].
252
+ #
253
+ # The second message is the text that you wish to display.
254
+ #
255
+ # Usage examples:
256
+ #
257
+ # Colours::HtmlColours['slateblue','Hello World!'] # works as Example 1
258
+ # Colours::HtmlColours['slateblue']
259
+ # Colours::HtmlColours['lightgreen','Hello World!']
260
+ # Colours::HtmlColours[:random]
261
+ # e Colours::HtmlColours[:random, 'yo there']
262
+ # e Colours::HtmlColours[:steelblue, 'yo there']
243
263
  #
244
- # Obtain a random sample, aka a random colour, from all the registered
245
- # html colours.
246
- # =========================================================================== #
247
- def self.random_colour?
248
- available_html_colours?.sample
249
- end; self.instance_eval { alias random_colour random_colour? } # === Colours::HtmlColours.random_colour
250
- self.instance_eval { alias random random_colour? } # === Colours::HtmlColours.random
251
- self.instance_eval { alias sample random_colour? } # === Colours::HtmlColours.sample
252
- self.instance_eval { alias random_html_colour random_colour? } # === Colours::HtmlColours.random_html_colour
253
- self.instance_eval { alias return_random_html_colour random_colour? } # === Colours::HtmlColours.return_random_html_colour
254
- self.instance_eval { alias return_random_colour random_colour? } # === Colours::HtmlColours.return_random_colour
264
+ # ========================================================================= #
265
+ def self.[](
266
+ use_this_colour = :slateblue,
267
+ display_this_text = ''
268
+ )
269
+ case use_this_colour
270
+ # ======================================================================= #
271
+ # === :random
272
+ # ======================================================================= #
273
+ when :random
274
+ use_this_colour = random_html_colour
275
+ end
276
+ ::Colours::HtmlColoursMethods.send(
277
+ use_this_colour,
278
+ display_this_text
279
+ )
280
+ end
255
281
 
256
282
  end
257
283
 
284
+ # =========================================================================== #
285
+ # === available_html_colours?
286
+ # =========================================================================== #
287
+ def available_html_colours?
288
+ ::Colours.available_html_colours?
289
+ end; alias all_html_colours? available_html_colours? # === all_html_colours?
290
+ alias html_colours? available_html_colours? # === html_colours?
291
+ alias html_colours available_html_colours? # === html_colours
292
+ alias all_html_colours available_html_colours? # === all_html_colours
293
+ alias return_all_html_colours available_html_colours? # === return_all_html_colours
294
+ alias colours? available_html_colours? # === colours?
295
+ alias colours available_html_colours? # === colours
296
+ alias registered_colours? available_html_colours? # === registered_colours?
297
+
258
298
  # =========================================================================== #
259
299
  # === Colours.show_html_colours
260
300
  # =========================================================================== #
@@ -272,21 +312,6 @@ def show_html_colours
272
312
  ::Colours.show_html_colours
273
313
  end
274
314
 
275
- # =========================================================================== #
276
- # === Colours.random_colour?
277
- #
278
- # Obtain a random sample, aka a random colour, from all the registered
279
- # html colours.
280
- # =========================================================================== #
281
- def self.random_colour?
282
- ::Colours::HtmlColours.random_colour?
283
- end; self.instance_eval { alias random_colour random_colour? } # === Colours.random_colour
284
- self.instance_eval { alias random random_colour? } # === Colours.random
285
- self.instance_eval { alias sample random_colour? } # === Colours.sample
286
- self.instance_eval { alias random_html_colour random_colour? } # === Colours.random_html_colour
287
- self.instance_eval { alias return_random_html_colour random_colour? } # === Colours.return_random_html_colour
288
- self.instance_eval { alias return_random_colour random_colour? } # === Colours.return_random_colour
289
-
290
315
  # =========================================================================== #
291
316
  # === Colours.colour_to_rgb
292
317
  # =========================================================================== #
@@ -295,109 +320,67 @@ def self.colour_to_rgb(i = :slateblue)
295
320
  end; self.instance_eval { alias to_rgb colour_to_rgb } # === Colours.to_rgb()
296
321
 
297
322
  # =========================================================================== #
298
- # === Colours.available_html_colours?
299
- # =========================================================================== #
300
- def self.available_html_colours?
301
- ::Colours::HtmlColours.available_html_colours?
302
- end; self.instance_eval { alias html_colours? available_html_colours? } # === Colours.html_colours?
303
- self.instance_eval { alias html_colours available_html_colours? } # === Colours.html_colours
304
- self.instance_eval { alias all_html_colours available_html_colours? } # === Colours.all_html_colours
305
- self.instance_eval { alias return_all_html_colours available_html_colours? } # === Colours.return_all_html_colours
306
- self.instance_eval { alias colours? available_html_colours? } # === Colours.colours?
307
- self.instance_eval { alias colours available_html_colours? } # === Colours.colours
308
- self.instance_eval { alias registered_colours? available_html_colours? } # === Colours.registered_colours?
309
-
310
- # =========================================================================== #
311
- # === Colours.hash_html_colours?
312
- # =========================================================================== #
313
- def self.hash_html_colours?
314
- ::Colours::HtmlColours.hash_html_colours?
315
- end
316
-
317
- # =========================================================================== #
318
- # === Colours.does_include?
319
- #
320
- # Usage examples:
321
- #
322
- # Colours.does_include? 'slateblue'
323
- # Colours.is_this_html_colour_included? 'royalblue' # => true
324
- # Colours.is_this_html_colour_included? 'megawhite' # => false
325
- #
326
- # =========================================================================== #
327
- def self.does_include?(i = :slateblue)
328
- i = i.to_sym unless i.is_a? Symbol
329
- ::Colours::HtmlColours.does_include?(i)
330
- end; self.instance_eval { alias is_this_html_colour_included? does_include? } # === Colours.is_this_html_colour_included?
331
- self.instance_eval { alias is_a_html_colour? does_include? } # === Colours.is_a_html_colour?
332
- self.instance_eval { alias is_a_HTML_colour? does_include? } # === Colours.is_a_HTML_colour?
333
- self.instance_eval { alias is_this_a_html_colour? does_include? } # === Colours.is_this_a_html_colour?
334
- self.instance_eval { alias html_colours_include? does_include? } # === Colours.html_colours_include?
335
- self.instance_eval { alias include_this_html_colour? does_include? } # === Colours.include_this_html_colour?
336
- self.instance_eval { alias is_this_a_valid_html_colour? does_include? } # === Colours.is_this_a_valid_html_colour?
337
- self.instance_eval { alias is_this_input_a_html_colour? does_include? } # === Colours.is_this_input_a_html_colour?
338
- self.instance_eval { alias has_colour? does_include? } # === Colours.has_colour?
339
- self.instance_eval { alias registered_colour? does_include? } # === Colours.registered_colour?
340
-
341
- # =========================================================================== #
342
- # === available_html_colours?
343
- # =========================================================================== #
344
- def available_html_colours?
345
- ::Colours.available_html_colours?
346
- end; alias html_colours? available_html_colours? # === html_colours?
347
- alias html_colours available_html_colours? # === html_colours
348
- alias all_html_colours available_html_colours? # === all_html_colours
349
- alias return_all_html_colours available_html_colours? # === return_all_html_colours
350
- alias colours? available_html_colours? # === colours?
351
- alias colours available_html_colours? # === colours
352
- alias registered_colours? available_html_colours? # === registered_colours?
353
-
354
- # =========================================================================== #
355
- # === Colours.random_html_colour
323
+ # === Colours.does_this_line_include_a_html_colour?
356
324
  #
357
- # This method will simply return a (one) random HTML colour, in long
358
- # format, e. g. "teal" or "slateblue".
325
+ # This method can be used to determine whether the given input-string
326
+ # contains a valid HTML colour or whether it does not.
359
327
  #
360
- # If you wish to have it colourized properly, you need to use another
361
- # method.
328
+ # Returns: a boolean.
362
329
  #
363
- # Usage examples:
330
+ # Invocation examples:
364
331
  #
365
- # Colours.random_colour? # => "teal"
366
- # Colours.random_colour? # => "blueviolet"
332
+ # Colours.does_this_line_include_a_html_colour? "<green>yo there</green> <orange>getline() function</orange>" # => true
333
+ # Colours.does_this_line_include_a_html_colour? "foo bar" # => false
367
334
  #
368
- # =========================================================================== #
369
- def self.random_html_colour
370
- ::Colours::HtmlColours.random_colour?
371
- end; self.instance_eval { alias random_colour? random_html_colour } # === Colours.random_colour?
372
- self.instance_eval { alias return_html_colour? random_html_colour } # === Colours.return_html_colour?
373
- self.instance_eval { alias random_html_colour? random_html_colour } # === Colours.random_html_colour?
374
- self.instance_eval { alias return_random_html_colour random_html_colour } # === Colours.return_random_html_colour
335
+ # =========================================================================== #
336
+ def self.does_this_line_include_a_html_colour?(
337
+ line
338
+ )
339
+ html_colours?.any? {|entry|
340
+ line.include? entry
341
+ }
342
+ end
375
343
 
376
344
  # =========================================================================== #
377
345
  # === random_colour?
378
346
  # =========================================================================== #
379
347
  def random_colour?
380
348
  return Colours.random_html_colour
381
- end; alias random_colour random_colour? # === random_colour
349
+ end; alias return_random_html_colour random_colour? # === return_random_html_colour
350
+ alias random_html_colour random_colour? # === random_html_colour
351
+ alias random_colour random_colour? # === random_colour
382
352
  alias random random_colour? # === random
383
353
  alias sample random_colour? # === sample
384
- alias random_html_colour random_colour? # === random_html_colour
385
- alias return_random_html_colour random_colour? # === return_random_html_colour
386
354
 
387
- # # =========================================================================== #
388
- # # === Colours[]
389
- # # =========================================================================== #
390
- # def self.[](i = :slateblue, optional_text_to_display = '')
391
- # ::Colours::HtmlColours[i, optional_text_to_display]
392
- # end
355
+ # =========================================================================== #
356
+ # === Colours.autogenerate_html_colours_methods
357
+ # =========================================================================== #
358
+ def self.autogenerate_html_colours_methods
359
+ ::Colours::HtmlColours.autogenerate_html_colours_methods
360
+ end; self.instance_eval { alias autogenerate_the_module_for_the_html_colours autogenerate_html_colours_methods } # === Colours.autogenerate_the_module_for_the_html_colours
393
361
 
394
362
  end
395
363
 
396
364
  if __FILE__ == $PROGRAM_NAME
397
365
  alias e puts
366
+ dataset = Colours::HtmlColours.dataset?
367
+ pp dataset
368
+ _ = Colours::HtmlColours.available_html_colours?
369
+ e _.size.to_s+' HTML colours are registered.'
370
+ e 'Is slateblue a HTML colour? '+
371
+ Colours::HtmlColours.does_include?('slateblue').to_s
372
+ e
373
+ pp Colours::HtmlColours.colour_to_rgb('whitesmoke') # => [245, 245, 245]
374
+ pp Colours::HtmlColours.colour_to_rgb('slateblue') # => [106, 90, 205]
375
+ pp Colours::HtmlColours.colour_to_rgb(:royalblue) # => [65, 105, 225]
376
+ e
377
+ e 'Picking a random HTML colour next: '+
378
+ Colours::HtmlColours.random_colour?
379
+ e
398
380
  pp Colours::HtmlColours.return_all_html_colours
399
381
  p Colours.return_all_html_colours
400
382
  pp Colours::HtmlColours.colour_to_rgb('royalblue')
383
+ e
401
384
  if ARGV.first
402
385
  p Colours::HtmlColours[ARGV.first]
403
386
  else
@@ -417,8 +400,7 @@ if __FILE__ == $PROGRAM_NAME
417
400
  e
418
401
  Colours::HtmlColours.html_colourize(ARGF)
419
402
  e
420
- e 'Random HTML colour: '+Colours.random_html_colour.to_s
403
+ e Colours.does_this_line_include_a_html_colour? "<green>yo there</green> <orange>getline() function</orange>" # => true
404
+ e Colours.does_this_line_include_a_html_colour? "foo bar" # => false
421
405
  e
422
- e Colours.random_colour? # => "teal"
423
- e Colours.random_colour? # => "steelblue"
424
406
  end
@@ -0,0 +1,30 @@
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". By default it is NOT required, so you may have
7
+ # to do so on your own.
8
+ # =========================================================================== #
9
+ # require 'colours/html_colours/push_the_html_colours_methods_onto_the_toplevel_namespace.rb'
10
+ # Colours.push_the_html_colours_methods_onto_the_toplevel_namespace
11
+ # =========================================================================== #
12
+ module Colours
13
+
14
+ # ========================================================================= #
15
+ # === Colours.push_the_html_colours_methods_onto_the_toplevel_namespace
16
+ # ========================================================================= #
17
+ def self.push_the_html_colours_methods_onto_the_toplevel_namespace
18
+ require 'colours/autogenerated/html_colours_methods.rb'
19
+ require 'colours/autogenerated/html_colours_instance_methods.rb'
20
+ # ========================================================================= #
21
+ # We have to put the ColourMethods into the toplevel namespace at once,
22
+ # so that methods such as slateblue() are defined.
23
+ # ========================================================================= #
24
+ extend ::Colours::HtmlColoursMethods
25
+
26
+ include ::Colours::HtmlColoursMethods
27
+
28
+ end; self.instance_eval { alias add_html_colours_onto_the_toplevel_namespace push_the_html_colours_methods_onto_the_toplevel_namespace } # === Colours.add_html_colours_onto_the_toplevel_namespace
29
+
30
+ end