colours 0.5.55

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 (144) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.md +22 -0
  3. data/README.md +890 -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 +862 -0
  14. data/lib/colours/256_colours/support_for_256_colours.rb +180 -0
  15. data/lib/colours/autoalias_e.rb +10 -0
  16. data/lib/colours/autogenerated/README.md +2 -0
  17. data/lib/colours/autogenerated/support_for_256_colours.rb +2235 -0
  18. data/lib/colours/autogenerated/support_for_html_colours.rb +1778 -0
  19. data/lib/colours/autogenerated/toplevel_basic_colour_methods.rb +6366 -0
  20. data/lib/colours/autoinclude.rb +14 -0
  21. data/lib/colours/base/base.rb +23 -0
  22. data/lib/colours/basic_colours/README.md +4 -0
  23. data/lib/colours/basic_colours/basic_colours.rb +279 -0
  24. data/lib/colours/colour_methods/README.md +11 -0
  25. data/lib/colours/colour_methods/default_colour.rb +66 -0
  26. data/lib/colours/colour_methods/sargument.rb +70 -0
  27. data/lib/colours/colour_methods/scomments.rb +105 -0
  28. data/lib/colours/colour_methods/sdir.rb +66 -0
  29. data/lib/colours/colour_methods/sfancy.rb +84 -0
  30. data/lib/colours/colour_methods/sfile.rb +71 -0
  31. data/lib/colours/colour_methods/simportant.rb +92 -0
  32. data/lib/colours/colour_methods/snormal.rb +66 -0
  33. data/lib/colours/colour_methods/ssymlink.rb +102 -0
  34. data/lib/colours/colour_methods/swarn.rb +76 -0
  35. data/lib/colours/colour_table/README.md +3 -0
  36. data/lib/colours/colour_table/colour_table.rb +275 -0
  37. data/lib/colours/colours_e_autoinclude.rb +9 -0
  38. data/lib/colours/commandline/README.md +2 -0
  39. data/lib/colours/commandline/commandline.rb +44 -0
  40. data/lib/colours/commandline/menu.rb +111 -0
  41. data/lib/colours/constants/colour_constants.rb +299 -0
  42. data/lib/colours/constants/file_constants.rb +72 -0
  43. data/lib/colours/constants/hash_simple_colours.rb +146 -0
  44. data/lib/colours/constants/misc.rb +59 -0
  45. data/lib/colours/constants/newline.rb +14 -0
  46. data/lib/colours/constants/registered_colour_methods.rb +53 -0
  47. data/lib/colours/e/README.md +13 -0
  48. data/lib/colours/e/autoinclude.rb +11 -0
  49. data/lib/colours/e/e.rb +35 -0
  50. data/lib/colours/e.rb +5 -0
  51. data/lib/colours/eparse/eparse.rb +77 -0
  52. data/lib/colours/everything/autoinclude.rb +11 -0
  53. data/lib/colours/html_colours/README.md +1 -0
  54. data/lib/colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb +22 -0
  55. data/lib/colours/html_colours/hash_html_colours.rb +63 -0
  56. data/lib/colours/html_colours/html_colourize.rb +48 -0
  57. data/lib/colours/html_colours/is_this_html_colour_included.rb +64 -0
  58. data/lib/colours/html_colours/misc.rb +186 -0
  59. data/lib/colours/html_colours/show_html_colours.rb +85 -0
  60. data/lib/colours/kde_colour_palette/kde_colour_palette.rb +128 -0
  61. data/lib/colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb +219 -0
  62. data/lib/colours/module.rb +11 -0
  63. data/lib/colours/project/project_base_directory.rb +22 -0
  64. data/lib/colours/rainbow_colours/README.md +2 -0
  65. data/lib/colours/rainbow_colours/check_for_trollop_being_available_or_exit.rb +26 -0
  66. data/lib/colours/rainbow_colours/constants.rb +30 -0
  67. data/lib/colours/rainbow_colours/do_parse_via_rainbow_colours.rb +164 -0
  68. data/lib/colours/rainbow_colours/paint_detected_mode.rb +20 -0
  69. data/lib/colours/rainbow_colours/print_rainbow_line.rb +68 -0
  70. data/lib/colours/rainbow_colours/println_ani.rb +32 -0
  71. data/lib/colours/rainbow_colours/println_plain.rb +36 -0
  72. data/lib/colours/rainbow_colours/rainbow.rb +38 -0
  73. data/lib/colours/rainbow_colours/report_errors.rb +32 -0
  74. data/lib/colours/rainbow_colours/returnln_plain.rb +63 -0
  75. data/lib/colours/rainbow_colours/set_mode.rb +24 -0
  76. data/lib/colours/requires/require_all_colour_methods.rb +5 -0
  77. data/lib/colours/requires/require_commandline.rb +7 -0
  78. data/lib/colours/requires/require_eparse.rb +11 -0
  79. data/lib/colours/requires/require_rgb.rb +5 -0
  80. data/lib/colours/requires/require_sdir.rb +5 -0
  81. data/lib/colours/requires/require_sfile.rb +5 -0
  82. data/lib/colours/requires/require_the_256_colours_module.rb +16 -0
  83. data/lib/colours/requires/require_the_basic_colours.rb +7 -0
  84. data/lib/colours/requires/require_the_colour_methods.rb +34 -0
  85. data/lib/colours/requires/require_the_colour_table.rb +7 -0
  86. data/lib/colours/requires/require_the_colours_project.rb +52 -0
  87. data/lib/colours/requires/require_the_constants.rb +11 -0
  88. data/lib/colours/requires/require_the_html_colours.rb +11 -0
  89. data/lib/colours/requires/require_the_kde_colour_palette.rb +7 -0
  90. data/lib/colours/requires/require_the_toplevel_methods.rb +42 -0
  91. data/lib/colours/revert/revert.rb +106 -0
  92. data/lib/colours/rgb/rgb.rb +547 -0
  93. data/lib/colours/testing/README.md +2 -0
  94. data/lib/colours/testing/testing.rb +157 -0
  95. data/lib/colours/toplevel_methods/bold.rb +35 -0
  96. data/lib/colours/toplevel_methods/bold_and_italic.rb +36 -0
  97. data/lib/colours/toplevel_methods/cat.rb +39 -0
  98. data/lib/colours/toplevel_methods/clear_screen.rb +18 -0
  99. data/lib/colours/toplevel_methods/cliner.rb +19 -0
  100. data/lib/colours/toplevel_methods/col.rb +56 -0
  101. data/lib/colours/toplevel_methods/e.rb +63 -0
  102. data/lib/colours/toplevel_methods/esystem.rb +19 -0
  103. data/lib/colours/toplevel_methods/fancy_parse.rb +79 -0
  104. data/lib/colours/toplevel_methods/html_colourize.rb +64 -0
  105. data/lib/colours/toplevel_methods/is_on_roebe.rb +16 -0
  106. data/lib/colours/toplevel_methods/italic.rb +104 -0
  107. data/lib/colours/toplevel_methods/make_colour.rb +29 -0
  108. data/lib/colours/toplevel_methods/methods_related_to_html_colours.rb +325 -0
  109. data/lib/colours/toplevel_methods/misc.rb +129 -0
  110. data/lib/colours/toplevel_methods/open_this_file.rb +26 -0
  111. data/lib/colours/toplevel_methods/prefer_this_colour_schemata.rb +80 -0
  112. data/lib/colours/toplevel_methods/random_html_colour.rb +44 -0
  113. data/lib/colours/toplevel_methods/random_value.rb +37 -0
  114. data/lib/colours/toplevel_methods/remove_escape_sequence.rb +112 -0
  115. data/lib/colours/toplevel_methods/set_last_colour_used.rb +32 -0
  116. data/lib/colours/toplevel_methods/show_basic_colour_palette.rb +36 -0
  117. data/lib/colours/toplevel_methods/underline.rb +114 -0
  118. data/lib/colours/toplevel_methods/use_colours.rb +290 -0
  119. data/lib/colours/utility_scripts/README.md +2 -0
  120. data/lib/colours/utility_scripts/autogenerate.rb +291 -0
  121. data/lib/colours/version/version.rb +25 -0
  122. data/lib/colours/yaml/256_colours.yml +277 -0
  123. data/lib/colours/yaml/basic_colours.yml +23 -0
  124. data/lib/colours/yaml/html_colours.yml +835 -0
  125. data/lib/colours/yaml/kde_colour_palette.yml +183 -0
  126. data/lib/colours/yaml/prefer_this_colour_schemata.yml +15 -0
  127. data/lib/colours/yaml/use_these_values_for_the_colour_methods.yml +13 -0
  128. data/lib/colours.rb +5 -0
  129. data/test/test.html +18 -0
  130. data/test/testing_256_colours_support.rb +29 -0
  131. data/test/testing_col.rb +10 -0
  132. data/test/testing_colours.rb +95 -0
  133. data/test/testing_colours_e.rb +13 -0
  134. data/test/testing_eparse.rb +13 -0
  135. data/test/testing_kde_colour_palette.rb +30 -0
  136. data/test/testing_konsole_submodule.rb +226 -0
  137. data/test/testing_map_symbol_to_corresponding_colour.rb +14 -0
  138. data/test/testing_rgb_to_hex.rb +32 -0
  139. data/test/testing_the_basic_colours_of_the_colours_project.rb +58 -0
  140. data/test/testing_the_colour_methods.rb +36 -0
  141. data/test/testing_the_constants_of_the_colours_project.rb +9 -0
  142. data/test/testing_the_html_colours_of_the_colours_project.rb +37 -0
  143. data/test/testing_whether_colours_will_be_used.rb +7 -0
  144. metadata +226 -0
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/rainbow_colours/print_rainbow_line.rb'
6
+ # =========================================================================== #
7
+ require 'colours/toplevel_methods/e.rb'
8
+ require 'colours/rainbow_colours/constants.rb'
9
+ require 'colours/rainbow_colours/println_plain.rb'
10
+
11
+ module Colours
12
+
13
+ module RainbowColours
14
+
15
+ # ========================================================================= #
16
+ # === Colours::RainbowColours.e
17
+ # ========================================================================= #
18
+ def self.e(i = '')
19
+ ::Colours.e(i)
20
+ end
21
+
22
+ # ========================================================================= #
23
+ # === Colours::RainbowColours.print_rainbow_line
24
+ #
25
+ # This line will do the colourizing part, on a per-line basis.
26
+ #
27
+ # The second and third arguments are Hashes.
28
+ #
29
+ # Simple invocation example:
30
+ #
31
+ # Colours::RainbowColours.print_rainbow_line("Hello world! \n" * 80)
32
+ #
33
+ # ========================================================================= #
34
+ def self.print_rainbow_line(
35
+ string = 'Hello world!',
36
+ defaults = {},
37
+ options_hash = {}
38
+ )
39
+ if string.is_a? Array
40
+ string = string.join(' ').strip
41
+ end
42
+ options_hash.merge!(defaults)
43
+ string = string.dup if string.frozen?
44
+ string.chomp! if string.include? N
45
+ # ======================================================================= #
46
+ # Next, get rid of ANSI colours, unless the string is nil.
47
+ # ======================================================================= #
48
+ if !string.nil? and ($stdout.tty? or options_hash[:force])
49
+ string.gsub!(STRIP_ANSI, '')
50
+ end
51
+ # ======================================================================= #
52
+ # Replace all tabs with 2 spaces.
53
+ # ======================================================================= #
54
+ string.gsub!("\t", ' ' * 2) if string.include? "\t"
55
+ if options_hash[:animate]
56
+ # ===================================================================== #
57
+ # Handle animated frames, as specified by the options-hash.
58
+ # ===================================================================== #
59
+ println_ani(string, options_hash)
60
+ else
61
+ RainbowColours.println_plain(string, options_hash)
62
+ end
63
+ e
64
+ end; self.instance_eval { alias print_line print_rainbow_line } # === Colours::RainbowColours.print_line
65
+ self.instance_eval { alias rainbow_line print_rainbow_line } # === Colours::RainbowColours.rainbow_line
66
+ self.instance_eval { alias say_in_rainbow_line print_rainbow_line } # === Colours::RainbowColours.say_in_rainbow_line
67
+
68
+ end; end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/rainbow_colours/println_plain.rb'
6
+
7
+ module Colours
8
+
9
+ module RainbowColours
10
+
11
+ # ========================================================================= #
12
+ # === Colours::RainbowColours.println_ani
13
+ #
14
+ # This method here will be called if the "animate option" was enabled,
15
+ # that is, set to true.
16
+ # ========================================================================= #
17
+ def self.println_ani(
18
+ str, opts = {}
19
+ )
20
+ return if str.empty? # Return early in this case.
21
+ (1..opts[:duration]).each { |irrelevant_variable|
22
+ print "\e[#{str.length}D"
23
+ opts[:os] += opts[:spread]
24
+ # ===================================================================== #
25
+ # Next, delegate to println_plain():
26
+ # ===================================================================== #
27
+ println_plain(str, opts)
28
+ sleep 1.0/opts[:speed]
29
+ }
30
+ end
31
+
32
+ end; end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/rainbow_colours/println_plain.rb'
6
+ # =========================================================================== #
7
+ require 'colours/rainbow_colours/returnln_plain.rb'
8
+
9
+ module Colours
10
+
11
+ module RainbowColours
12
+
13
+ # ========================================================================= #
14
+ # === Colours::RainbowColours.println_plain
15
+ #
16
+ # This method will colourize the given input line.
17
+ #
18
+ # Usage example:
19
+ #
20
+ # Colours::RainbowColours.println_plain
21
+ # Colours::RainbowColours.println_plain 'one two three four five six seven eight'
22
+ #
23
+ # ========================================================================= #
24
+ def self.println_plain(
25
+ str = "Hello world! Good morning sunshine.\n",
26
+ defaults = {},
27
+ opts = {
28
+ spread: DEFAULT_RAINBOW_SPREAD,
29
+ os: rand(256),
30
+ truecolor: true
31
+ }
32
+ )
33
+ print returnln_plain(str, defaults, opts)
34
+ end
35
+
36
+ end; end
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module Colours
6
+
7
+ module RainbowColours
8
+
9
+ # ========================================================================= #
10
+ # === Colours::RainbowColours.rainbow
11
+ #
12
+ # Do the colour calculations next, via the rainbow() method.
13
+ #
14
+ # The frequency is typically a value such as 0.1.
15
+ #
16
+ # We will calculate the RGB values here (R, G, B).
17
+ #
18
+ # Invocation example:
19
+ #
20
+ # Colours::RainbowColours.rainbow(:default, 3) # => "#A5D604"
21
+ # Colours::RainbowColours.rainbow(:default, 12) # => "#F66C1C"
22
+ #
23
+ # ========================================================================= #
24
+ def self.rainbow(
25
+ frequency = 0.1, i
26
+ )
27
+ case frequency
28
+ when nil,
29
+ :default
30
+ frequency = 0.1
31
+ end
32
+ red = Math.sin(frequency * i + 0) * 127 + 128
33
+ green = Math.sin(frequency * i + 2 * Math::PI/3) * 127 + 128
34
+ blue = Math.sin(frequency * i + 4 * Math::PI/3) * 127 + 128
35
+ '#%02X%02X%02X' % [ red, green, blue ]
36
+ end
37
+
38
+ end; end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/rainbow_colours/report_errors.rb'
6
+ # =========================================================================== #
7
+ module Colours
8
+
9
+ module RainbowColours
10
+
11
+ # ========================================================================= #
12
+ # === Colours::RainbowColours.report_no_such_file_or_directory
13
+ # ========================================================================= #
14
+ def self.report_no_such_file_or_directory(file)
15
+ e "Colours::RainbowColours: #{file}: No such file or directory"
16
+ end
17
+
18
+ # ========================================================================= #
19
+ # === Colours::RainbowColours.report_is_a_directory
20
+ # ========================================================================= #
21
+ def self.report_is_a_directory(file)
22
+ e "Colours::RainbowColours: #{file}: Is a directory"
23
+ end
24
+
25
+ # ========================================================================= #
26
+ # === Colours::RainbowColours.report_permission_denied
27
+ # ========================================================================= #
28
+ def self.report_permission_denied(file)
29
+ e "Colours::RainbowColours: #{file}: Permission denied"
30
+ end
31
+
32
+ end; end
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/rainbow_colours/returnln_plain.rb'
6
+ # =========================================================================== #
7
+ require 'colours/rainbow_colours/rainbow.rb'
8
+ require 'colours/rainbow_colours/set_mode.rb'
9
+
10
+ module Colours
11
+
12
+ module RainbowColours
13
+
14
+ # ========================================================================= #
15
+ # === Colours::RainbowColours.returnln_plain
16
+ #
17
+ # This will return a rainbow-coloured text.
18
+ #
19
+ # The first argument is the text that you wish to display.
20
+ #
21
+ # Invocation example:
22
+ #
23
+ # puts Colours::RainbowColours.returnln_plain('abc def ' * 1000)
24
+ #
25
+ # ========================================================================= #
26
+ def self.returnln_plain(
27
+ str = "Hello world! Good morning sunshine.\n",
28
+ defaults = {},
29
+ options_hash = {
30
+ spread: DEFAULT_RAINBOW_SPREAD,
31
+ os: rand(256),
32
+ truecolor: true
33
+ }
34
+ )
35
+ options_hash.merge!(defaults)
36
+ RainbowColours.set_mode(options_hash[:truecolor])
37
+ the_chars = str.chomp.chars # We obtain the individual characters here.
38
+ # ======================================================================= #
39
+ # Iterate over the chars. i, aka the second argument, is the index.
40
+ # ======================================================================= #
41
+ result = ''.dup
42
+ the_chars.each_with_index { |character, index|
43
+ # ===================================================================== #
44
+ # Delegate towards the toplevel-method rainbow().
45
+ # ===================================================================== #
46
+ division_result = (
47
+ options_hash[:os]+index / options_hash[:spread]
48
+ )
49
+ # ===================================================================== #
50
+ # Next, we will obtain some ASCII value such as '#A5D604':
51
+ # ===================================================================== #
52
+ code = RainbowColours.rainbow(options_hash[:freq], division_result)
53
+ # ===================================================================== #
54
+ # Delegate towards Paint[] next. The painted character will be
55
+ # displayed one-per-char.
56
+ # This will yield a String such as "\e[38;2;16;236;130mo\e[0m".
57
+ # ===================================================================== #
58
+ result << Paint[character, *[ (:black if options_hash[:invert]), code ].compact ]
59
+ }
60
+ return result
61
+ end
62
+
63
+ end; end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/rainbow_colours/set_mode.rb'
6
+ # =========================================================================== #
7
+ module Colours
8
+
9
+ module RainbowColours
10
+
11
+ # ========================================================================= #
12
+ # === Colours::RainbowColours.set_mode
13
+ # ========================================================================= #
14
+ def self.set_mode(truecolor)
15
+ begin
16
+ unless Object.const_defined? :Paint
17
+ require 'paint'
18
+ end
19
+ @paint_mode_detected ||= Paint.mode
20
+ Paint.mode = truecolor ? 0xffffff : @paint_mode_detected
21
+ rescue LoadError; end
22
+ end
23
+
24
+ end; end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/autogenerated/toplevel_basic_colour_methods.rb'
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/requires/require_commandline.rb'
6
+ # =========================================================================== #
7
+ require 'colours/commandline/commandline.rb'
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/requires/require_eparse.rb'
6
+ # =========================================================================== #
7
+
8
+ # =========================================================================== #
9
+ # Add the .eparse() functionality:
10
+ # =========================================================================== #
11
+ require 'colours/eparse/eparse.rb'
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/rgb/rgb.rb'
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/colour_methods/sdir.rb'
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/colour_methods/sfile.rb'
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # Note that this .rb file is normally NOT required the colours gem by
6
+ # default - it is only meant to be required manually.
7
+ # =========================================================================== #
8
+ # require 'colours/requires/require_the_256_colours_module.rb'
9
+ # =========================================================================== #
10
+
11
+ # =========================================================================== #
12
+ # Add support for the 256-colours:
13
+ # =========================================================================== #
14
+ require 'colours/256_colours/support_for_256_colours.rb'
15
+
16
+ require 'colours/autogenerated/support_for_256_colours.rb'
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/requires/require_the_basic_colours.rb'
6
+ # =========================================================================== #
7
+ require 'colours/basic_colours/basic_colours.rb'
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # The "colour-methods" are methods such as sdir(), swarn() and so forth.
6
+ #
7
+ # The file here specifies code that can be used to require these .rb
8
+ # files from the given colour_methods/ subdirectory of the colours
9
+ # project.
10
+ # =========================================================================== #
11
+ # require 'colours/requires/require_the_colour_methods.rb'
12
+ # =========================================================================== #
13
+ require 'colours/project/project_base_directory.rb'
14
+
15
+ module Colours
16
+
17
+ # ========================================================================= #
18
+ # === Colours.require_the_colour_methods
19
+ #
20
+ # This method will batch-require the .rb files that are found in the
21
+ # colour_methods/ subdirectory of the colours gem.
22
+ # ========================================================================= #
23
+ def self.require_the_colour_methods
24
+ target = "#{Colours::PROJECT_BASE_DIRECTORY}colour_methods/"
25
+
26
+ Dir["#{target}*.rb"].each {|this_file|
27
+ require target+File.basename(this_file)
28
+ }
29
+
30
+ end; self.instance_eval { alias default_string_methods require_the_colour_methods } # === Colours.default_string_methods
31
+
32
+ Colours.require_the_colour_methods # Also trigger the above method at once.
33
+
34
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/requires/require_the_colour_table.rb'
6
+ # =========================================================================== #
7
+ require 'colours/colour_table/colour_table.rb'
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/project/project_base_directory.rb'
6
+ require 'colours/requires/require_the_constants.rb'
7
+ require 'colours/requires/require_the_basic_colours.rb'
8
+ require 'colours/requires/require_the_toplevel_methods.rb'
9
+ # =========================================================================== #
10
+ # Next require the colour-methods:
11
+ # =========================================================================== #
12
+ require 'colours/requires/require_the_colour_methods.rb'
13
+ # =========================================================================== #
14
+ # Next require the html-colours components of the colours project:
15
+ # =========================================================================== #
16
+ require 'colours/requires/require_the_html_colours.rb'
17
+ require 'colours/requires/require_eparse.rb'
18
+ require 'colours/requires/require_commandline.rb'
19
+ require 'colours/requires/require_the_colour_table.rb'
20
+ require 'colours/requires/require_rgb.rb'
21
+ require 'colours/requires/require_the_256_colours_module.rb'
22
+ require 'colours/requires/require_the_kde_colour_palette.rb'
23
+ require 'colours/html_colours/add_html_colours_onto_the_toplevel_namespace.rb'
24
+ # =========================================================================== #
25
+ # Require the big "symbol-mapper" next:
26
+ # =========================================================================== #
27
+ require 'colours/map_symbol_to_corresponding_colour/map_symbol_to_corresponding_colour.rb'
28
+ # =========================================================================== #
29
+ # Load up the testing-relevant code:
30
+ # =========================================================================== #
31
+ require 'colours/testing/testing.rb'
32
+ # =========================================================================== #
33
+ # Next, add the submodule at "Colours::E":
34
+ # =========================================================================== #
35
+ require 'colours/e/e.rb'
36
+ require 'colours/autogenerated/support_for_html_colours.rb'
37
+ require 'colours/autogenerated/toplevel_basic_colour_methods.rb'
38
+ require 'colours/base/base.rb'
39
+ require 'colours/version/version.rb'
40
+ require 'colours/utility_scripts/autogenerate.rb'
41
+
42
+ module Colours
43
+
44
+ # ========================================================================= #
45
+ # We have to put the ColourMethods into the toplevel namespace at once,
46
+ # so that methods such as slateblue() are defined.
47
+ # ========================================================================= #
48
+ extend ::Colours::AllColourMethods
49
+
50
+ include ::Colours::AllColourMethods
51
+
52
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'colours/constants/colour_constants.rb'
6
+ require 'colours/constants/file_constants.rb'
7
+ require 'colours/constants/hash_simple_colours.rb'
8
+ require 'colours/constants/misc.rb'
9
+ require 'colours/constants/newline.rb'
10
+ require 'colours/constants/registered_colour_methods.rb'
11
+ require 'colours/revert/revert.rb'
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/requires/require_the_html_colours.rb'
6
+ # =========================================================================== #
7
+
8
+ # =========================================================================== #
9
+ # Require the html-colours components of the colours project:
10
+ # =========================================================================== #
11
+ require 'colours/html_colours/misc.rb'
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'colours/requires/require_the_kde_colour_palette.rb'
6
+ # =========================================================================== #
7
+ require 'colours/kde_colour_palette/kde_colour_palette.rb'
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This file will pull in all .rb files that reside in the
6
+ # colours/toplevel_methods/ subdirectory.
7
+ # =========================================================================== #
8
+ require 'colours/project/project_base_directory.rb'
9
+
10
+ require_these_files = Dir["#{Colours::PROJECT_BASE_DIRECTORY}toplevel_methods/*.rb"]
11
+
12
+ if require_these_files.empty?
13
+ # ===================================================================== #
14
+ # If we can not find any of the files then we will use a hardcoded
15
+ # approach, which follows next.
16
+ # ===================================================================== #
17
+ require_these_files = %w(
18
+ bold_and_italic.rb
19
+ bold.rb
20
+ cat.rb
21
+ clear_screen.rb
22
+ cliner.rb
23
+ col.rb
24
+ e.rb
25
+ html_colourize.rb
26
+ is_on_roebe.rb
27
+ italic.rb
28
+ make_colour.rb
29
+ misc.rb
30
+ prefer_this_colour_schemata.rb
31
+ random_html_colour.rb
32
+ random_value.rb
33
+ remove_escape_sequence.rb
34
+ show_basic_colour_palette.rb
35
+ underline.rb
36
+ use_colours.rb
37
+ )
38
+ end
39
+
40
+ require_these_files.each {|this_file|
41
+ require "colours/toplevel_methods/#{File.basename(this_file)}"
42
+ }
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal = true
4
+ # =========================================================================== #
5
+ # require 'colours/revert/revert.rb'
6
+ # =========================================================================== #
7
+ module Colours
8
+
9
+ # ========================================================================= #
10
+ # === Colours::ESC
11
+ #
12
+ # Escape sequences start with the character ESC (ASCII decimal 27/hex
13
+ # 0x1B/octal 033).
14
+ #
15
+ # The characters ESC and [ (left bracket) are called CSI, for "Control
16
+ # Sequence Initiator".
17
+ #
18
+ # Keep in mind that "\e" can be represented via "\u001b" in Ruby, too.
19
+ # ========================================================================= #
20
+ ESC = "\e["
21
+
22
+ # ========================================================================= #
23
+ # === Colours::COLOUR_NC
24
+ #
25
+ # Note that this will actually reset all attributes.
26
+ #
27
+ # The "\e[0m" sequence removes all attributes, including formatting
28
+ # and colours. It may be useful to add it to the end of each colour
29
+ # text - and this is what the Colours project is essentially doing.
30
+ #
31
+ # An alternative may be to assign REVERT to WHITE, but this seems
32
+ # to be incorrect according to the specification.
33
+ # ========================================================================= #
34
+ COLOUR_NC = "#{ESC}0m" # No Colour.
35
+ REVERT = COLOUR_NC # === REVERT
36
+ REV = COLOUR_NC # === REV
37
+ CLOSING_TAG = COLOUR_NC # === CLOSING_TAG (also represented as "#{ESC}0m")
38
+ RESET = COLOUR_NC # === RESET
39
+ RESET_TERMINAL = COLOUR_NC # === RESET_TERMINAL
40
+ CLEAR = COLOUR_NC # === CLEAR
41
+ COLOUR_RESET = COLOUR_NC # === COLOUR_RESET
42
+ DEFAULT_COLOUR = COLOUR_RESET # === DEFAULT_COLOUR
43
+
44
+ # ========================================================================= #
45
+ # === RESET_ALL_ATTRIBUTES
46
+ #
47
+ # This is essentially the same as COLOUR_NC / RESET.
48
+ # ========================================================================= #
49
+ RESET_ALL_ATTRIBUTES = "\x1b[0m"
50
+
51
+ # ========================================================================= #
52
+ # === @revert
53
+ # ========================================================================= #
54
+ @revert = "\e[0;37m"
55
+
56
+ # ========================================================================= #
57
+ # === Colours.set_revert
58
+ # ========================================================================= #
59
+ def self.set_revert(i = :default)
60
+ case i
61
+ when :default
62
+ i = REVERT
63
+ end
64
+ @revert = i
65
+ end
66
+
67
+ # ========================================================================= #
68
+ # === Colours.rev
69
+ #
70
+ # We use this method to revert to the old default, that is, the prior
71
+ # state for ANSI colours. It should be equivalent to: "\x1b[0m" e. g.
72
+ # REVERT = "\x1b[0m" # "\x1b[39;49m" <--- This here seems to fail for Konsole.underline, though.
73
+ #
74
+ # An alternative could be DEFAULT_COLOUR.
75
+ # ========================================================================= #
76
+ def self.rev
77
+ # REVERT # <- This used to be: "\e[0;37m"
78
+ @revert # This is light white. I prefer this colour actually.
79
+ end; self.instance_eval { alias revert rev } # === Colours.revert
80
+ self.instance_eval { alias revert? rev } # === Colours.revert?
81
+ self.instance_eval { alias restore? rev } # === Colours.restore?
82
+
83
+ # ========================================================================= #
84
+ # === rev
85
+ #
86
+ # Use this method to "revert" to the old default colour again, by
87
+ # delegating towards the Colours.rev() method defined above.
88
+ #
89
+ # From this point on, we use methods that can be toggled.
90
+ # ========================================================================= #
91
+ def rev(i = '')
92
+ ::Colours.rev # This will refer to the Colours.rev() module method.
93
+ end; alias revert rev # === revert
94
+ # alias default_colour rev
95
+
96
+ # ========================================================================= #
97
+ # === restore?
98
+ #
99
+ # This will restore to the default again.
100
+ # ========================================================================= #
101
+ def restore?
102
+ Colours.restore?
103
+ end; alias revert restore? # === revert
104
+ alias rev? restore? # === rev?
105
+
106
+ end