ruby-nuggets 0.9.9 → 1.0.0

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 (244) hide show
  1. checksums.yaml +4 -4
  2. metadata +20 -324
  3. data/COPYING +0 -663
  4. data/ChangeLog +0 -7
  5. data/README +0 -62
  6. data/Rakefile +0 -47
  7. data/lib/nuggets.rb +0 -73
  8. data/lib/nuggets/all.rb +0 -36
  9. data/lib/nuggets/all_mixins.rb +0 -34
  10. data/lib/nuggets/ansicolor2css.rb +0 -125
  11. data/lib/nuggets/argv/option.rb +0 -3
  12. data/lib/nuggets/argv/option_mixin.rb +0 -85
  13. data/lib/nuggets/array/boost.rb +0 -5
  14. data/lib/nuggets/array/boost_mixin.rb +0 -78
  15. data/lib/nuggets/array/combination.rb +0 -63
  16. data/lib/nuggets/array/correlation.rb +0 -5
  17. data/lib/nuggets/array/correlation_mixin.rb +0 -64
  18. data/lib/nuggets/array/flatten_once.rb +0 -57
  19. data/lib/nuggets/array/flush.rb +0 -5
  20. data/lib/nuggets/array/flush_mixin.rb +0 -47
  21. data/lib/nuggets/array/format.rb +0 -66
  22. data/lib/nuggets/array/hashify.rb +0 -5
  23. data/lib/nuggets/array/hashify_mixin.rb +0 -48
  24. data/lib/nuggets/array/histogram.rb +0 -5
  25. data/lib/nuggets/array/histogram_mixin.rb +0 -170
  26. data/lib/nuggets/array/in_order.rb +0 -51
  27. data/lib/nuggets/array/limit.rb +0 -5
  28. data/lib/nuggets/array/limit_mixin.rb +0 -57
  29. data/lib/nuggets/array/mean.rb +0 -5
  30. data/lib/nuggets/array/mean_mixin.rb +0 -203
  31. data/lib/nuggets/array/median.rb +0 -5
  32. data/lib/nuggets/array/median_mixin.rb +0 -74
  33. data/lib/nuggets/array/mode.rb +0 -5
  34. data/lib/nuggets/array/mode_mixin.rb +0 -70
  35. data/lib/nuggets/array/monotone.rb +0 -84
  36. data/lib/nuggets/array/only.rb +0 -42
  37. data/lib/nuggets/array/rand.rb +0 -45
  38. data/lib/nuggets/array/regression.rb +0 -5
  39. data/lib/nuggets/array/regression_mixin.rb +0 -150
  40. data/lib/nuggets/array/runiq.rb +0 -5
  41. data/lib/nuggets/array/runiq_mixin.rb +0 -53
  42. data/lib/nuggets/array/shuffle.rb +0 -133
  43. data/lib/nuggets/array/standard_deviation.rb +0 -5
  44. data/lib/nuggets/array/standard_deviation_mixin.rb +0 -51
  45. data/lib/nuggets/array/to_hash.rb +0 -65
  46. data/lib/nuggets/array/variance.rb +0 -5
  47. data/lib/nuggets/array/variance_mixin.rb +0 -82
  48. data/lib/nuggets/cli.rb +0 -8
  49. data/lib/nuggets/content_type.rb +0 -98
  50. data/lib/nuggets/dotted_decimal.rb +0 -60
  51. data/lib/nuggets/enumerable/agrep.rb +0 -80
  52. data/lib/nuggets/enumerable/all_any_extended.rb +0 -67
  53. data/lib/nuggets/enumerable/minmax.rb +0 -103
  54. data/lib/nuggets/env/set.rb +0 -3
  55. data/lib/nuggets/env/set_mixin.rb +0 -68
  56. data/lib/nuggets/env/user_encoding.rb +0 -3
  57. data/lib/nuggets/env/user_encoding_mixin.rb +0 -55
  58. data/lib/nuggets/env/user_home.rb +0 -3
  59. data/lib/nuggets/env/user_home_mixin.rb +0 -57
  60. data/lib/nuggets/file/ext.rb +0 -5
  61. data/lib/nuggets/file/ext_mixin.rb +0 -88
  62. data/lib/nuggets/file/replace.rb +0 -5
  63. data/lib/nuggets/file/replace_mixin.rb +0 -56
  64. data/lib/nuggets/file/sub.rb +0 -5
  65. data/lib/nuggets/file/sub_mixin.rb +0 -96
  66. data/lib/nuggets/file/which.rb +0 -5
  67. data/lib/nuggets/file/which_mixin.rb +0 -73
  68. data/lib/nuggets/hash/at.rb +0 -69
  69. data/lib/nuggets/hash/deep_fetch.rb +0 -5
  70. data/lib/nuggets/hash/deep_fetch_mixin.rb +0 -75
  71. data/lib/nuggets/hash/deep_merge.rb +0 -5
  72. data/lib/nuggets/hash/deep_merge_mixin.rb +0 -54
  73. data/lib/nuggets/hash/idmap.rb +0 -5
  74. data/lib/nuggets/hash/idmap_mixin.rb +0 -42
  75. data/lib/nuggets/hash/in_order.rb +0 -44
  76. data/lib/nuggets/hash/insert.rb +0 -54
  77. data/lib/nuggets/hash/nest.rb +0 -5
  78. data/lib/nuggets/hash/nest_mixin.rb +0 -79
  79. data/lib/nuggets/hash/only.rb +0 -53
  80. data/lib/nuggets/hash/seen.rb +0 -5
  81. data/lib/nuggets/hash/seen_mixin.rb +0 -59
  82. data/lib/nuggets/hash/unroll.rb +0 -5
  83. data/lib/nuggets/hash/unroll_mixin.rb +0 -89
  84. data/lib/nuggets/hash/zip.rb +0 -5
  85. data/lib/nuggets/hash/zip_mixin.rb +0 -160
  86. data/lib/nuggets/i18n.rb +0 -156
  87. data/lib/nuggets/integer/factorial.rb +0 -57
  88. data/lib/nuggets/integer/length.rb +0 -5
  89. data/lib/nuggets/integer/length_mixin.rb +0 -50
  90. data/lib/nuggets/integer/map.rb +0 -5
  91. data/lib/nuggets/integer/map_mixin.rb +0 -43
  92. data/lib/nuggets/integer/to_binary_s.rb +0 -39
  93. data/lib/nuggets/io/agrep.rb +0 -44
  94. data/lib/nuggets/io/interact.rb +0 -5
  95. data/lib/nuggets/io/interact_mixin.rb +0 -160
  96. data/lib/nuggets/io/modes.rb +0 -122
  97. data/lib/nuggets/io/null.rb +0 -5
  98. data/lib/nuggets/io/null_mixin.rb +0 -41
  99. data/lib/nuggets/io/redirect.rb +0 -5
  100. data/lib/nuggets/io/redirect_mixin.rb +0 -51
  101. data/lib/nuggets/lazy_attr.rb +0 -45
  102. data/lib/nuggets/log_parser.rb +0 -71
  103. data/lib/nuggets/log_parser/apache.rb +0 -102
  104. data/lib/nuggets/log_parser/rails.rb +0 -220
  105. data/lib/nuggets/lsi.rb +0 -8
  106. data/lib/nuggets/midos.rb +0 -8
  107. data/lib/nuggets/mysql.rb +0 -8
  108. data/lib/nuggets/net/success.rb +0 -60
  109. data/lib/nuggets/numeric/between.rb +0 -2
  110. data/lib/nuggets/numeric/duration.rb +0 -101
  111. data/lib/nuggets/numeric/limit.rb +0 -63
  112. data/lib/nuggets/numeric/signum.rb +0 -53
  113. data/lib/nuggets/numeric/to_multiple.rb +0 -62
  114. data/lib/nuggets/object/blank.rb +0 -20
  115. data/lib/nuggets/object/blank_mixin.rb +0 -100
  116. data/lib/nuggets/object/boolean.rb +0 -5
  117. data/lib/nuggets/object/boolean_mixin.rb +0 -62
  118. data/lib/nuggets/object/eigenclass.rb +0 -2
  119. data/lib/nuggets/object/ghost_class.rb +0 -2
  120. data/lib/nuggets/object/metaclass.rb +0 -2
  121. data/lib/nuggets/object/msend.rb +0 -5
  122. data/lib/nuggets/object/msend_mixin.rb +0 -44
  123. data/lib/nuggets/object/silence.rb +0 -5
  124. data/lib/nuggets/object/silence_mixin.rb +0 -45
  125. data/lib/nuggets/object/singleton_class.rb +0 -5
  126. data/lib/nuggets/object/singleton_class_mixin.rb +0 -96
  127. data/lib/nuggets/object/uniclass.rb +0 -2
  128. data/lib/nuggets/object/virtual_class.rb +0 -2
  129. data/lib/nuggets/pluggable.rb +0 -92
  130. data/lib/nuggets/proc/bind.rb +0 -5
  131. data/lib/nuggets/proc/bind_mixin.rb +0 -52
  132. data/lib/nuggets/range/quantile.rb +0 -5
  133. data/lib/nuggets/range/quantile_mixin.rb +0 -43
  134. data/lib/nuggets/rdf/compression.rb +0 -6
  135. data/lib/nuggets/rdf/prefix.rb +0 -6
  136. data/lib/nuggets/rdf/turtle.rb +0 -8
  137. data/lib/nuggets/rdf/turtle/reader.rb +0 -6
  138. data/lib/nuggets/rdf/uri.rb +0 -6
  139. data/lib/nuggets/ruby.rb +0 -236
  140. data/lib/nuggets/statistics.rb +0 -12
  141. data/lib/nuggets/statistics_mixins.rb +0 -12
  142. data/lib/nuggets/string/camelscore.rb +0 -5
  143. data/lib/nuggets/string/camelscore_mixin.rb +0 -117
  144. data/lib/nuggets/string/capitalize_first.rb +0 -47
  145. data/lib/nuggets/string/case.rb +0 -82
  146. data/lib/nuggets/string/evaluate.rb +0 -5
  147. data/lib/nuggets/string/evaluate_mixin.rb +0 -48
  148. data/lib/nuggets/string/msub.rb +0 -85
  149. data/lib/nuggets/string/nsub.rb +0 -66
  150. data/lib/nuggets/string/sub_with_md.rb +0 -112
  151. data/lib/nuggets/string/wc.rb +0 -5
  152. data/lib/nuggets/string/wc_mixin.rb +0 -96
  153. data/lib/nuggets/string/word_wrap.rb +0 -77
  154. data/lib/nuggets/string/xor.rb +0 -5
  155. data/lib/nuggets/string/xor_mixin.rb +0 -60
  156. data/lib/nuggets/tempfile/open.rb +0 -58
  157. data/lib/nuggets/uri/content_type.rb +0 -5
  158. data/lib/nuggets/uri/content_type_mixin.rb +0 -48
  159. data/lib/nuggets/uri/exist.rb +0 -5
  160. data/lib/nuggets/uri/exist_mixin.rb +0 -57
  161. data/lib/nuggets/uri/redirect.rb +0 -5
  162. data/lib/nuggets/uri/redirect_mixin.rb +0 -102
  163. data/lib/nuggets/util/ansicolor2css.rb +0 -4
  164. data/lib/nuggets/util/cli.rb +0 -4
  165. data/lib/nuggets/util/content_type.rb +0 -4
  166. data/lib/nuggets/util/dotted_decimal.rb +0 -3
  167. data/lib/nuggets/util/i18n.rb +0 -4
  168. data/lib/nuggets/util/lazy_attr.rb +0 -4
  169. data/lib/nuggets/util/log_parser.rb +0 -4
  170. data/lib/nuggets/util/log_parser/apache.rb +0 -4
  171. data/lib/nuggets/util/log_parser/rails.rb +0 -4
  172. data/lib/nuggets/util/midos.rb +0 -4
  173. data/lib/nuggets/util/mysql.rb +0 -4
  174. data/lib/nuggets/util/pluggable.rb +0 -4
  175. data/lib/nuggets/util/ruby.rb +0 -4
  176. data/lib/nuggets/version.rb +0 -27
  177. data/spec/nuggets/array/boost_spec.rb +0 -50
  178. data/spec/nuggets/array/combination_spec.rb +0 -25
  179. data/spec/nuggets/array/correlation_spec.rb +0 -81
  180. data/spec/nuggets/array/flatten_once_spec.rb +0 -16
  181. data/spec/nuggets/array/flush_spec.rb +0 -43
  182. data/spec/nuggets/array/format_spec.rb +0 -52
  183. data/spec/nuggets/array/hashify_spec.rb +0 -41
  184. data/spec/nuggets/array/histogram_spec.rb +0 -87
  185. data/spec/nuggets/array/in_order_spec.rb +0 -13
  186. data/spec/nuggets/array/limit_spec.rb +0 -62
  187. data/spec/nuggets/array/mean_spec.rb +0 -203
  188. data/spec/nuggets/array/median_spec.rb +0 -77
  189. data/spec/nuggets/array/mode_spec.rb +0 -57
  190. data/spec/nuggets/array/monotone_spec.rb +0 -30
  191. data/spec/nuggets/array/only_spec.rb +0 -26
  192. data/spec/nuggets/array/regression_spec.rb +0 -54
  193. data/spec/nuggets/array/runiq_spec.rb +0 -25
  194. data/spec/nuggets/array/standard_deviation_spec.rb +0 -33
  195. data/spec/nuggets/array/to_hash_spec.rb +0 -28
  196. data/spec/nuggets/array/variance_spec.rb +0 -106
  197. data/spec/nuggets/dotted_decimal_spec.rb +0 -27
  198. data/spec/nuggets/enumerable/all_any_extended_spec.rb +0 -31
  199. data/spec/nuggets/enumerable/minmax_spec.rb +0 -21
  200. data/spec/nuggets/env/set_spec.rb +0 -29
  201. data/spec/nuggets/env/user_encoding_spec.rb +0 -38
  202. data/spec/nuggets/env/user_home_spec.rb +0 -42
  203. data/spec/nuggets/file/ext_spec.rb +0 -38
  204. data/spec/nuggets/file/replace_spec.rb +0 -95
  205. data/spec/nuggets/file/sub_spec.rb +0 -149
  206. data/spec/nuggets/file/which_spec.rb +0 -22
  207. data/spec/nuggets/hash/at_spec.rb +0 -19
  208. data/spec/nuggets/hash/deep_fetch_spec.rb +0 -159
  209. data/spec/nuggets/hash/deep_merge_spec.rb +0 -78
  210. data/spec/nuggets/hash/in_order_spec.rb +0 -12
  211. data/spec/nuggets/hash/insert_spec.rb +0 -13
  212. data/spec/nuggets/hash/nest_spec.rb +0 -102
  213. data/spec/nuggets/hash/only_spec.rb +0 -29
  214. data/spec/nuggets/hash/seen_spec.rb +0 -36
  215. data/spec/nuggets/hash/unroll_spec.rb +0 -68
  216. data/spec/nuggets/i18n_spec.rb +0 -13
  217. data/spec/nuggets/integer/factorial_spec.rb +0 -10
  218. data/spec/nuggets/integer/length_spec.rb +0 -18
  219. data/spec/nuggets/integer/map_spec.rb +0 -19
  220. data/spec/nuggets/integer/to_binary_s_spec.rb +0 -19
  221. data/spec/nuggets/numeric/duration_spec.rb +0 -25
  222. data/spec/nuggets/numeric/limit_spec.rb +0 -16
  223. data/spec/nuggets/numeric/signum_spec.rb +0 -16
  224. data/spec/nuggets/numeric/to_multiple_spec.rb +0 -16
  225. data/spec/nuggets/object/blank_spec.rb +0 -34
  226. data/spec/nuggets/object/boolean_spec.rb +0 -23
  227. data/spec/nuggets/object/msend_spec.rb +0 -25
  228. data/spec/nuggets/object/silence_spec.rb +0 -36
  229. data/spec/nuggets/object/singleton_class_spec.rb +0 -51
  230. data/spec/nuggets/proc/bind_spec.rb +0 -28
  231. data/spec/nuggets/range/quantile_spec.rb +0 -33
  232. data/spec/nuggets/string/camelscore_spec.rb +0 -114
  233. data/spec/nuggets/string/capitalize_first_spec.rb +0 -13
  234. data/spec/nuggets/string/case_spec.rb +0 -31
  235. data/spec/nuggets/string/evaluate_spec.rb +0 -24
  236. data/spec/nuggets/string/msub_spec.rb +0 -20
  237. data/spec/nuggets/string/nsub_spec.rb +0 -13
  238. data/spec/nuggets/string/sub_with_md_spec.rb +0 -25
  239. data/spec/nuggets/string/wc_spec.rb +0 -73
  240. data/spec/nuggets/string/word_wrap_spec.rb +0 -81
  241. data/spec/nuggets/string/xor_spec.rb +0 -57
  242. data/spec/nuggets/uri/content_type_spec.rb +0 -42
  243. data/spec/nuggets/uri/exist_spec.rb +0 -49
  244. data/spec/spec_helper.rb +0 -36
data/ChangeLog DELETED
@@ -1,7 +0,0 @@
1
- # markup: rd
2
-
3
- = Revision history for ruby-nuggets
4
-
5
- == x.y.z [yyyy-mm-dd]
6
-
7
- * ...
data/README DELETED
@@ -1,62 +0,0 @@
1
- = ruby-nuggets - Some extensions to the Ruby programming language
2
-
3
- == VERSION
4
-
5
- This documentation refers to ruby-nuggets version 0.9.9
6
-
7
-
8
- == DESCRIPTION
9
-
10
- ruby-nuggets provides a collection of extensions to Ruby core classes. In
11
- its effort, it's similar to projects like Facets[http://facets.rubyforge.org]
12
- and Extensions[http://extensions.rubyforge.org] (or even
13
- Labrador[http://rubyforge.org/projects/labrador/]), though not as ambitious ;-)
14
- This is simply where I put stuff that I need on a more or less regular basis
15
- or that struck me as interesting while surfing the web, reading books, or
16
- following discussions on ruby-talk.
17
-
18
- There are several ways to get at the nuggets you're interested in:
19
-
20
- # The usual way: Just require() what you need
21
- require 'nuggets/object/singleton_class'
22
-
23
- # The more fancy way ;-) (see the documentation of Nuggets() for more examples)
24
- require 'nuggets'
25
- Nuggets(:object => 'singleton_class', :string => %w[nsub sub_with_md])
26
-
27
- # Finally, get everything there is...
28
- require 'nuggets/all'
29
-
30
- Please be aware that some of the things herein might not work as expected or
31
- cause other libraries to misbehave. Use at your own risk!
32
-
33
-
34
- == LINKS
35
-
36
- Documentation:: https://blackwinter.github.io/ruby-nuggets/
37
- Source code:: https://github.com/blackwinter/ruby-nuggets
38
- RubyGem:: https://rubygems.org/gems/ruby-nuggets
39
- Travis CI:: https://travis-ci.org/blackwinter/ruby-nuggets
40
-
41
-
42
- == AUTHORS
43
-
44
- * Jens Wille <mailto:jens.wille@gmail.com>
45
-
46
-
47
- == LICENSE AND COPYRIGHT
48
-
49
- Copyright (C) 2007-2014 Jens Wille
50
-
51
- ruby-nuggets is free software: you can redistribute it and/or modify it under
52
- the terms of the GNU Affero General Public License as published by the Free
53
- Software Foundation, either version 3 of the License, or (at your option)
54
- any later version.
55
-
56
- ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT
57
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
58
- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
59
- details.
60
-
61
- You should have received a copy of the GNU Affero General Public License along
62
- with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>.
data/Rakefile DELETED
@@ -1,47 +0,0 @@
1
- require File.expand_path(%q{../lib/nuggets/version}, __FILE__)
2
-
3
- begin
4
- require 'hen'
5
-
6
- Hen.lay! {{
7
- :gem => {
8
- :name => %q{ruby-nuggets},
9
- :version => Nuggets::VERSION,
10
- :summary => %q{Some extensions to the Ruby programming language.},
11
- :author => %q{Jens Wille},
12
- :email => %q{jens.wille@gmail.com},
13
- :license => %q{AGPL-3.0},
14
- :homepage => :blackwinter,
15
- :dependencies => %w[],
16
-
17
- :development_dependencies => [
18
- #'amatch', # enumerable/agrep
19
- 'mime-types', # content_type
20
- 'open4', # ruby
21
- #'ruby-filemagic' # content_type
22
- ]
23
- }
24
- }}
25
- rescue LoadError => err
26
- warn "Please install the `hen' gem first. (#{err})"
27
- end
28
-
29
- desc "Run all specs in isolation"
30
- task 'spec:isolated' do
31
- ARGV.delete('spec:isolated')
32
- ARGV.unshift('spec')
33
-
34
- Dir['spec/*/**/*_spec.rb'].each { |spec|
35
- ENV['SPEC'] = spec
36
- system($0, *ARGV)
37
- }
38
- end
39
-
40
- if RUBY_PLATFORM == 'java'
41
- task :spec => :enable_objspace
42
-
43
- task :enable_objspace do
44
- k, v = 'JRUBY_OPTS', '-X+O'
45
- ENV[k] ? ENV[k] += " #{v}" : ENV[k] = v
46
- end
47
- end
@@ -1,73 +0,0 @@
1
- #--
2
- ###############################################################################
3
- # #
4
- # ruby-nuggets - some extensions to the Ruby programming language. #
5
- # #
6
- # Copyright (C) 2007-2011 Jens Wille #
7
- # #
8
- # Authors: #
9
- # Jens Wille <jens.wille@gmail.com> #
10
- # #
11
- # ruby-nuggets is free software; you can redistribute it and/or modify it #
12
- # under the terms of the GNU Affero General Public License as published by #
13
- # the Free Software Foundation; either version 3 of the License, or (at your #
14
- # option) any later version. #
15
- # #
16
- # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
17
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
18
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License #
19
- # for more details. #
20
- # #
21
- # You should have received a copy of the GNU Affero General Public License #
22
- # along with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
23
- # #
24
- ###############################################################################
25
- #++
26
-
27
- # Load selected +nuggets+.
28
- #
29
- # Examples:
30
- # # All String nuggets
31
- # Nuggets(:string)
32
- # Nuggets(String)
33
- #
34
- # # Only 'msub' and 'word_wrap' String nuggets
35
- # Nuggets(:string => %w[msub word_wrap])
36
- #
37
- # # Selected String nuggets and all Numeric nuggets
38
- # Nuggets(:numeric, :string => %w[msub word_wrap])
39
- #
40
- # # ...you see the pattern ;-)
41
- def Nuggets(*nuggets)
42
- loaded_nuggets = []
43
-
44
- load_nuggets = lambda { |base, *nuggets|
45
- nuggets_by_hierarchy = nuggets.last.is_a?(::Hash) ? nuggets.pop : {}
46
-
47
- nuggets.each { |nugget|
48
- begin
49
- require path = ::File.join(base.to_s, nugget.to_s.downcase)
50
- loaded_nuggets << path
51
- rescue ::LoadError
52
- # if it's a directory, load anything in it
53
- $LOAD_PATH.each { |dir|
54
- if ::File.directory?(dir_path = ::File.join(dir, path))
55
- load_nuggets[path, *::Dir[::File.join(dir_path, '*')].map { |file|
56
- ::File.basename(file, '.rb') unless file =~ /_mixin\.rb\z/
57
- }.compact]
58
- break
59
- end
60
- } and raise # otherwise, re-raise
61
- end
62
- }
63
-
64
- nuggets_by_hierarchy.each { |hierarchy, nuggets|
65
- nuggets = [nuggets] if nuggets.is_a?(::Hash)
66
- load_nuggets[::File.join(base.to_s, hierarchy.to_s.downcase), *nuggets]
67
- }
68
- }
69
-
70
- load_nuggets['nuggets', *nuggets]
71
-
72
- loaded_nuggets
73
- end
@@ -1,36 +0,0 @@
1
- #--
2
- ###############################################################################
3
- # #
4
- # A component of ruby-nuggets, some extensions to the Ruby programming #
5
- # language. #
6
- # #
7
- # Copyright (C) 2007-2011 Jens Wille #
8
- # #
9
- # Authors: #
10
- # Jens Wille <jens.wille@gmail.com> #
11
- # #
12
- # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
- # under the terms of the GNU Affero General Public License as published by #
14
- # the Free Software Foundation; either version 3 of the License, or (at your #
15
- # option) any later version. #
16
- # #
17
- # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License #
20
- # for more details. #
21
- # #
22
- # You should have received a copy of the GNU Affero General Public License #
23
- # along with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
- # #
25
- ###############################################################################
26
- #++
27
-
28
- base = ::File.dirname(__FILE__)
29
- base_re = ::Regexp.escape(base)
30
-
31
- ::Dir[::File.join(base, %w[* ** *.rb])].sort.each { |path|
32
- next if path.include?('/util/') || path.end_with?('_mixin.rb')
33
-
34
- ext_re = ::Regexp.escape(::File.extname(path))
35
- require path.sub(/#{base_re}(.*)#{ext_re}/, 'nuggets\1')
36
- }
@@ -1,34 +0,0 @@
1
- #--
2
- ###############################################################################
3
- # #
4
- # A component of ruby-nuggets, some extensions to the Ruby programming #
5
- # language. #
6
- # #
7
- # Copyright (C) 2007-2011 Jens Wille #
8
- # #
9
- # Authors: #
10
- # Jens Wille <jens.wille@gmail.com> #
11
- # #
12
- # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
- # under the terms of the GNU Affero General Public License as published by #
14
- # the Free Software Foundation; either version 3 of the License, or (at your #
15
- # option) any later version. #
16
- # #
17
- # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License #
20
- # for more details. #
21
- # #
22
- # You should have received a copy of the GNU Affero General Public License #
23
- # along with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
- # #
25
- ###############################################################################
26
- #++
27
-
28
- base = ::File.dirname(__FILE__)
29
- base_re = ::Regexp.escape(base)
30
-
31
- ::Dir[::File.join(base, %w[* ** *_mixin.rb])].sort.each { |path|
32
- ext_re = ::Regexp.escape(::File.extname(path))
33
- require path.sub(/#{base_re}(.*)#{ext_re}/, 'nuggets\1')
34
- }
@@ -1,125 +0,0 @@
1
- #--
2
- ###############################################################################
3
- # #
4
- # A component of ruby-nuggets, some extensions to the Ruby programming #
5
- # language. #
6
- # #
7
- # Copyright (C) 2007-2011 Jens Wille #
8
- # #
9
- # Authors: #
10
- # Jens Wille <jens.wille@gmail.com> #
11
- # #
12
- # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
- # under the terms of the GNU Affero General Public License as published by #
14
- # the Free Software Foundation; either version 3 of the License, or (at your #
15
- # option) any later version. #
16
- # #
17
- # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License #
20
- # for more details. #
21
- # #
22
- # You should have received a copy of the GNU Affero General Public License #
23
- # along with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
- # #
25
- ###############################################################################
26
- #++
27
-
28
- module Nuggets
29
- module ANSIColor2CSS
30
-
31
- extend self
32
-
33
- ATTRIBUTES = {
34
- '0' => nil, # clear
35
- '1' => 'font-weight: bold', # bold
36
- '2' => '', # dark
37
- '3' => 'font-style: italic', # italic -- not widely implemented
38
- '4' => 'text-decoration: underline', # underline
39
- '5' => 'text-decoration: blink', # blink
40
- '6' => 'text-decoration: blink', # rapid blink -- not widely implemented
41
- '7' => '', # reverse
42
- '8' => 'opacity: 0', # concealed
43
- '9' => 'text-decoration: line-through', # strikethrough -- not widely implemented
44
- '22' => 'font-weight: normal', # bold off
45
- '23' => 'font-style: normal', # italic off
46
- '24' => 'text-decoration: none', # underline off
47
- '25' => 'text-decoration: none', # blink off
48
- '27' => '', # reverse off
49
- '28' => 'opacity: 1', # concealed off
50
- '29' => 'text-decoration: none', # strikethrough off
51
- '30' => 'color: black', # black
52
- '31' => 'color: maroon', # red
53
- '32' => 'color: green', # green
54
- '33' => 'color: olive', # yellow
55
- '34' => 'color: navy', # blue
56
- '35' => 'color: purple', # magenta
57
- '36' => 'color: teal', # cyan
58
- '37' => 'color: silver', # white
59
- '39' => 'color: silver', # default (white)
60
- '40' => 'background-color: black', # on black
61
- '41' => 'background-color: maroon', # on red
62
- '42' => 'background-color: green', # on green
63
- '43' => 'background-color: olive', # on yellow
64
- '44' => 'background-color: navy', # on blue
65
- '45' => 'background-color: purple', # on magenta
66
- '46' => 'background-color: teal', # on cyan
67
- '47' => 'background-color: silver', # on white
68
- '49' => 'background-color: black', # on default (black)
69
- '90' => 'color: gray', # bright black
70
- '91' => 'color: red', # bright red
71
- '92' => 'color: lime', # bright green
72
- '93' => 'color: yellow', # bright yellow
73
- '94' => 'color: blue', # bright blue
74
- '95' => 'color: fuchsia', # bright magenta
75
- '96' => 'color: cyan', # bright cyan
76
- '97' => 'color: white', # bright white
77
- '100' => 'background-color: gray', # on bright black
78
- '101' => 'background-color: red', # on bright red
79
- '102' => 'background-color: lime', # on bright green
80
- '103' => 'background-color: yellow', # on bright yellow
81
- '104' => 'background-color: blue', # on bright blue
82
- '105' => 'background-color: fuchsia', # on bright magenta
83
- '106' => 'background-color: cyan', # on bright cyan
84
- '107' => 'background-color: white' # on bright white
85
- }
86
-
87
- ATTRIBUTES_RE = ::Regexp.union(*ATTRIBUTES.keys)
88
-
89
- DELIMITER = ';'
90
-
91
- COLOR_RE = %r{
92
- \e \[ ( #{ATTRIBUTES_RE} (?: #{DELIMITER} #{ATTRIBUTES_RE} )* ) m
93
- }x
94
-
95
- STYLE = '<span style="%s">'
96
- CLEAR = '</span>'
97
-
98
- def convert(string)
99
- string.gsub(COLOR_RE) { format($1.split(DELIMITER).uniq) }
100
- end
101
-
102
- def format(attributes)
103
- "#{clear(attributes)}#{style(attributes) if attributes.any?}"
104
- end
105
-
106
- def clear(attributes)
107
- CLEAR if attributes.delete('0')
108
- end
109
-
110
- def style(attributes)
111
- STYLE % ATTRIBUTES.values_at(*attributes).join('; ')
112
- end
113
-
114
- end
115
- end
116
-
117
- class String
118
-
119
- def ansicolor2css
120
- ::Nuggets::ANSIColor2CSS.convert(self)
121
- end
122
-
123
- alias_method :ansicolour2css, :ansicolor2css
124
-
125
- end
@@ -1,3 +0,0 @@
1
- require 'nuggets/argv/option_mixin'
2
-
3
- ARGV.extend(Nuggets::Argv::OptionMixin)
@@ -1,85 +0,0 @@
1
- #--
2
- ###############################################################################
3
- # #
4
- # A component of ruby-nuggets, some extensions to the Ruby programming #
5
- # language. #
6
- # #
7
- # Copyright (C) 2007-2013 Jens Wille #
8
- # #
9
- # Authors: #
10
- # Jens Wille <jens.wille@gmail.com> #
11
- # #
12
- # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
- # under the terms of the GNU Affero General Public License as published by #
14
- # the Free Software Foundation; either version 3 of the License, or (at your #
15
- # option) any later version. #
16
- # #
17
- # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License #
20
- # for more details. #
21
- # #
22
- # You should have received a copy of the GNU Affero General Public License #
23
- # along with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
- # #
25
- ###############################################################################
26
- #++
27
-
28
- module Nuggets
29
- module Argv
30
- module OptionMixin
31
-
32
- # call-seq:
33
- # ARGV.switch(short[, long]) -> true | false
34
- #
35
- # Whether ARGV includes the switch +short+ (or +long+).
36
- def switch(*args)
37
- !!(__key(*args) { |key| include?(key) })
38
- end
39
-
40
- # call-seq:
41
- # ARGV.option(short[, long]) -> aString
42
- # ARGV.option(short[, long]) { |value| ... } -> anObject
43
- #
44
- # Returns the value associated with the option +short+ (or +long+) if present
45
- # in ARGV. Yields that value to the block if given and returns its result.
46
- def option(*args, &block)
47
- __opt(block, *args) { |index| at(index + 1) }
48
- end
49
-
50
- # call-seq:
51
- # ARGV.switch!(short[, long]) -> true | false
52
- #
53
- # Whether ARGV includes the switch +short+ (or +long+). Removes the matching
54
- # switch from ARGV.
55
- def switch!(*args)
56
- !!(__key(*args) { |key| delete(key) })
57
- end
58
-
59
- # call-seq:
60
- # ARGV.option!(short[, long]) -> aString
61
- # ARGV.option!(short[, long]) { |value| ... } -> anObject
62
- #
63
- # Returns the value associated with the option +short+ (or +long+) if present
64
- # in ARGV and removes both from ARGV. Yields that value to the block if given
65
- # and returns its result.
66
- def option!(*args, &block)
67
- __opt(block, *args) { |index| delete_at(index); delete_at(index) }
68
- end
69
-
70
- private
71
-
72
- def __key(short, long = nil) # :yield: key
73
- long && yield("--#{long}") || yield("-#{short}")
74
- end
75
-
76
- def __opt(block, *args)
77
- index = __key(*args) { |key| index(key) } or return
78
-
79
- value = yield(index)
80
- block ? block[value] : value
81
- end
82
-
83
- end
84
- end
85
- end