colours 0.8.12 → 0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +331 -200
- data/bin/colours +2 -2
- data/bin/show_basic_colour_palette +7 -0
- data/colours.gemspec +1 -2
- data/doc/README.gen +294 -178
- data/doc/how_to_pick_your_own_colours/how_to_pick_your_own_colours.md +33 -0
- data/lib/colours/autoalias_e.rb +4 -1
- data/lib/colours/autogenerated/256_colours_instance_methods.rb +1429 -0
- data/lib/colours/autogenerated/256_colours_methods.rb +1429 -0
- data/lib/colours/autogenerated/html_colours_instance_methods.rb +1191 -0
- data/lib/colours/autogenerated/html_colours_methods.rb +1191 -0
- data/lib/colours/base/base.rb +61 -13
- data/lib/colours/class/colours.rb +8 -6
- data/lib/colours/{toplevel_methods/use_colours.rb → colour/colour.rb} +4 -125
- data/lib/colours/commandline/README.md +2 -1
- data/lib/colours/commandline/commandline.rb +177 -34
- data/lib/colours/constants/constants.rb +752 -6
- data/lib/colours/e/README.md +6 -6
- data/lib/colours/eparse/eparse.rb +2 -1
- data/lib/colours/essentials/README.md +5 -0
- data/lib/colours/{basic_colours/basic_colours.rb → essentials/essentials.rb} +87 -85
- data/lib/colours/html_colours/README.md +2 -1
- data/lib/colours/html_colours/hash_html_colours.rb +168 -0
- data/lib/colours/html_colours/html_colours.rb +226 -244
- data/lib/colours/html_colours/push_the_html_colours_methods_onto_the_toplevel_namespace.rb +30 -0
- data/lib/colours/html_colours/random_html_colour.rb +67 -0
- data/lib/colours/{requires/require_the_basic_colours.rb → html_colours.rb} +4 -2
- data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +12 -10
- data/lib/colours/module_256_colours/module_256_colours.rb +465 -0
- data/lib/colours/project/project.rb +3 -1
- data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +4 -0
- data/lib/colours/rainbow_colours/constants.rb +3 -3
- data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +9 -10
- data/lib/colours/rainbow_colours/print_rainbow_line.rb +4 -4
- data/lib/colours/rainbow_colours/println_ani.rb +7 -7
- data/lib/colours/rainbow_colours/println_plain.rb +2 -2
- data/lib/colours/rainbow_colours/rainbow.rb +31 -1
- data/lib/colours/rainbow_colours/report_errors.rb +7 -7
- data/lib/colours/rainbow_colours/returnln_plain.rb +3 -3
- data/lib/colours/replace_tokens_with_colour_code/replace_tokens_with_colour_code.rb +409 -0
- data/lib/colours/requires/require_autogenerated_colour_methods.rb +4 -1
- data/lib/colours/requires/{require_the_colour_table.rb → require_essentials.rb} +2 -2
- data/lib/colours/requires/require_save_file.rb +11 -0
- data/lib/colours/requires/require_the_256_colours_module.rb +1 -3
- data/lib/colours/requires/require_the_colour_methods.rb +1 -22
- data/lib/colours/requires/require_the_project.rb +31 -29
- data/lib/colours/requires/require_the_toplevel_methods.rb +2 -20
- data/lib/colours/rgb/rgb.rb +107 -89
- 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
- data/lib/colours/testing/testing.rb +1 -3
- data/lib/colours/toplevel_methods/e.rb +9 -13
- data/lib/colours/toplevel_methods/map_this_symbol_to_that_html_colour.rb +57 -0
- data/lib/colours/toplevel_methods/{revert.rb → rev.rb} +5 -48
- data/lib/colours/toplevel_methods/toplevel_methods.rb +1204 -0
- data/lib/colours/version/version.rb +2 -2
- data/lib/colours/yaml/256_colours.yml +776 -257
- data/lib/colours/yaml/html_colours.yml +1 -1
- data/lib/colours/yaml/prefer_this_colour_schemata.yml +1 -1
- data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +5 -1
- data/lib/colours.rb +1 -1
- data/test/testing_256_colours_support.rb +10 -1
- data/test/testing_replace_number_words_with_the_corresponding_html_colour.rb +15 -9
- data/test/testing_the_colour_methods_such_as_simp_sdir_sfile_swarn_sfancy_sargument_and_ssymlink.rb +53 -0
- metadata +30 -57
- data/doc/HOW_TO_PICK_YOUR_OWN_COLOURS.md +0 -28
- data/lib/colours/256_colours/support_for_256_colours.rb +0 -196
- data/lib/colours/autogenerated/support_for_256_colours.rb +0 -2235
- data/lib/colours/autogenerated/support_for_html_colours.rb +0 -1778
- data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +0 -7001
- data/lib/colours/basic_colours/README.md +0 -4
- data/lib/colours/colour_methods/README.md +0 -11
- data/lib/colours/colour_table/README.md +0 -2
- data/lib/colours/colour_table/colour_table.rb +0 -282
- data/lib/colours/commandline/menu.rb +0 -122
- data/lib/colours/constants/escape.rb +0 -22
- data/lib/colours/constants/file_constants.rb +0 -73
- data/lib/colours/constants/hash_ansi_colours.rb +0 -39
- data/lib/colours/constants/hash_simple_colours.rb +0 -148
- data/lib/colours/constants/misc.rb +0 -361
- data/lib/colours/constants/newline.rb +0 -14
- data/lib/colours/constants/registered_colour_methods.rb +0 -53
- data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +0 -22
- data/lib/colours/toplevel_methods/autogenerate.rb +0 -310
- data/lib/colours/toplevel_methods/bold.rb +0 -41
- data/lib/colours/toplevel_methods/bold_and_italic.rb +0 -38
- data/lib/colours/toplevel_methods/cat.rb +0 -39
- data/lib/colours/toplevel_methods/clear_screen.rb +0 -18
- data/lib/colours/toplevel_methods/cliner.rb +0 -17
- data/lib/colours/toplevel_methods/col.rb +0 -54
- data/lib/colours/toplevel_methods/esystem.rb +0 -19
- data/lib/colours/toplevel_methods/html_colour_to_hex_value.rb +0 -41
- data/lib/colours/toplevel_methods/html_colourize.rb +0 -69
- data/lib/colours/toplevel_methods/is_on_roebe.rb +0 -16
- data/lib/colours/toplevel_methods/italic.rb +0 -110
- data/lib/colours/toplevel_methods/make_colour.rb +0 -28
- data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +0 -336
- data/lib/colours/toplevel_methods/misc.rb +0 -226
- data/lib/colours/toplevel_methods/open_this_file.rb +0 -26
- data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +0 -88
- data/lib/colours/toplevel_methods/random_value.rb +0 -37
- data/lib/colours/toplevel_methods/remove_escape_sequence.rb +0 -112
- data/lib/colours/toplevel_methods/set_last_colour_used.rb +0 -32
- data/lib/colours/toplevel_methods/shell_file_containing_the_html_colours.sh +0 -148
- data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +0 -36
- data/lib/colours/toplevel_methods/underline.rb +0 -130
- data/test/testing_the_colour_methods.rb +0 -36
- /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
|
-
|
12
|
-
|
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/
|
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
|
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
|
-
#
|
57
|
+
# This method will autogenerated all HTML colours, onto the toplevel
|
58
|
+
# namespace called "Colours".
|
27
59
|
#
|
28
|
-
#
|
60
|
+
# Commandline invocation example:
|
29
61
|
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
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.
|
54
|
-
#
|
55
|
-
|
56
|
-
|
57
|
-
|
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
|
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(
|
237
|
-
|
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
|
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
|
-
#
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
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.
|
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
|
358
|
-
#
|
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
|
-
#
|
361
|
-
# method.
|
328
|
+
# Returns: a boolean.
|
362
329
|
#
|
363
|
-
#
|
330
|
+
# Invocation examples:
|
364
331
|
#
|
365
|
-
# Colours.
|
366
|
-
# Colours.
|
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.
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
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
|
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
|
-
#
|
389
|
-
#
|
390
|
-
|
391
|
-
|
392
|
-
#
|
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
|
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
|