colours 0.6.12

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of colours might be problematic. Click here for more details.

Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.md +22 -0
  3. data/README.md +970 -0
  4. data/bin/colours +7 -0
  5. data/bin/html_colour_to_hex_value +7 -0
  6. data/bin/html_colourize +7 -0
  7. data/bin/print_rainbow_line +7 -0
  8. data/bin/rainbow_colours +7 -0
  9. data/bin/remove_ansii_escape_sequences +7 -0
  10. data/colours.gemspec +76 -0
  11. data/doc/COLOUR_CODES_CHART.md +28 -0
  12. data/doc/HOW_TO_PICK_YOUR_OWN_COLOURS.md +29 -0
  13. data/doc/README.gen +927 -0
  14. data/doc/todo/todo.md +25 -0
  15. data/lib/colours/256_colours/support_for_256_colours.rb +190 -0
  16. data/lib/colours/autoalias_e.rb +10 -0
  17. data/lib/colours/autogenerated/README.md +2 -0
  18. data/lib/colours/autogenerated/support_for_256_colours.rb +2235 -0
  19. data/lib/colours/autogenerated/support_for_html_colours.rb +1778 -0
  20. data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +6367 -0
  21. data/lib/colours/autoinclude.rb +14 -0
  22. data/lib/colours/base/base.rb +23 -0
  23. data/lib/colours/basic_colours/README.md +4 -0
  24. data/lib/colours/basic_colours/basic_colours.rb +334 -0
  25. data/lib/colours/class/class.rb +125 -0
  26. data/lib/colours/colour_methods/README.md +11 -0
  27. data/lib/colours/colour_methods/default_colour.rb +66 -0
  28. data/lib/colours/colour_methods/sargument.rb +70 -0
  29. data/lib/colours/colour_methods/scomments.rb +105 -0
  30. data/lib/colours/colour_methods/sdir.rb +66 -0
  31. data/lib/colours/colour_methods/sfancy.rb +84 -0
  32. data/lib/colours/colour_methods/sfile.rb +71 -0
  33. data/lib/colours/colour_methods/simportant.rb +92 -0
  34. data/lib/colours/colour_methods/snormal.rb +66 -0
  35. data/lib/colours/colour_methods/ssymlink.rb +102 -0
  36. data/lib/colours/colour_methods/swarn.rb +76 -0
  37. data/lib/colours/colour_table/README.md +3 -0
  38. data/lib/colours/colour_table/colour_table.rb +275 -0
  39. data/lib/colours/colours_e_autoinclude.rb +9 -0
  40. data/lib/colours/commandline/README.md +2 -0
  41. data/lib/colours/commandline/commandline.rb +44 -0
  42. data/lib/colours/commandline/menu.rb +111 -0
  43. data/lib/colours/constants/colour_constants.rb +301 -0
  44. data/lib/colours/constants/file_constants.rb +72 -0
  45. data/lib/colours/constants/hash_simple_colours.rb +146 -0
  46. data/lib/colours/constants/misc.rb +59 -0
  47. data/lib/colours/constants/newline.rb +14 -0
  48. data/lib/colours/constants/registered_colour_methods.rb +53 -0
  49. data/lib/colours/e/README.md +13 -0
  50. data/lib/colours/e/autoinclude.rb +11 -0
  51. data/lib/colours/e/e.rb +35 -0
  52. data/lib/colours/e.rb +5 -0
  53. data/lib/colours/eparse/eparse.rb +77 -0
  54. data/lib/colours/everything/autoinclude.rb +11 -0
  55. data/lib/colours/html_colours/README.md +1 -0
  56. data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +22 -0
  57. data/lib/colours/html_colours/hash_html_colours.rb +63 -0
  58. data/lib/colours/html_colours/html_colourize.rb +48 -0
  59. data/lib/colours/html_colours/is_this_html_colour_included.rb +64 -0
  60. data/lib/colours/html_colours/misc.rb +186 -0
  61. data/lib/colours/html_colours/show_html_colours.rb +85 -0
  62. data/lib/colours/kde_colour_palette/kde_colour_palette.rb +128 -0
  63. data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +219 -0
  64. data/lib/colours/module.rb +11 -0
  65. data/lib/colours/project/project_base_directory.rb +22 -0
  66. data/lib/colours/rainbow_colours/README.md +2 -0
  67. data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +26 -0
  68. data/lib/colours/rainbow_colours/constants.rb +30 -0
  69. data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +164 -0
  70. data/lib/colours/rainbow_colours/paint_detected_mode.rb +20 -0
  71. data/lib/colours/rainbow_colours/print_rainbow_line.rb +68 -0
  72. data/lib/colours/rainbow_colours/println_ani.rb +32 -0
  73. data/lib/colours/rainbow_colours/println_plain.rb +36 -0
  74. data/lib/colours/rainbow_colours/rainbow.rb +38 -0
  75. data/lib/colours/rainbow_colours/report_errors.rb +32 -0
  76. data/lib/colours/rainbow_colours/returnln_plain.rb +63 -0
  77. data/lib/colours/rainbow_colours/set_mode.rb +24 -0
  78. data/lib/colours/requires/require_all_colour_methods.rb +5 -0
  79. data/lib/colours/requires/require_commandline.rb +7 -0
  80. data/lib/colours/requires/require_eparse.rb +11 -0
  81. data/lib/colours/requires/require_rgb.rb +5 -0
  82. data/lib/colours/requires/require_sdir.rb +5 -0
  83. data/lib/colours/requires/require_sfile.rb +5 -0
  84. data/lib/colours/requires/require_the_256_colours_module.rb +16 -0
  85. data/lib/colours/requires/require_the_basic_colours.rb +7 -0
  86. data/lib/colours/requires/require_the_colour_methods.rb +34 -0
  87. data/lib/colours/requires/require_the_colour_table.rb +7 -0
  88. data/lib/colours/requires/require_the_colours_project.rb +52 -0
  89. data/lib/colours/requires/require_the_constants.rb +11 -0
  90. data/lib/colours/requires/require_the_html_colours.rb +11 -0
  91. data/lib/colours/requires/require_the_kde_colour_palette.rb +7 -0
  92. data/lib/colours/requires/require_the_toplevel_methods.rb +42 -0
  93. data/lib/colours/requires/require_yaml.rb +9 -0
  94. data/lib/colours/revert/revert.rb +106 -0
  95. data/lib/colours/rgb/rgb.rb +547 -0
  96. data/lib/colours/testing/README.md +2 -0
  97. data/lib/colours/testing/testing.rb +157 -0
  98. data/lib/colours/toplevel_methods/bold.rb +35 -0
  99. data/lib/colours/toplevel_methods/bold_and_italic.rb +36 -0
  100. data/lib/colours/toplevel_methods/cat.rb +39 -0
  101. data/lib/colours/toplevel_methods/clear_screen.rb +18 -0
  102. data/lib/colours/toplevel_methods/cliner.rb +19 -0
  103. data/lib/colours/toplevel_methods/col.rb +56 -0
  104. data/lib/colours/toplevel_methods/e.rb +63 -0
  105. data/lib/colours/toplevel_methods/esystem.rb +19 -0
  106. data/lib/colours/toplevel_methods/fancy_parse.rb +83 -0
  107. data/lib/colours/toplevel_methods/html_colourize.rb +64 -0
  108. data/lib/colours/toplevel_methods/is_on_roebe.rb +16 -0
  109. data/lib/colours/toplevel_methods/italic.rb +110 -0
  110. data/lib/colours/toplevel_methods/make_colour.rb +29 -0
  111. data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +350 -0
  112. data/lib/colours/toplevel_methods/misc.rb +156 -0
  113. data/lib/colours/toplevel_methods/open_this_file.rb +26 -0
  114. data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +85 -0
  115. data/lib/colours/toplevel_methods/random_html_colour.rb +48 -0
  116. data/lib/colours/toplevel_methods/random_value.rb +37 -0
  117. data/lib/colours/toplevel_methods/remove_escape_sequence.rb +112 -0
  118. data/lib/colours/toplevel_methods/set_last_colour_used.rb +32 -0
  119. data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +36 -0
  120. data/lib/colours/toplevel_methods/underline.rb +129 -0
  121. data/lib/colours/toplevel_methods/use_colours.rb +290 -0
  122. data/lib/colours/utility_scripts/README.md +2 -0
  123. data/lib/colours/utility_scripts/autogenerate.rb +291 -0
  124. data/lib/colours/version/version.rb +25 -0
  125. data/lib/colours/yaml/256_colours.yml +277 -0
  126. data/lib/colours/yaml/basic_colours.yml +23 -0
  127. data/lib/colours/yaml/html_colours.yml +835 -0
  128. data/lib/colours/yaml/kde_colour_palette.yml +183 -0
  129. data/lib/colours/yaml/prefer_this_colour_schemata.yml +15 -0
  130. data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +15 -0
  131. data/lib/colours.rb +5 -0
  132. data/test/test.html +18 -0
  133. data/test/testing_256_colours_support.rb +29 -0
  134. data/test/testing_col.rb +10 -0
  135. data/test/testing_colours.rb +95 -0
  136. data/test/testing_colours_e.rb +13 -0
  137. data/test/testing_eparse.rb +13 -0
  138. data/test/testing_kde_colour_palette.rb +30 -0
  139. data/test/testing_konsole_submodule.rb +226 -0
  140. data/test/testing_map_symbol_to_corresponding_colour.rb +14 -0
  141. data/test/testing_rgb_to_hex.rb +32 -0
  142. data/test/testing_the_basic_colours_of_the_colours_project.rb +58 -0
  143. data/test/testing_the_colour_methods.rb +36 -0
  144. data/test/testing_the_constants_of_the_colours_project.rb +9 -0
  145. data/test/testing_the_html_colours_of_the_colours_project.rb +37 -0
  146. data/test/testing_whether_colours_will_be_used.rb +7 -0
  147. metadata +229 -0
data/doc/todo/todo.md ADDED
@@ -0,0 +1,25 @@
1
+ -------------------------------------------------------------------------------
2
+ (1) → integrate rainbow into the
3
+
4
+ Colours gem, at the least the core functionality from:
5
+ http://www.rubydoc.info/gems/rainbow/2.1.0
6
+
7
+ require 'rainbow'; x = Rainbow("hola!").blue.bright.underline; pp x; ''
8
+ "\e[34m\e[1m\e[4mhola!\e[0m"
9
+ # ^^^
10
+
11
+ e Rainbow("hola!").blue.bright.underline
12
+ e Colours("hola!").blue.bright.underline
13
+
14
+
15
+ Colours('hi').red
16
+ ^^^ as a first step enable this.
17
+ and then document it as well.
18
+
19
+ puts Rainbow("this is red").red + " and " + Rainbow("this on yellow bg").bg(:yellow) + " and " + Rainbow("even bright underlined!").underline.bright
20
+ ^^^
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,190 @@
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/file_constants.rb'
11
+ require 'colours/constants/newline.rb'
12
+ require 'colours/revert/revert.rb'
13
+
14
+ # ========================================================================= #
15
+ # === @dataset_for_the_256_colours
16
+ #
17
+ # We will keep the keys in a downcased variant, as this will make it
18
+ # easier to use them as method-names.
19
+ # ========================================================================= #
20
+ if File.exist?(FILE_256_COLOURS) # Must safeguard.
21
+ @dataset_for_the_256_colours = YAML.load_file(FILE_256_COLOURS).
22
+ transform_keys(&:downcase)
23
+ else
24
+ @dataset_for_the_256_colours = nil
25
+ end
26
+
27
+ # ========================================================================= #
28
+ # === Colours.return_this_256_colour
29
+ #
30
+ # The first argument to this method should be a number from 0 to 255.
31
+ #
32
+ # For example, 255 is also known as "Grey93" - a variant of grey.
33
+ #
34
+ # It appears to work better if you use print() rather than puts() for
35
+ # whatever is returned here - perhaps due to the leading \u001b part.
36
+ #
37
+ # You can also input the colour variant, such as 'Grey93'.
38
+ #
39
+ # Invocation example:
40
+ #
41
+ # Colours.return_this_256_colour(255, "Hello world in grey!\n")
42
+ # print Colours.return_this_256_colour(255, (Roebe.block_character*5)+" Hello world in grey! "+(Roebe.block_character*5)+" \n")
43
+ # print Colours.return_this_256_colour('DarkTurquoise', (Roebe.block_character*5)+" Hello world in DarkTurquoise! "+(Roebe.block_character*5)+" \n")
44
+ #
45
+ # ========================================================================= #
46
+ def self.return_this_256_colour(
47
+ id = 9,
48
+ use_this_text = "Hello world!"
49
+ )
50
+ id = id.to_s.downcase
51
+ if (id !~ /^\d+/) and @dataset_for_the_256_colours and
52
+ @dataset_for_the_256_colours.has_key?(id)
53
+ id = @dataset_for_the_256_colours[id]
54
+ end
55
+ "\u001b[38;5;#{id}m#{use_this_text}#{REVERT}"
56
+ end
57
+
58
+ # ========================================================================= #
59
+ # === Colours.write_this_in_256_colours
60
+ #
61
+ # Similar to the other write method, but has the arguments reversed.
62
+ # ========================================================================= #
63
+ def self.write_this_in_256_colours(
64
+ this_text = "Hello world!\n",
65
+ id = rand(256),
66
+ &block
67
+ )
68
+ display_this_256_colour(id, this_text, &block)
69
+ end; self.instance_eval { alias write_in_256_colour write_this_in_256_colours } # === Colours.write_in_256_colour
70
+
71
+ # ========================================================================= #
72
+ # === write_in_256_colour
73
+ #
74
+ # Include-able method to the above module-level instance.
75
+ # ========================================================================= #
76
+ def write_in_256_colour(
77
+ i = 'hi there',
78
+ id = 33
79
+ )
80
+ write_this_in_256_colours(i, id)
81
+ end
82
+
83
+ # ========================================================================= #
84
+ # === Colours.display_this_256_colour
85
+ #
86
+ # The first argument should be a number from 0 to 255.
87
+ #
88
+ # You can also batch-output all colours, by using something like:
89
+ #
90
+ # Colours.display_this_256_colour('0-255',"Hello world, in a batch!\n")
91
+ #
92
+ # Generic usage example:
93
+ #
94
+ # Colours.display_this_256_colour(33, 'yo there') { :newline }
95
+ #
96
+ # ========================================================================= #
97
+ def self.display_this_256_colour(
98
+ id = 9,
99
+ use_this_text = "Hello world!\n",
100
+ &block
101
+ )
102
+ if block_given?
103
+ yielded = yield
104
+ case yielded
105
+ when :newline
106
+ use_this_text = use_this_text.dup if use_this_text.frozen?
107
+ use_this_text << "\n"
108
+ end
109
+ end
110
+ if id.is_a?(String) and id.include?('-')
111
+ # ===================================================================== #
112
+ # Assume pseudo-range input.
113
+ # ===================================================================== #
114
+ splitted = id.split('-')
115
+ range = (splitted.first.to_i .. splitted.last.to_i).to_a
116
+ range.each {|this_range_id|
117
+ display_this_256_colour(this_range_id, use_this_text, &block)
118
+ }
119
+ else
120
+ print return_this_256_colour(id, use_this_text)
121
+ end
122
+ end; self.instance_eval { alias display_this_in_256_colour display_this_256_colour } # === Colours.display_this_in_256_colour
123
+
124
+ # ========================================================================= #
125
+ # === Colours.show_all_256_colours
126
+ # ========================================================================= #
127
+ def self.show_all_256_colours
128
+ yielded = nil
129
+ if block_given?
130
+ yielded = yield
131
+ end
132
+ 0.upto(255).each {|this_number|
133
+ result = this_number.to_s.rjust(4)+' '+
134
+ return_this_256_colour(this_number).to_s.dup
135
+ if yielded and yielded == :newline
136
+ result << "\n"
137
+ end
138
+ print result
139
+ }
140
+ end
141
+
142
+ # ========================================================================= #
143
+ # === Colours.show_256_colour_cube
144
+ #
145
+ # This will show the 256-colours cube. Colours 16-231 are a
146
+ # 6x6x6 color cube.
147
+ # ========================================================================= #
148
+ def self.show_256_colour_cube
149
+ puts 'Color cube, 6x6x6 blocks:'
150
+ 0.upto(5) {|green|
151
+ 0.upto(5) {|red|
152
+ 0.upto(5) {|blue|
153
+ colour = 16 + (red * 36) + (green * 6) + blue
154
+ print "\x1b[48;5;#{colour}m "
155
+ }
156
+ print "\x1b[0m "
157
+ }
158
+ puts
159
+ }
160
+ end
161
+
162
+ # ========================================================================= #
163
+ # === Colours.is_this_a_256_colour?
164
+ #
165
+ # Invocation example:
166
+ #
167
+ # Colours.is_this_a_256_colour? 'LightSteelBlue3'
168
+ #
169
+ # ========================================================================= #
170
+ def self.is_this_a_256_colour?(i)
171
+ if @dataset_for_the_256_colours
172
+ @dataset_for_the_256_colours.keys.map(&:downcase).include?(i.to_s.downcase)
173
+ else
174
+ false
175
+ end
176
+ end
177
+
178
+ # ========================================================================= #
179
+ # === is_this_a_256_colour?
180
+ # ========================================================================= #
181
+ def is_this_a_256_colour?(i)
182
+ ::Colours.is_this_a_256_colour?(i)
183
+ end
184
+
185
+ end
186
+
187
+ if __FILE__ == $PROGRAM_NAME
188
+ Colours.show_256_colour_cube
189
+ Colours.test_256_colours_support
190
+ 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.