do_riak 0.10.1.pre

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 (177) hide show
  1. data/CHANGELOG +2 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +20 -0
  4. data/README.textile +23 -0
  5. data/TODO.txt +4 -0
  6. data/deps.rip +8 -0
  7. data/do_riak.gemspec +40 -0
  8. data/do_riak.pre.gemspec +8 -0
  9. data/gems/cache/bacon-1.1.0.gem +0 -0
  10. data/gems/cache/code-cleaner-0.8.1.gem +0 -0
  11. data/gems/cache/nake-0.0.8.gem +0 -0
  12. data/gems/cache/term-ansicolor-1.0.4.gem +0 -0
  13. data/gems/environment.rb +107 -0
  14. data/gems/gems/bacon-1.1.0/COPYING +18 -0
  15. data/gems/gems/bacon-1.1.0/ChangeLog +220 -0
  16. data/gems/gems/bacon-1.1.0/RDOX +69 -0
  17. data/gems/gems/bacon-1.1.0/README +290 -0
  18. data/gems/gems/bacon-1.1.0/Rakefile +138 -0
  19. data/gems/gems/bacon-1.1.0/bin/bacon +117 -0
  20. data/gems/gems/bacon-1.1.0/lib/autotest/bacon.rb +36 -0
  21. data/gems/gems/bacon-1.1.0/lib/autotest/bacon_rspec.rb +2 -0
  22. data/gems/gems/bacon-1.1.0/lib/autotest/discover.rb +9 -0
  23. data/gems/gems/bacon-1.1.0/lib/bacon.rb +354 -0
  24. data/gems/gems/bacon-1.1.0/test/spec_bacon.rb +374 -0
  25. data/gems/gems/bacon-1.1.0/test/spec_should.rb +32 -0
  26. data/gems/gems/code-cleaner-0.8.1/LICENSE +20 -0
  27. data/gems/gems/code-cleaner-0.8.1/README.textile +87 -0
  28. data/gems/gems/code-cleaner-0.8.1/TODO.txt +1 -0
  29. data/gems/gems/code-cleaner-0.8.1/bin/code-cleaner +143 -0
  30. data/gems/gems/code-cleaner-0.8.1/code-cleaner-0.8.gem +0 -0
  31. data/gems/gems/code-cleaner-0.8.1/code-cleaner.gemspec +25 -0
  32. data/gems/gems/code-cleaner-0.8.1/support/pre-commit.erb +70 -0
  33. data/gems/gems/code-cleaner-0.8.1/tasks.rb +13 -0
  34. data/gems/gems/code-cleaner-0.8.1/tasks/code-cleaner.nake +49 -0
  35. data/gems/gems/code-cleaner-0.8.1/tasks/code-cleaner.rake +22 -0
  36. data/gems/gems/code-cleaner-0.8.1/tasks/code-cleaner.thor +35 -0
  37. data/gems/gems/nake-0.0.8/CHANGELOG +48 -0
  38. data/gems/gems/nake-0.0.8/LICENSE +20 -0
  39. data/gems/gems/nake-0.0.8/README.textile +39 -0
  40. data/gems/gems/nake-0.0.8/TODO.txt +23 -0
  41. data/gems/gems/nake-0.0.8/bin/nake +66 -0
  42. data/gems/gems/nake-0.0.8/bin/nrake +4 -0
  43. data/gems/gems/nake-0.0.8/bin/rake2nake +1 -0
  44. data/gems/gems/nake-0.0.8/bin/snake +41 -0
  45. data/gems/gems/nake-0.0.8/bm/Rakefile +28 -0
  46. data/gems/gems/nake-0.0.8/bm/bms.rb +56 -0
  47. data/gems/gems/nake-0.0.8/bm/output.txt +5 -0
  48. data/gems/gems/nake-0.0.8/bm/tasks.rb +21 -0
  49. data/gems/gems/nake-0.0.8/bm/tmp/test.c +6 -0
  50. data/gems/gems/nake-0.0.8/bm/tmp/www/index.html +1 -0
  51. data/gems/gems/nake-0.0.8/deps.rb +5 -0
  52. data/gems/gems/nake-0.0.8/deps.rip +5 -0
  53. data/gems/gems/nake-0.0.8/examples/arguments.rb +38 -0
  54. data/gems/gems/nake-0.0.8/examples/basic.rb +5 -0
  55. data/gems/gems/nake-0.0.8/examples/boot.rb +18 -0
  56. data/gems/gems/nake-0.0.8/examples/complex.rb +9 -0
  57. data/gems/gems/nake-0.0.8/examples/configuration.rb +15 -0
  58. data/gems/gems/nake-0.0.8/examples/default.rb +10 -0
  59. data/gems/gems/nake-0.0.8/examples/default_proc.rb +11 -0
  60. data/gems/gems/nake-0.0.8/examples/dependencies.rb +10 -0
  61. data/gems/gems/nake-0.0.8/examples/description.rb +33 -0
  62. data/gems/gems/nake-0.0.8/examples/file.rb +22 -0
  63. data/gems/gems/nake-0.0.8/examples/helpers.rb +3 -0
  64. data/gems/gems/nake-0.0.8/examples/invoking.rb +14 -0
  65. data/gems/gems/nake-0.0.8/examples/rules.rb +0 -0
  66. data/gems/gems/nake-0.0.8/examples/script.rb +20 -0
  67. data/gems/gems/nake-0.0.8/examples/task_arguments.rb +27 -0
  68. data/gems/gems/nake-0.0.8/features/arguments.feature +22 -0
  69. data/gems/gems/nake-0.0.8/features/basic.feature +6 -0
  70. data/gems/gems/nake-0.0.8/features/boot.feature +5 -0
  71. data/gems/gems/nake-0.0.8/features/builtin_arguments.feature +14 -0
  72. data/gems/gems/nake-0.0.8/features/complex.feature +6 -0
  73. data/gems/gems/nake-0.0.8/features/configuration.feature +10 -0
  74. data/gems/gems/nake-0.0.8/features/default.feature +10 -0
  75. data/gems/gems/nake-0.0.8/features/default_proc.feature +6 -0
  76. data/gems/gems/nake-0.0.8/features/dependencies.feature +16 -0
  77. data/gems/gems/nake-0.0.8/features/description.feature +0 -0
  78. data/gems/gems/nake-0.0.8/features/env.rb +11 -0
  79. data/gems/gems/nake-0.0.8/features/executable.feature +29 -0
  80. data/gems/gems/nake-0.0.8/features/file.feature +23 -0
  81. data/gems/gems/nake-0.0.8/features/helpers.feature +6 -0
  82. data/gems/gems/nake-0.0.8/features/invoking.feature +14 -0
  83. data/gems/gems/nake-0.0.8/features/rules.feature +0 -0
  84. data/gems/gems/nake-0.0.8/features/script.feature +10 -0
  85. data/gems/gems/nake-0.0.8/features/steps.rb +39 -0
  86. data/gems/gems/nake-0.0.8/features/task_arguments.feature +10 -0
  87. data/gems/gems/nake-0.0.8/lib/nake.rb +103 -0
  88. data/gems/gems/nake-0.0.8/lib/nake/abstract_task.rb +175 -0
  89. data/gems/gems/nake-0.0.8/lib/nake/args.rb +65 -0
  90. data/gems/gems/nake-0.0.8/lib/nake/argv.rb +47 -0
  91. data/gems/gems/nake-0.0.8/lib/nake/colors.rb +22 -0
  92. data/gems/gems/nake-0.0.8/lib/nake/dsl.rb +70 -0
  93. data/gems/gems/nake-0.0.8/lib/nake/file_task.rb +62 -0
  94. data/gems/gems/nake-0.0.8/lib/nake/helpers.rb +65 -0
  95. data/gems/gems/nake-0.0.8/lib/nake/rake.rb +38 -0
  96. data/gems/gems/nake-0.0.8/lib/nake/rule.rb +35 -0
  97. data/gems/gems/nake-0.0.8/lib/nake/struct_hash.rb +22 -0
  98. data/gems/gems/nake-0.0.8/lib/nake/task.rb +6 -0
  99. data/gems/gems/nake-0.0.8/lib/nake/tasks/bundle.rb +30 -0
  100. data/gems/gems/nake-0.0.8/lib/nake/tasks/clean.rb +12 -0
  101. data/gems/gems/nake-0.0.8/lib/nake/tasks/gem.rb +29 -0
  102. data/gems/gems/nake-0.0.8/lib/nake/tasks/release.rb +43 -0
  103. data/gems/gems/nake-0.0.8/lib/nake/tasks/rip.rb +33 -0
  104. data/gems/gems/nake-0.0.8/lib/nake/tasks/spec.rb +20 -0
  105. data/gems/gems/nake-0.0.8/lib/nake/template.rb +51 -0
  106. data/gems/gems/nake-0.0.8/nake-0.0.8.pre.gem +0 -0
  107. data/gems/gems/nake-0.0.8/nake.gemspec +42 -0
  108. data/gems/gems/nake-0.0.8/nake.pre.gemspec +8 -0
  109. data/gems/gems/nake-0.0.8/spec/nake/abstract_task_spec.rb +0 -0
  110. data/gems/gems/nake-0.0.8/spec/nake/args_spec.rb +0 -0
  111. data/gems/gems/nake-0.0.8/spec/nake/argv_spec.rb +51 -0
  112. data/gems/gems/nake-0.0.8/spec/nake/colors_spec.rb +0 -0
  113. data/gems/gems/nake-0.0.8/spec/nake/dsl_spec.rb +35 -0
  114. data/gems/gems/nake-0.0.8/spec/nake/file_task_spec.rb +0 -0
  115. data/gems/gems/nake-0.0.8/spec/nake/helpers_spec.rb +14 -0
  116. data/gems/gems/nake-0.0.8/spec/nake/rake_spec.rb +0 -0
  117. data/gems/gems/nake-0.0.8/spec/nake/rule_spec.rb +72 -0
  118. data/gems/gems/nake-0.0.8/spec/nake/struct_hash_spec.rb +0 -0
  119. data/gems/gems/nake-0.0.8/spec/nake/task_spec.rb +72 -0
  120. data/gems/gems/nake-0.0.8/spec/nake/tasks/bundle_spec.rb +28 -0
  121. data/gems/gems/nake-0.0.8/spec/nake/tasks/clean_spec.rb +0 -0
  122. data/gems/gems/nake-0.0.8/spec/nake/tasks/gem_spec.rb +0 -0
  123. data/gems/gems/nake-0.0.8/spec/nake/tasks/release_spec.rb +0 -0
  124. data/gems/gems/nake-0.0.8/spec/nake/tasks/rip_spec.rb +0 -0
  125. data/gems/gems/nake-0.0.8/spec/nake/tasks/spec_spec.rb +0 -0
  126. data/gems/gems/nake-0.0.8/spec/nake/tasks_spec.rb +48 -0
  127. data/gems/gems/nake-0.0.8/spec/nake/template_spec.rb +84 -0
  128. data/gems/gems/nake-0.0.8/spec/nake_spec.rb +9 -0
  129. data/gems/gems/nake-0.0.8/spec/spec.opts +5 -0
  130. data/gems/gems/nake-0.0.8/spec/spec_helper.rb +29 -0
  131. data/gems/gems/nake-0.0.8/spec/stubs/database.yml.erb +9 -0
  132. data/gems/gems/nake-0.0.8/spec/stubs/database.yml.tt +9 -0
  133. data/gems/gems/nake-0.0.8/tasks.rb +42 -0
  134. data/gems/gems/term-ansicolor-1.0.4/CHANGES +22 -0
  135. data/gems/gems/term-ansicolor-1.0.4/COPYING +340 -0
  136. data/gems/gems/term-ansicolor-1.0.4/README +31 -0
  137. data/gems/gems/term-ansicolor-1.0.4/Rakefile +86 -0
  138. data/gems/gems/term-ansicolor-1.0.4/VERSION +1 -0
  139. data/gems/gems/term-ansicolor-1.0.4/doc-main.txt +119 -0
  140. data/gems/gems/term-ansicolor-1.0.4/examples/cdiff.rb +19 -0
  141. data/gems/gems/term-ansicolor-1.0.4/examples/example.rb +89 -0
  142. data/gems/gems/term-ansicolor-1.0.4/install.rb +15 -0
  143. data/gems/gems/term-ansicolor-1.0.4/lib/term/ansicolor.rb +102 -0
  144. data/gems/gems/term-ansicolor-1.0.4/lib/term/ansicolor/version.rb +10 -0
  145. data/gems/gems/term-ansicolor-1.0.4/term-ansicolor.gemspec +20 -0
  146. data/gems/specifications/bacon-1.1.0.gemspec +30 -0
  147. data/gems/specifications/code-cleaner-0.8.1.gemspec +31 -0
  148. data/gems/specifications/nake-0.0.8.gemspec +35 -0
  149. data/gems/specifications/term-ansicolor-1.0.4.gemspec +30 -0
  150. data/lib/do_riak.rb +10 -0
  151. data/lib/do_riak/errors.rb +11 -0
  152. data/lib/do_riak/transaction.rb +24 -0
  153. data/lib/do_riak/version.rb +7 -0
  154. data/script/bacon +3 -0
  155. data/script/code-cleaner +3 -0
  156. data/script/nake +3 -0
  157. data/spec/command_spec.rb +8 -0
  158. data/spec/connection_spec.rb +17 -0
  159. data/spec/reader_spec.rb +8 -0
  160. data/spec/result_spec.rb +12 -0
  161. data/spec/spec_helper.rb +19 -0
  162. data/spec/typecast/array_spec.rb +8 -0
  163. data/spec/typecast/bigdecimal_spec.rb +8 -0
  164. data/spec/typecast/boolean_spec.rb +8 -0
  165. data/spec/typecast/byte_array_spec.rb +8 -0
  166. data/spec/typecast/class_spec.rb +8 -0
  167. data/spec/typecast/date_spec.rb +8 -0
  168. data/spec/typecast/datetime_spec.rb +8 -0
  169. data/spec/typecast/float_spec.rb +12 -0
  170. data/spec/typecast/integer_spec.rb +8 -0
  171. data/spec/typecast/nil_spec.rb +16 -0
  172. data/spec/typecast/other_spec.rb +8 -0
  173. data/spec/typecast/range_spec.rb +8 -0
  174. data/spec/typecast/string_spec.rb +8 -0
  175. data/spec/typecast/time_spec.rb +8 -0
  176. data/tasks.rb +37 -0
  177. metadata +238 -0
@@ -0,0 +1,31 @@
1
+ Installation
2
+ ============
3
+
4
+ Just type into the command line as root:
5
+
6
+ # ruby install.rb
7
+
8
+ Or if you prefer using Rake, try:
9
+
10
+ # rake install
11
+
12
+ Or if you want to use rubygems just type this and rubygems fetches the gem and
13
+ installs it for you:
14
+
15
+ # gem install term-ansicolor
16
+
17
+ Documentation
18
+ =============
19
+
20
+ Look into examples/example.rb to get an idea how this library is used.
21
+
22
+ Author
23
+ ======
24
+
25
+ Florian Frank <flori@ping.de>
26
+
27
+ License
28
+ =======
29
+
30
+ GNU General Public License (GPL)
31
+
@@ -0,0 +1,86 @@
1
+ begin
2
+ require 'rake/gempackagetask'
3
+ rescue LoadError
4
+ end
5
+ require 'rake/clean'
6
+ require 'rbconfig'
7
+ include Config
8
+
9
+ PKG_NAME = 'term-ansicolor'
10
+ PKG_VERSION = File.read('VERSION').chomp
11
+ PKG_FILES = FileList['**/*'].exclude(/(CVS|\.svn|pkg|coverage|doc)/)
12
+ CLEAN.include 'coverage', 'doc'
13
+
14
+ desc "Installing library"
15
+ task :install do
16
+ ruby 'install.rb'
17
+ end
18
+
19
+ desc "Creating documentation"
20
+ task :doc do
21
+ ruby 'make_doc.rb'
22
+ end
23
+
24
+
25
+ if defined? Gem
26
+ spec_src =<<GEM
27
+ # -*- encoding: utf-8 -*-
28
+ Gem::Specification.new do |s|
29
+ s.name = '#{PKG_NAME}'
30
+ s.version = '#{PKG_VERSION}'
31
+ s.summary = "Ruby library that colors strings using ANSI escape sequences"
32
+ s.description = ""
33
+
34
+ s.files = #{PKG_FILES.to_a.sort.inspect}
35
+
36
+ s.require_path = 'lib'
37
+
38
+ s.has_rdoc = true
39
+ s.extra_rdoc_files << 'doc-main.txt'
40
+ s.rdoc_options << '--main' << 'doc-main.txt'
41
+
42
+ s.author = "Florian Frank"
43
+ s.email = "flori@ping.de"
44
+ s.homepage = "http://#{PKG_NAME}.rubyforge.org"
45
+ s.rubyforge_project = '#{PKG_NAME}'
46
+ end
47
+ GEM
48
+
49
+ desc 'Create a gemspec file'
50
+ task :gemspec do
51
+ File.open("#{PKG_NAME}.gemspec", 'w') do |f|
52
+ f.puts spec_src
53
+ end
54
+ end
55
+
56
+ spec = eval(spec_src)
57
+ Rake::GemPackageTask.new(spec) do |pkg|
58
+ pkg.need_tar = true
59
+ pkg.package_files += PKG_FILES
60
+ end
61
+ end
62
+
63
+ desc m = "Writing version information for #{PKG_VERSION}"
64
+ task :version do
65
+ puts m
66
+ File.open(File.join('lib', 'term', 'ansicolor', 'version.rb'), 'w') do |v|
67
+ v.puts <<EOT
68
+ module Term
69
+ module ANSIColor
70
+ # Term::ANSIColor version
71
+ VERSION = '#{PKG_VERSION}'
72
+ VERSION_ARRAY = VERSION.split(/\\./).map { |x| x.to_i } # :nodoc:
73
+ VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
74
+ VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
75
+ VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
76
+ end
77
+ end
78
+ EOT
79
+ end
80
+ end
81
+
82
+ desc "Default"
83
+ task :default => [ :version, :gemspec ]
84
+
85
+ desc "Prepare a release"
86
+ task :release => [ :clean, :version, :gemspec, :package ]
@@ -0,0 +1 @@
1
+ 1.0.4
@@ -0,0 +1,119 @@
1
+ == Term::ANSIColor - ANSI escape sequences in Ruby
2
+
3
+ === Description
4
+
5
+ This library can be used to color/uncolor strings using ANSI escape sequences.
6
+
7
+ === Author
8
+
9
+ Florian Frank mailto:flori@ping.de
10
+
11
+ === License
12
+
13
+ This is free software; you can redistribute it and/or modify it under the
14
+ terms of the GNU General Public License Version 2 as published by the Free
15
+ Software Foundation: www.gnu.org/copyleft/gpl.html
16
+
17
+ === Download
18
+
19
+ The latest version of this library can be downloaded at
20
+
21
+ * http://rubyforge.org/frs?group_id=391
22
+
23
+ The homepage of this library is located at
24
+
25
+ * http://term-ansicolor.rubyforge.org
26
+
27
+ === Examples
28
+
29
+ The file examples/example.rb in the source/gem-distribution shows how
30
+ this library can be used:
31
+ require 'term/ansicolor'
32
+
33
+ # Use this trick to work around namespace cluttering that
34
+ # happens if you just include Term::ANSIColor:
35
+
36
+ class Color
37
+ class << self
38
+ include Term::ANSIColor
39
+ end
40
+ end
41
+
42
+ print Color.red, Color.bold, "No Namespace cluttering:", Color.clear, "\n"
43
+ print Color.green + "green" + Color.clear, "\n"
44
+ print Color.on_red(Color.green("green")), "\n"
45
+ print Color.yellow { Color.on_black { "yellow on_black" } }, "\n\n"
46
+
47
+ # Or shortcut Term::ANSIColor by assignment:
48
+ c = Term::ANSIColor
49
+
50
+ print c.red, c.bold, "No Namespace cluttering (alternative):", c.clear, "\n"
51
+ print c.green + "green" + c.clear, "\n"
52
+ print c.on_red(c.green("green")), "\n"
53
+ print c.yellow { c.on_black { "yellow on_black" } }, "\n\n"
54
+
55
+ # Anyway, I don't define any of Term::ANSIColor's methods in this example
56
+ # and I want to keep it short:
57
+ include Term::ANSIColor
58
+
59
+ print red, bold, "Usage as constants:", reset, "\n"
60
+ print clear, "clear", reset, reset, "reset", reset,
61
+ bold, "bold", reset, dark, "dark", reset,
62
+ underscore, "underscore", reset, blink, "blink", reset,
63
+ negative, "negative", reset, concealed, "concealed", reset, "|\n",
64
+ black, "black", reset, red, "red", reset, green, "green", reset,
65
+ yellow, "yellow", reset, blue, "blue", reset, magenta, "magenta", reset,
66
+ cyan, "cyan", reset, white, "white", reset, "|\n",
67
+ on_black, "on_black", reset, on_red, "on_red", reset,
68
+ on_green, "on_green", reset, on_yellow, "on_yellow", reset,
69
+ on_blue, "on_blue", reset, on_magenta, "on_magenta", reset,
70
+ on_cyan, "on_cyan", reset, on_white, "on_white", reset, "|\n\n"
71
+
72
+ print red, bold, "Usage as unary argument methods:", reset, "\n"
73
+ print clear("clear"), reset("reset"), bold("bold"), dark("dark"),
74
+ underscore("underscore"), blink("blink"), negative("negative"),
75
+ concealed("concealed"), "|\n",
76
+ black("black"), red("red"), green("green"), yellow("yellow"),
77
+ blue("blue"), magenta("magenta"), cyan("cyan"), white("white"), "|\n",
78
+ on_black("on_black"), on_red("on_red"), on_green("on_green"),#
79
+ on_yellow("on_yellow"), on_blue("on_blue"), on_magenta("on_magenta"),
80
+ on_cyan("on_cyan"), on_white("on_white"), "|\n\n"
81
+
82
+ print red { bold { "Usage as block forms:" } }, "\n"
83
+ print clear { "clear" }, reset { "reset" }, bold { "bold" },
84
+ dark { "dark" }, underscore { "underscore" }, blink { "blink" },
85
+ negative { "negative" }, concealed { "concealed" }, "|\n",
86
+ black { "black" }, red { "red" }, green { "green" },
87
+ yellow { "yellow" }, blue { "blue" }, magenta { "magenta" },
88
+ cyan { "cyan" }, white { "white" }, "|\n",
89
+ on_black { "on_black" }, on_red { "on_red" }, on_green { "on_green" },
90
+ on_yellow { "on_yellow" }, on_blue { "on_blue" },
91
+ on_magenta { "on_magenta" }, on_cyan { "on_cyan" },
92
+ on_white { "on_white" }, "|\n\n"
93
+
94
+ # Usage as Mixin into String or its Subclasses
95
+ class String
96
+ include Term::ANSIColor
97
+ end
98
+
99
+ print "Usage as String Mixins:".red.bold, "\n"
100
+ print "clear".clear, "reset".reset, "bold".bold, "dark".dark,
101
+ "underscore".underscore, "blink".blink, "negative".negative,
102
+ "concealed".concealed, "|\n",
103
+ "black".black, "red".red, "green".green, "yellow".yellow,
104
+ "blue".blue, "magenta".magenta, "cyan".cyan, "white".white, "|\n",
105
+ "on_black".on_black, "on_red".on_red, "on_green".on_green,
106
+ "on_yellow".on_yellow, "on_blue".on_blue, "on_magenta".on_magenta,
107
+ "on_cyan".on_cyan, "on_white".on_white, "|\n\n"
108
+
109
+ symbols = Term::ANSIColor::attributes
110
+ print red { bold { "All supported attributes = " } },
111
+ blue { symbols.inspect }, "\n\n"
112
+
113
+ print "Send symbols to strings:".send(:red).send(:bold), "\n"
114
+ print symbols[12, 8].map { |c| c.to_s.send(c) }, "\n\n"
115
+
116
+ print red { bold { "Make strings monochromatic again:" } }, "\n"
117
+ print [ "red".red, "not red anymore".red.uncolored,
118
+ uncolored { "not red anymore".red }, uncolored("not red anymore".red)
119
+ ].map { |x| x + "\n" }
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ ## Little unix filter that colorizes diff output
4
+ #
5
+
6
+ require 'term/ansicolor'
7
+
8
+ include Term::ANSIColor
9
+
10
+ ARGF.each do |line|
11
+ print(
12
+ case line
13
+ when /^\+/ then green { line }
14
+ when /^-/ then red { line }
15
+ when /^(@@|diff)/ then blue { line }
16
+ else line
17
+ end
18
+ )
19
+ end
@@ -0,0 +1,89 @@
1
+ require 'term/ansicolor'
2
+
3
+ # Use this trick to work around namespace cluttering that
4
+ # happens if you just include Term::ANSIColor:
5
+
6
+ class Color
7
+ class << self
8
+ include Term::ANSIColor
9
+ end
10
+ end
11
+
12
+ print Color.red, Color.bold, "No Namespace cluttering:", Color.clear, "\n"
13
+ print Color.green + "green" + Color.clear, "\n"
14
+ print Color.on_red(Color.green("green")), "\n"
15
+ print Color.yellow { Color.on_black { "yellow on_black" } }, "\n\n"
16
+
17
+ # Or shortcut Term::ANSIColor by assignment:
18
+ c = Term::ANSIColor
19
+
20
+ print c.red, c.bold, "No Namespace cluttering (alternative):", c.clear, "\n"
21
+ print c.green + "green" + c.clear, "\n"
22
+ print c.on_red(c.green("green")), "\n"
23
+ print c.yellow { c.on_black { "yellow on_black" } }, "\n\n"
24
+
25
+ # Anyway, I don't define any of Term::ANSIColor's methods in this example
26
+ # and I want to keep it short:
27
+ include Term::ANSIColor
28
+
29
+ print red, bold, "Usage as constants:", reset, "\n"
30
+ print clear, "clear", reset, reset, "reset", reset,
31
+ bold, "bold", reset, dark, "dark", reset,
32
+ underscore, "underscore", reset, blink, "blink", reset,
33
+ negative, "negative", reset, concealed, "concealed", reset, "|\n",
34
+ black, "black", reset, red, "red", reset, green, "green", reset,
35
+ yellow, "yellow", reset, blue, "blue", reset, magenta, "magenta", reset,
36
+ cyan, "cyan", reset, white, "white", reset, "|\n",
37
+ on_black, "on_black", reset, on_red, "on_red", reset,
38
+ on_green, "on_green", reset, on_yellow, "on_yellow", reset,
39
+ on_blue, "on_blue", reset, on_magenta, "on_magenta", reset,
40
+ on_cyan, "on_cyan", reset, on_white, "on_white", reset, "|\n\n"
41
+
42
+ print red, bold, "Usage as unary argument methods:", reset, "\n"
43
+ print clear("clear"), reset("reset"), bold("bold"), dark("dark"),
44
+ underscore("underscore"), blink("blink"), negative("negative"),
45
+ concealed("concealed"), "|\n",
46
+ black("black"), red("red"), green("green"), yellow("yellow"),
47
+ blue("blue"), magenta("magenta"), cyan("cyan"), white("white"), "|\n",
48
+ on_black("on_black"), on_red("on_red"), on_green("on_green"),#
49
+ on_yellow("on_yellow"), on_blue("on_blue"), on_magenta("on_magenta"),
50
+ on_cyan("on_cyan"), on_white("on_white"), "|\n\n"
51
+
52
+ print red { bold { "Usage as block forms:" } }, "\n"
53
+ print clear { "clear" }, reset { "reset" }, bold { "bold" },
54
+ dark { "dark" }, underscore { "underscore" }, blink { "blink" },
55
+ negative { "negative" }, concealed { "concealed" }, "|\n",
56
+ black { "black" }, red { "red" }, green { "green" },
57
+ yellow { "yellow" }, blue { "blue" }, magenta { "magenta" },
58
+ cyan { "cyan" }, white { "white" }, "|\n",
59
+ on_black { "on_black" }, on_red { "on_red" }, on_green { "on_green" },
60
+ on_yellow { "on_yellow" }, on_blue { "on_blue" },
61
+ on_magenta { "on_magenta" }, on_cyan { "on_cyan" },
62
+ on_white { "on_white" }, "|\n\n"
63
+
64
+ # Usage as Mixin into String or its Subclasses
65
+ class String
66
+ include Term::ANSIColor
67
+ end
68
+
69
+ print "Usage as String Mixins:".red.bold, "\n"
70
+ print "clear".clear, "reset".reset, "bold".bold, "dark".dark,
71
+ "underscore".underscore, "blink".blink, "negative".negative,
72
+ "concealed".concealed, "|\n",
73
+ "black".black, "red".red, "green".green, "yellow".yellow,
74
+ "blue".blue, "magenta".magenta, "cyan".cyan, "white".white, "|\n",
75
+ "on_black".on_black, "on_red".on_red, "on_green".on_green,
76
+ "on_yellow".on_yellow, "on_blue".on_blue, "on_magenta".on_magenta,
77
+ "on_cyan".on_cyan, "on_white".on_white, "|\n\n"
78
+
79
+ symbols = Term::ANSIColor::attributes
80
+ print red { bold { "All supported attributes = " } },
81
+ blue { symbols.inspect }, "\n\n"
82
+
83
+ print "Send symbols to strings:".send(:red).send(:bold), "\n"
84
+ print symbols[12, 8].map { |c| c.to_s.send(c) }, "\n\n"
85
+
86
+ print red { bold { "Make strings monochromatic again:" } }, "\n"
87
+ print [ "red".red, "not red anymore".red.uncolored,
88
+ uncolored { "not red anymore".red }, uncolored("not red anymore".red)
89
+ ].map { |x| x + "\n" }
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rbconfig'
4
+ include Config
5
+ require 'fileutils'
6
+ include FileUtils::Verbose
7
+
8
+ destdir = "#{ENV['DESTDIR']}"
9
+ libdir = CONFIG["sitelibdir"]
10
+ dest = destdir + File.join(libdir, 'term')
11
+ mkdir_p dest
12
+ install 'lib/term/ansicolor.rb', dest
13
+ dest = destdir + File.join(libdir, 'term', 'ansicolor')
14
+ mkdir_p dest
15
+ install 'lib/term/ansicolor/version.rb', dest
@@ -0,0 +1,102 @@
1
+ require 'term/ansicolor/version'
2
+
3
+ module Term
4
+ # The ANSIColor module can be used for namespacing and mixed into your own
5
+ # classes.
6
+ module ANSIColor
7
+ # :stopdoc:
8
+ ATTRIBUTES = [
9
+ [ :clear , 0 ],
10
+ [ :reset , 0 ], # synonym for :clear
11
+ [ :bold , 1 ],
12
+ [ :dark , 2 ],
13
+ [ :italic , 3 ], # not widely implemented
14
+ [ :underline , 4 ],
15
+ [ :underscore , 4 ], # synonym for :underline
16
+ [ :blink , 5 ],
17
+ [ :rapid_blink , 6 ], # not widely implemented
18
+ [ :negative , 7 ], # no reverse because of String#reverse
19
+ [ :concealed , 8 ],
20
+ [ :strikethrough, 9 ], # not widely implemented
21
+ [ :black , 30 ],
22
+ [ :red , 31 ],
23
+ [ :green , 32 ],
24
+ [ :yellow , 33 ],
25
+ [ :blue , 34 ],
26
+ [ :magenta , 35 ],
27
+ [ :cyan , 36 ],
28
+ [ :white , 37 ],
29
+ [ :on_black , 40 ],
30
+ [ :on_red , 41 ],
31
+ [ :on_green , 42 ],
32
+ [ :on_yellow , 43 ],
33
+ [ :on_blue , 44 ],
34
+ [ :on_magenta , 45 ],
35
+ [ :on_cyan , 46 ],
36
+ [ :on_white , 47 ],
37
+ ]
38
+
39
+ ATTRIBUTE_NAMES = ATTRIBUTES.transpose.first
40
+ # :startdoc:
41
+
42
+ # Returns true, if the coloring function of this module
43
+ # is switched on, false otherwise.
44
+ def self.coloring?
45
+ @coloring
46
+ end
47
+
48
+ # Turns the coloring on or off globally, so you can easily do
49
+ # this for example:
50
+ # Term::ANSIColor::coloring = STDOUT.isatty
51
+ def self.coloring=(val)
52
+ @coloring = val
53
+ end
54
+ self.coloring = true
55
+
56
+ ATTRIBUTES.each do |c, v|
57
+ eval %Q{
58
+ def #{c}(string = nil)
59
+ result = ''
60
+ result << "\e[#{v}m" if Term::ANSIColor.coloring?
61
+ if block_given?
62
+ result << yield
63
+ elsif string
64
+ result << string
65
+ elsif respond_to?(:to_str)
66
+ result << self
67
+ else
68
+ return result #only switch on
69
+ end
70
+ result << "\e[0m" if Term::ANSIColor.coloring?
71
+ result
72
+ end
73
+ }
74
+ end
75
+
76
+ # Regular expression that is used to scan for ANSI-sequences while
77
+ # uncoloring strings.
78
+ COLORED_REGEXP = /\e\[([34][0-7]|[0-9])m/
79
+
80
+ # Returns an uncolored version of the string, that is all
81
+ # ANSI-sequences are stripped from the string.
82
+ def uncolored(string = nil) # :yields:
83
+ if block_given?
84
+ yield.gsub(COLORED_REGEXP, '')
85
+ elsif string
86
+ string.gsub(COLORED_REGEXP, '')
87
+ elsif respond_to?(:to_str)
88
+ gsub(COLORED_REGEXP, '')
89
+ else
90
+ ''
91
+ end
92
+ end
93
+
94
+ module_function
95
+
96
+ # Returns an array of all Term::ANSIColor attributes as symbols.
97
+ def attributes
98
+ ATTRIBUTE_NAMES
99
+ end
100
+ extend self
101
+ end
102
+ end