colours 0.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.md +22 -0
  3. data/README.md +1152 -0
  4. data/bin/colours +7 -0
  5. data/bin/egreen +7 -0
  6. data/bin/fancy_parse +7 -0
  7. data/bin/html_colour_to_hex_value +7 -0
  8. data/bin/html_colourize +7 -0
  9. data/bin/orange +7 -0
  10. data/bin/print_rainbow_line +7 -0
  11. data/bin/rainbow_colours +7 -0
  12. data/bin/remove_ansii_escape_sequences +7 -0
  13. data/bin/steelblue +7 -0
  14. data/colours.gemspec +74 -0
  15. data/doc/COLOUR_CODES_CHART.md +27 -0
  16. data/doc/HOW_TO_PICK_YOUR_OWN_COLOURS.md +28 -0
  17. data/doc/README.gen +1105 -0
  18. data/doc/todo/todo.md +25 -0
  19. data/lib/colours/256_colours/support_for_256_colours.rb +196 -0
  20. data/lib/colours/autoalias_e.rb +10 -0
  21. data/lib/colours/autogenerated/README.md +2 -0
  22. data/lib/colours/autogenerated/support_for_256_colours.rb +2235 -0
  23. data/lib/colours/autogenerated/support_for_html_colours.rb +1778 -0
  24. data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +7001 -0
  25. data/lib/colours/autoinclude.rb +14 -0
  26. data/lib/colours/base/base.rb +29 -0
  27. data/lib/colours/basic_colours/README.md +4 -0
  28. data/lib/colours/basic_colours/basic_colours.rb +334 -0
  29. data/lib/colours/class/colours.rb +537 -0
  30. data/lib/colours/colour_methods/README.md +11 -0
  31. data/lib/colours/colour_methods/colour_methods.rb +685 -0
  32. data/lib/colours/colour_table/README.md +2 -0
  33. data/lib/colours/colour_table/colour_table.rb +282 -0
  34. data/lib/colours/colours_e_autoinclude.rb +9 -0
  35. data/lib/colours/commandline/README.md +2 -0
  36. data/lib/colours/commandline/commandline.rb +58 -0
  37. data/lib/colours/commandline/menu.rb +122 -0
  38. data/lib/colours/constants/constants.rb +9 -0
  39. data/lib/colours/constants/escape.rb +22 -0
  40. data/lib/colours/constants/file_constants.rb +73 -0
  41. data/lib/colours/constants/hash_ansi_colours.rb +39 -0
  42. data/lib/colours/constants/hash_simple_colours.rb +148 -0
  43. data/lib/colours/constants/misc.rb +361 -0
  44. data/lib/colours/constants/newline.rb +14 -0
  45. data/lib/colours/constants/registered_colour_methods.rb +53 -0
  46. data/lib/colours/e/README.md +13 -0
  47. data/lib/colours/e/autoinclude.rb +11 -0
  48. data/lib/colours/e/e.rb +35 -0
  49. data/lib/colours/e.rb +5 -0
  50. data/lib/colours/eparse/eparse.rb +114 -0
  51. data/lib/colours/everything/autoinclude.rb +11 -0
  52. data/lib/colours/html_colours/README.md +1 -0
  53. data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +22 -0
  54. data/lib/colours/html_colours/html_colours.rb +424 -0
  55. data/lib/colours/kde_colour_palette/kde_colour_palette.rb +132 -0
  56. data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +224 -0
  57. data/lib/colours/module.rb +11 -0
  58. data/lib/colours/project/project.rb +22 -0
  59. data/lib/colours/rainbow_colours/README.md +2 -0
  60. data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +26 -0
  61. data/lib/colours/rainbow_colours/constants.rb +30 -0
  62. data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +164 -0
  63. data/lib/colours/rainbow_colours/paint_detected_mode.rb +20 -0
  64. data/lib/colours/rainbow_colours/print_rainbow_line.rb +68 -0
  65. data/lib/colours/rainbow_colours/println_ani.rb +32 -0
  66. data/lib/colours/rainbow_colours/println_plain.rb +36 -0
  67. data/lib/colours/rainbow_colours/rainbow.rb +38 -0
  68. data/lib/colours/rainbow_colours/report_errors.rb +32 -0
  69. data/lib/colours/rainbow_colours/returnln_plain.rb +63 -0
  70. data/lib/colours/rainbow_colours/set_mode.rb +24 -0
  71. data/lib/colours/requires/require_autogenerated_colour_methods.rb +5 -0
  72. data/lib/colours/requires/require_commandline.rb +7 -0
  73. data/lib/colours/requires/require_eparse.rb +11 -0
  74. data/lib/colours/requires/require_rgb.rb +5 -0
  75. data/lib/colours/requires/require_the_256_colours_module.rb +16 -0
  76. data/lib/colours/requires/require_the_basic_colours.rb +7 -0
  77. data/lib/colours/requires/require_the_colour_methods.rb +34 -0
  78. data/lib/colours/requires/require_the_colour_table.rb +7 -0
  79. data/lib/colours/requires/require_the_constants.rb +5 -0
  80. data/lib/colours/requires/require_the_html_colours.rb +11 -0
  81. data/lib/colours/requires/require_the_kde_colour_palette.rb +7 -0
  82. data/lib/colours/requires/require_the_project.rb +53 -0
  83. data/lib/colours/requires/require_the_toplevel_methods.rb +42 -0
  84. data/lib/colours/requires/require_yaml.rb +9 -0
  85. data/lib/colours/rgb/rgb.rb +550 -0
  86. data/lib/colours/testing/README.md +2 -0
  87. data/lib/colours/testing/testing.rb +168 -0
  88. data/lib/colours/toplevel_methods/autogenerate.rb +310 -0
  89. data/lib/colours/toplevel_methods/bold.rb +41 -0
  90. data/lib/colours/toplevel_methods/bold_and_italic.rb +38 -0
  91. data/lib/colours/toplevel_methods/cat.rb +39 -0
  92. data/lib/colours/toplevel_methods/clear_screen.rb +18 -0
  93. data/lib/colours/toplevel_methods/cliner.rb +17 -0
  94. data/lib/colours/toplevel_methods/col.rb +54 -0
  95. data/lib/colours/toplevel_methods/e.rb +69 -0
  96. data/lib/colours/toplevel_methods/esystem.rb +19 -0
  97. data/lib/colours/toplevel_methods/html_colour_to_hex_value.rb +41 -0
  98. data/lib/colours/toplevel_methods/html_colourize.rb +69 -0
  99. data/lib/colours/toplevel_methods/is_on_roebe.rb +16 -0
  100. data/lib/colours/toplevel_methods/italic.rb +110 -0
  101. data/lib/colours/toplevel_methods/make_colour.rb +28 -0
  102. data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +336 -0
  103. data/lib/colours/toplevel_methods/misc.rb +226 -0
  104. data/lib/colours/toplevel_methods/open_this_file.rb +26 -0
  105. data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +88 -0
  106. data/lib/colours/toplevel_methods/random_value.rb +37 -0
  107. data/lib/colours/toplevel_methods/remove_escape_sequence.rb +112 -0
  108. data/lib/colours/toplevel_methods/revert.rb +104 -0
  109. data/lib/colours/toplevel_methods/set_last_colour_used.rb +32 -0
  110. data/lib/colours/toplevel_methods/shell_file_containing_the_html_colours.sh +148 -0
  111. data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +36 -0
  112. data/lib/colours/toplevel_methods/underline.rb +130 -0
  113. data/lib/colours/toplevel_methods/use_colours.rb +290 -0
  114. data/lib/colours/version/version.rb +25 -0
  115. data/lib/colours/yaml/256_colours.yml +279 -0
  116. data/lib/colours/yaml/basic_colours.yml +25 -0
  117. data/lib/colours/yaml/html_colours.yml +837 -0
  118. data/lib/colours/yaml/kde_colour_palette.yml +183 -0
  119. data/lib/colours/yaml/prefer_this_colour_schemata.yml +17 -0
  120. data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +15 -0
  121. data/lib/colours.rb +1 -0
  122. data/test/test.html +18 -0
  123. data/test/testing_256_colours_support.rb +29 -0
  124. data/test/testing_bold_italic_underline.rb +26 -0
  125. data/test/testing_class_colours.rb +46 -0
  126. data/test/testing_col.rb +10 -0
  127. data/test/testing_colours.rb +96 -0
  128. data/test/testing_colours_e.rb +13 -0
  129. data/test/testing_eparse.rb +13 -0
  130. data/test/testing_italic.rb +28 -0
  131. data/test/testing_kde_colour_palette.rb +30 -0
  132. data/test/testing_konsole_submodule.rb +226 -0
  133. data/test/testing_map_symbol_to_corresponding_colour.rb +14 -0
  134. data/test/testing_replace_number_words_with_the_corresponding_html_colour.rb +39 -0
  135. data/test/testing_rgb_to_hex.rb +32 -0
  136. data/test/testing_the_basic_colours_of_the_colours_project.rb +62 -0
  137. data/test/testing_the_colour_methods.rb +36 -0
  138. data/test/testing_the_constants_of_the_colours_project.rb +9 -0
  139. data/test/testing_the_ecomment_method.rb +11 -0
  140. data/test/testing_the_html_colours_of_the_colours_project.rb +37 -0
  141. data/test/testing_the_regex_for_capturing_the_commandline_coloured_content.rb +112 -0
  142. data/test/testing_whether_colours_will_be_used.rb +7 -0
  143. metadata +225 -0
data/doc/todo/todo.md ADDED
@@ -0,0 +1,25 @@
1
+ -------------------------------------------------------------------------------
2
+ (1) → integrate rainbow into the
3
+ Colours gem, at the least the core functionality from:
4
+ http://www.rubydoc.info/gems/rainbow/2.1.0
5
+
6
+ require 'rainbow'; x = Rainbow("hola!").blue.bright.underline; pp x; ''
7
+ "\e[34m\e[1m\e[4mhola!\e[0m"
8
+ # ^^^
9
+
10
+ e Rainbow("hola!").blue.bright.underline
11
+ e Colours("hola!").blue.bright.underline
12
+
13
+ Colours('hi').red
14
+ ^^^ as a first step enable this.
15
+ and then document it as well.
16
+
17
+ This works fairly well now, since as of November 2022.
18
+
19
+ We may have to still check whether we implement all of it
20
+ or not.
21
+ -------------------------------------------------------------------------------
22
+ (2) → in colours. fix the italic part. The problem is that the default
23
+ colour is not restored correctly so. We may need to simplify
24
+ this eventually.
25
+ -------------------------------------------------------------------------------
@@ -0,0 +1,196 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/256_colours/support_for_256_colours.rb'
6
+ # =========================================================================== #
7
+ module Colours
8
+
9
+ require 'yaml'
10
+ require 'colours/constants/misc.rb'
11
+ require 'colours/constants/newline.rb'
12
+ require 'colours/constants/file_constants.rb'
13
+ require 'colours/toplevel_methods/revert.rb'
14
+
15
+ # ========================================================================= #
16
+ # === @dataset_for_the_256_colours
17
+ #
18
+ # We will keep the keys in a downcased variant, as this will make it
19
+ # easier to use them as method-names.
20
+ # ========================================================================= #
21
+ if File.exist?(FILE_256_COLOURS) # Must safeguard.
22
+ @dataset_for_the_256_colours = YAML.load_file(FILE_256_COLOURS).
23
+ transform_keys(&:downcase)
24
+ else
25
+ @dataset_for_the_256_colours = nil
26
+ end
27
+
28
+ # ========================================================================= #
29
+ # === Colours.return_this_256_colour
30
+ #
31
+ # The first argument to this method should be a number from 0 to 255.
32
+ #
33
+ # For example, 255 is also known as "Grey93" - a variant of grey.
34
+ #
35
+ # It appears to work better if you use print() rather than puts() for
36
+ # whatever is returned here - perhaps due to the leading \u001b part.
37
+ #
38
+ # You can also input the colour variant, such as 'Grey93'.
39
+ #
40
+ # Invocation example:
41
+ #
42
+ # Colours.return_this_256_colour(255, "Hello world in grey!\n")
43
+ # print Colours.return_this_256_colour(255, (Roebe.block_character*5)+" Hello world in grey! "+(Roebe.block_character*5)+" \n")
44
+ # print Colours.return_this_256_colour('DarkTurquoise', (Roebe.block_character*5)+" Hello world in DarkTurquoise! "+(Roebe.block_character*5)+" \n")
45
+ #
46
+ # ========================================================================= #
47
+ def self.return_this_256_colour(
48
+ id = 9,
49
+ use_this_text = "Hello world!"
50
+ )
51
+ id = id.to_s.downcase
52
+ if (id !~ /^\d+/) and @dataset_for_the_256_colours and
53
+ @dataset_for_the_256_colours.has_key?(id)
54
+ id = @dataset_for_the_256_colours[id]
55
+ end
56
+ "\u001b[38;5;#{id}m#{use_this_text}#{REVERT}"
57
+ end
58
+
59
+ # ========================================================================= #
60
+ # === Colours.write_this_in_256_colours
61
+ #
62
+ # Similar to the other write method, but has the arguments reversed.
63
+ # ========================================================================= #
64
+ def self.write_this_in_256_colours(
65
+ this_text = "Hello world!\n",
66
+ id = rand(256),
67
+ &block
68
+ )
69
+ display_this_256_colour(id, this_text, &block)
70
+ end; self.instance_eval { alias write_in_256_colour write_this_in_256_colours } # === Colours.write_in_256_colour
71
+
72
+ # ========================================================================= #
73
+ # === write_in_256_colour
74
+ #
75
+ # Include-able method to the above module-level instance.
76
+ # ========================================================================= #
77
+ def write_in_256_colour(
78
+ i = 'hi there',
79
+ id = 33
80
+ )
81
+ write_this_in_256_colours(i, id)
82
+ end
83
+
84
+ # ========================================================================= #
85
+ # === Colours.display_this_256_colour
86
+ #
87
+ # The first argument should be a number from 0 to 255.
88
+ #
89
+ # You can also batch-output all colours, by using something like:
90
+ #
91
+ # Colours.display_this_256_colour('0-255',"Hello world, in a batch!\n")
92
+ #
93
+ # Generic usage example:
94
+ #
95
+ # Colours.display_this_256_colour(33, 'yo there') { :newline }
96
+ #
97
+ # ========================================================================= #
98
+ def self.display_this_256_colour(
99
+ id = 9,
100
+ use_this_text = "Hello world!\n",
101
+ &block
102
+ )
103
+ if block_given?
104
+ yielded = yield
105
+ case yielded
106
+ when :newline
107
+ use_this_text = use_this_text.dup if use_this_text.frozen?
108
+ use_this_text << "\n"
109
+ end
110
+ end
111
+ if id.is_a?(String) and id.include?('-')
112
+ # ===================================================================== #
113
+ # Assume pseudo-range input.
114
+ # ===================================================================== #
115
+ splitted = id.split('-')
116
+ range = (splitted.first.to_i .. splitted.last.to_i).to_a
117
+ range.each {|this_range_id|
118
+ display_this_256_colour(this_range_id, use_this_text, &block)
119
+ }
120
+ else
121
+ print return_this_256_colour(id, use_this_text)
122
+ end
123
+ end; self.instance_eval { alias display_this_in_256_colour display_this_256_colour } # === Colours.display_this_in_256_colour
124
+
125
+ # ========================================================================= #
126
+ # === Colours.show_all_256_colours
127
+ # ========================================================================= #
128
+ def self.show_all_256_colours
129
+ yielded = nil
130
+ if block_given?
131
+ yielded = yield
132
+ end
133
+ 0.upto(255).each {|this_number|
134
+ result = this_number.to_s.rjust(4)+' '+
135
+ return_this_256_colour(this_number).to_s.dup
136
+ if yielded and yielded == :newline
137
+ result << "\n"
138
+ end
139
+ print result
140
+ }
141
+ end
142
+
143
+ # ========================================================================= #
144
+ # === Colours.show_256_colour_cube
145
+ #
146
+ # This will show the 256-colours cube. Colours 16-231 are a
147
+ # 6x6x6 color cube.
148
+ # ========================================================================= #
149
+ def self.show_256_colour_cube
150
+ puts 'Color cube, 6x6x6 blocks:'
151
+ 0.upto(5) {|green|
152
+ 0.upto(5) {|red|
153
+ 0.upto(5) {|blue|
154
+ colour = 16 + (red * 36) + (green * 6) + blue
155
+ print "\x1b[48;5;#{colour}m "
156
+ }
157
+ print "\x1b[0m "
158
+ }
159
+ puts
160
+ }
161
+ end
162
+
163
+ # ========================================================================= #
164
+ # === Colours.is_this_a_256_colour?
165
+ #
166
+ # Invocation example:
167
+ #
168
+ # Colours.is_this_a_256_colour? 'LightSteelBlue3'
169
+ #
170
+ # ========================================================================= #
171
+ def self.is_this_a_256_colour?(i)
172
+ if @dataset_for_the_256_colours
173
+ @dataset_for_the_256_colours.keys.map(&:downcase).include?(i.to_s.downcase)
174
+ else
175
+ false
176
+ end
177
+ end
178
+
179
+ # ========================================================================= #
180
+ # === is_this_a_256_colour?
181
+ # ========================================================================= #
182
+ def is_this_a_256_colour?(i)
183
+ ::Colours.is_this_a_256_colour?(i)
184
+ end
185
+
186
+ end
187
+
188
+ if __FILE__ == $PROGRAM_NAME
189
+ alias e puts
190
+ Colours.show_256_colour_cube
191
+ # The next line can be found in: colours/test/testing_256_colours_support.rb
192
+ # Colours.test_256_colours_support
193
+ e
194
+ Colours.display_this_256_colour('0-255',"Hello world, in a batch!\n")
195
+ e
196
+ end # supportfor256colours
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This file is deliberately not included by default.
6
+ # =========================================================================== #
7
+ # Usage example:
8
+ # require 'colours/autoalias_e'
9
+ # =========================================================================== #
10
+ alias e puts
@@ -0,0 +1,2 @@
1
+ This directory will contain autogenerated code - that is, code that
2
+ has been autogenerated from the Colours gem itself.