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.
- checksums.yaml +4 -4
- metadata +20 -324
- data/COPYING +0 -663
- data/ChangeLog +0 -7
- data/README +0 -62
- data/Rakefile +0 -47
- data/lib/nuggets.rb +0 -73
- data/lib/nuggets/all.rb +0 -36
- data/lib/nuggets/all_mixins.rb +0 -34
- data/lib/nuggets/ansicolor2css.rb +0 -125
- data/lib/nuggets/argv/option.rb +0 -3
- data/lib/nuggets/argv/option_mixin.rb +0 -85
- data/lib/nuggets/array/boost.rb +0 -5
- data/lib/nuggets/array/boost_mixin.rb +0 -78
- data/lib/nuggets/array/combination.rb +0 -63
- data/lib/nuggets/array/correlation.rb +0 -5
- data/lib/nuggets/array/correlation_mixin.rb +0 -64
- data/lib/nuggets/array/flatten_once.rb +0 -57
- data/lib/nuggets/array/flush.rb +0 -5
- data/lib/nuggets/array/flush_mixin.rb +0 -47
- data/lib/nuggets/array/format.rb +0 -66
- data/lib/nuggets/array/hashify.rb +0 -5
- data/lib/nuggets/array/hashify_mixin.rb +0 -48
- data/lib/nuggets/array/histogram.rb +0 -5
- data/lib/nuggets/array/histogram_mixin.rb +0 -170
- data/lib/nuggets/array/in_order.rb +0 -51
- data/lib/nuggets/array/limit.rb +0 -5
- data/lib/nuggets/array/limit_mixin.rb +0 -57
- data/lib/nuggets/array/mean.rb +0 -5
- data/lib/nuggets/array/mean_mixin.rb +0 -203
- data/lib/nuggets/array/median.rb +0 -5
- data/lib/nuggets/array/median_mixin.rb +0 -74
- data/lib/nuggets/array/mode.rb +0 -5
- data/lib/nuggets/array/mode_mixin.rb +0 -70
- data/lib/nuggets/array/monotone.rb +0 -84
- data/lib/nuggets/array/only.rb +0 -42
- data/lib/nuggets/array/rand.rb +0 -45
- data/lib/nuggets/array/regression.rb +0 -5
- data/lib/nuggets/array/regression_mixin.rb +0 -150
- data/lib/nuggets/array/runiq.rb +0 -5
- data/lib/nuggets/array/runiq_mixin.rb +0 -53
- data/lib/nuggets/array/shuffle.rb +0 -133
- data/lib/nuggets/array/standard_deviation.rb +0 -5
- data/lib/nuggets/array/standard_deviation_mixin.rb +0 -51
- data/lib/nuggets/array/to_hash.rb +0 -65
- data/lib/nuggets/array/variance.rb +0 -5
- data/lib/nuggets/array/variance_mixin.rb +0 -82
- data/lib/nuggets/cli.rb +0 -8
- data/lib/nuggets/content_type.rb +0 -98
- data/lib/nuggets/dotted_decimal.rb +0 -60
- data/lib/nuggets/enumerable/agrep.rb +0 -80
- data/lib/nuggets/enumerable/all_any_extended.rb +0 -67
- data/lib/nuggets/enumerable/minmax.rb +0 -103
- data/lib/nuggets/env/set.rb +0 -3
- data/lib/nuggets/env/set_mixin.rb +0 -68
- data/lib/nuggets/env/user_encoding.rb +0 -3
- data/lib/nuggets/env/user_encoding_mixin.rb +0 -55
- data/lib/nuggets/env/user_home.rb +0 -3
- data/lib/nuggets/env/user_home_mixin.rb +0 -57
- data/lib/nuggets/file/ext.rb +0 -5
- data/lib/nuggets/file/ext_mixin.rb +0 -88
- data/lib/nuggets/file/replace.rb +0 -5
- data/lib/nuggets/file/replace_mixin.rb +0 -56
- data/lib/nuggets/file/sub.rb +0 -5
- data/lib/nuggets/file/sub_mixin.rb +0 -96
- data/lib/nuggets/file/which.rb +0 -5
- data/lib/nuggets/file/which_mixin.rb +0 -73
- data/lib/nuggets/hash/at.rb +0 -69
- data/lib/nuggets/hash/deep_fetch.rb +0 -5
- data/lib/nuggets/hash/deep_fetch_mixin.rb +0 -75
- data/lib/nuggets/hash/deep_merge.rb +0 -5
- data/lib/nuggets/hash/deep_merge_mixin.rb +0 -54
- data/lib/nuggets/hash/idmap.rb +0 -5
- data/lib/nuggets/hash/idmap_mixin.rb +0 -42
- data/lib/nuggets/hash/in_order.rb +0 -44
- data/lib/nuggets/hash/insert.rb +0 -54
- data/lib/nuggets/hash/nest.rb +0 -5
- data/lib/nuggets/hash/nest_mixin.rb +0 -79
- data/lib/nuggets/hash/only.rb +0 -53
- data/lib/nuggets/hash/seen.rb +0 -5
- data/lib/nuggets/hash/seen_mixin.rb +0 -59
- data/lib/nuggets/hash/unroll.rb +0 -5
- data/lib/nuggets/hash/unroll_mixin.rb +0 -89
- data/lib/nuggets/hash/zip.rb +0 -5
- data/lib/nuggets/hash/zip_mixin.rb +0 -160
- data/lib/nuggets/i18n.rb +0 -156
- data/lib/nuggets/integer/factorial.rb +0 -57
- data/lib/nuggets/integer/length.rb +0 -5
- data/lib/nuggets/integer/length_mixin.rb +0 -50
- data/lib/nuggets/integer/map.rb +0 -5
- data/lib/nuggets/integer/map_mixin.rb +0 -43
- data/lib/nuggets/integer/to_binary_s.rb +0 -39
- data/lib/nuggets/io/agrep.rb +0 -44
- data/lib/nuggets/io/interact.rb +0 -5
- data/lib/nuggets/io/interact_mixin.rb +0 -160
- data/lib/nuggets/io/modes.rb +0 -122
- data/lib/nuggets/io/null.rb +0 -5
- data/lib/nuggets/io/null_mixin.rb +0 -41
- data/lib/nuggets/io/redirect.rb +0 -5
- data/lib/nuggets/io/redirect_mixin.rb +0 -51
- data/lib/nuggets/lazy_attr.rb +0 -45
- data/lib/nuggets/log_parser.rb +0 -71
- data/lib/nuggets/log_parser/apache.rb +0 -102
- data/lib/nuggets/log_parser/rails.rb +0 -220
- data/lib/nuggets/lsi.rb +0 -8
- data/lib/nuggets/midos.rb +0 -8
- data/lib/nuggets/mysql.rb +0 -8
- data/lib/nuggets/net/success.rb +0 -60
- data/lib/nuggets/numeric/between.rb +0 -2
- data/lib/nuggets/numeric/duration.rb +0 -101
- data/lib/nuggets/numeric/limit.rb +0 -63
- data/lib/nuggets/numeric/signum.rb +0 -53
- data/lib/nuggets/numeric/to_multiple.rb +0 -62
- data/lib/nuggets/object/blank.rb +0 -20
- data/lib/nuggets/object/blank_mixin.rb +0 -100
- data/lib/nuggets/object/boolean.rb +0 -5
- data/lib/nuggets/object/boolean_mixin.rb +0 -62
- data/lib/nuggets/object/eigenclass.rb +0 -2
- data/lib/nuggets/object/ghost_class.rb +0 -2
- data/lib/nuggets/object/metaclass.rb +0 -2
- data/lib/nuggets/object/msend.rb +0 -5
- data/lib/nuggets/object/msend_mixin.rb +0 -44
- data/lib/nuggets/object/silence.rb +0 -5
- data/lib/nuggets/object/silence_mixin.rb +0 -45
- data/lib/nuggets/object/singleton_class.rb +0 -5
- data/lib/nuggets/object/singleton_class_mixin.rb +0 -96
- data/lib/nuggets/object/uniclass.rb +0 -2
- data/lib/nuggets/object/virtual_class.rb +0 -2
- data/lib/nuggets/pluggable.rb +0 -92
- data/lib/nuggets/proc/bind.rb +0 -5
- data/lib/nuggets/proc/bind_mixin.rb +0 -52
- data/lib/nuggets/range/quantile.rb +0 -5
- data/lib/nuggets/range/quantile_mixin.rb +0 -43
- data/lib/nuggets/rdf/compression.rb +0 -6
- data/lib/nuggets/rdf/prefix.rb +0 -6
- data/lib/nuggets/rdf/turtle.rb +0 -8
- data/lib/nuggets/rdf/turtle/reader.rb +0 -6
- data/lib/nuggets/rdf/uri.rb +0 -6
- data/lib/nuggets/ruby.rb +0 -236
- data/lib/nuggets/statistics.rb +0 -12
- data/lib/nuggets/statistics_mixins.rb +0 -12
- data/lib/nuggets/string/camelscore.rb +0 -5
- data/lib/nuggets/string/camelscore_mixin.rb +0 -117
- data/lib/nuggets/string/capitalize_first.rb +0 -47
- data/lib/nuggets/string/case.rb +0 -82
- data/lib/nuggets/string/evaluate.rb +0 -5
- data/lib/nuggets/string/evaluate_mixin.rb +0 -48
- data/lib/nuggets/string/msub.rb +0 -85
- data/lib/nuggets/string/nsub.rb +0 -66
- data/lib/nuggets/string/sub_with_md.rb +0 -112
- data/lib/nuggets/string/wc.rb +0 -5
- data/lib/nuggets/string/wc_mixin.rb +0 -96
- data/lib/nuggets/string/word_wrap.rb +0 -77
- data/lib/nuggets/string/xor.rb +0 -5
- data/lib/nuggets/string/xor_mixin.rb +0 -60
- data/lib/nuggets/tempfile/open.rb +0 -58
- data/lib/nuggets/uri/content_type.rb +0 -5
- data/lib/nuggets/uri/content_type_mixin.rb +0 -48
- data/lib/nuggets/uri/exist.rb +0 -5
- data/lib/nuggets/uri/exist_mixin.rb +0 -57
- data/lib/nuggets/uri/redirect.rb +0 -5
- data/lib/nuggets/uri/redirect_mixin.rb +0 -102
- data/lib/nuggets/util/ansicolor2css.rb +0 -4
- data/lib/nuggets/util/cli.rb +0 -4
- data/lib/nuggets/util/content_type.rb +0 -4
- data/lib/nuggets/util/dotted_decimal.rb +0 -3
- data/lib/nuggets/util/i18n.rb +0 -4
- data/lib/nuggets/util/lazy_attr.rb +0 -4
- data/lib/nuggets/util/log_parser.rb +0 -4
- data/lib/nuggets/util/log_parser/apache.rb +0 -4
- data/lib/nuggets/util/log_parser/rails.rb +0 -4
- data/lib/nuggets/util/midos.rb +0 -4
- data/lib/nuggets/util/mysql.rb +0 -4
- data/lib/nuggets/util/pluggable.rb +0 -4
- data/lib/nuggets/util/ruby.rb +0 -4
- data/lib/nuggets/version.rb +0 -27
- data/spec/nuggets/array/boost_spec.rb +0 -50
- data/spec/nuggets/array/combination_spec.rb +0 -25
- data/spec/nuggets/array/correlation_spec.rb +0 -81
- data/spec/nuggets/array/flatten_once_spec.rb +0 -16
- data/spec/nuggets/array/flush_spec.rb +0 -43
- data/spec/nuggets/array/format_spec.rb +0 -52
- data/spec/nuggets/array/hashify_spec.rb +0 -41
- data/spec/nuggets/array/histogram_spec.rb +0 -87
- data/spec/nuggets/array/in_order_spec.rb +0 -13
- data/spec/nuggets/array/limit_spec.rb +0 -62
- data/spec/nuggets/array/mean_spec.rb +0 -203
- data/spec/nuggets/array/median_spec.rb +0 -77
- data/spec/nuggets/array/mode_spec.rb +0 -57
- data/spec/nuggets/array/monotone_spec.rb +0 -30
- data/spec/nuggets/array/only_spec.rb +0 -26
- data/spec/nuggets/array/regression_spec.rb +0 -54
- data/spec/nuggets/array/runiq_spec.rb +0 -25
- data/spec/nuggets/array/standard_deviation_spec.rb +0 -33
- data/spec/nuggets/array/to_hash_spec.rb +0 -28
- data/spec/nuggets/array/variance_spec.rb +0 -106
- data/spec/nuggets/dotted_decimal_spec.rb +0 -27
- data/spec/nuggets/enumerable/all_any_extended_spec.rb +0 -31
- data/spec/nuggets/enumerable/minmax_spec.rb +0 -21
- data/spec/nuggets/env/set_spec.rb +0 -29
- data/spec/nuggets/env/user_encoding_spec.rb +0 -38
- data/spec/nuggets/env/user_home_spec.rb +0 -42
- data/spec/nuggets/file/ext_spec.rb +0 -38
- data/spec/nuggets/file/replace_spec.rb +0 -95
- data/spec/nuggets/file/sub_spec.rb +0 -149
- data/spec/nuggets/file/which_spec.rb +0 -22
- data/spec/nuggets/hash/at_spec.rb +0 -19
- data/spec/nuggets/hash/deep_fetch_spec.rb +0 -159
- data/spec/nuggets/hash/deep_merge_spec.rb +0 -78
- data/spec/nuggets/hash/in_order_spec.rb +0 -12
- data/spec/nuggets/hash/insert_spec.rb +0 -13
- data/spec/nuggets/hash/nest_spec.rb +0 -102
- data/spec/nuggets/hash/only_spec.rb +0 -29
- data/spec/nuggets/hash/seen_spec.rb +0 -36
- data/spec/nuggets/hash/unroll_spec.rb +0 -68
- data/spec/nuggets/i18n_spec.rb +0 -13
- data/spec/nuggets/integer/factorial_spec.rb +0 -10
- data/spec/nuggets/integer/length_spec.rb +0 -18
- data/spec/nuggets/integer/map_spec.rb +0 -19
- data/spec/nuggets/integer/to_binary_s_spec.rb +0 -19
- data/spec/nuggets/numeric/duration_spec.rb +0 -25
- data/spec/nuggets/numeric/limit_spec.rb +0 -16
- data/spec/nuggets/numeric/signum_spec.rb +0 -16
- data/spec/nuggets/numeric/to_multiple_spec.rb +0 -16
- data/spec/nuggets/object/blank_spec.rb +0 -34
- data/spec/nuggets/object/boolean_spec.rb +0 -23
- data/spec/nuggets/object/msend_spec.rb +0 -25
- data/spec/nuggets/object/silence_spec.rb +0 -36
- data/spec/nuggets/object/singleton_class_spec.rb +0 -51
- data/spec/nuggets/proc/bind_spec.rb +0 -28
- data/spec/nuggets/range/quantile_spec.rb +0 -33
- data/spec/nuggets/string/camelscore_spec.rb +0 -114
- data/spec/nuggets/string/capitalize_first_spec.rb +0 -13
- data/spec/nuggets/string/case_spec.rb +0 -31
- data/spec/nuggets/string/evaluate_spec.rb +0 -24
- data/spec/nuggets/string/msub_spec.rb +0 -20
- data/spec/nuggets/string/nsub_spec.rb +0 -13
- data/spec/nuggets/string/sub_with_md_spec.rb +0 -25
- data/spec/nuggets/string/wc_spec.rb +0 -73
- data/spec/nuggets/string/word_wrap_spec.rb +0 -81
- data/spec/nuggets/string/xor_spec.rb +0 -57
- data/spec/nuggets/uri/content_type_spec.rb +0 -42
- data/spec/nuggets/uri/exist_spec.rb +0 -49
- data/spec/spec_helper.rb +0 -36
|
@@ -1,57 +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 Env
|
|
30
|
-
module UserHomeMixin
|
|
31
|
-
|
|
32
|
-
# call-seq:
|
|
33
|
-
# ENV.user_home([default]) => aString
|
|
34
|
-
#
|
|
35
|
-
# Returns the user's home directory, or +default+ if it could not be found.
|
|
36
|
-
def user_home(default = ::File::ALT_SEPARATOR ? 'C:/' : '/')
|
|
37
|
-
begin
|
|
38
|
-
return ::Dir.home
|
|
39
|
-
rescue ::ArgumentError
|
|
40
|
-
# "couldn't find HOME environment -- expanding `~'"
|
|
41
|
-
end if ::Dir.respond_to?(:home)
|
|
42
|
-
|
|
43
|
-
%w[HOME HOMEDRIVE:HOMEPATH USERPROFILE APPDATA].each { |key|
|
|
44
|
-
home = values_at(*key.split(':')).join
|
|
45
|
-
return home.gsub(/\\/, '/') if home && !home.empty?
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
begin
|
|
49
|
-
::File.expand_path('~')
|
|
50
|
-
rescue ::ArgumentError
|
|
51
|
-
default
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
data/lib/nuggets/file/ext.rb
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#--
|
|
2
|
-
###############################################################################
|
|
3
|
-
# #
|
|
4
|
-
# A component of ruby-nuggets, some extensions to the Ruby programming #
|
|
5
|
-
# language. #
|
|
6
|
-
# #
|
|
7
|
-
# Copyright (C) 2007-2012 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
|
-
class File
|
|
30
|
-
module ExtMixin
|
|
31
|
-
|
|
32
|
-
# call-seq:
|
|
33
|
-
# File.chomp_ext(path) -> aString
|
|
34
|
-
#
|
|
35
|
-
# Returns a copy of +path+ with its file extension removed.
|
|
36
|
-
def chomp_ext(path, ext = extname(path))
|
|
37
|
-
path.chomp(ext)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# call-seq:
|
|
41
|
-
# File.chomp_ext!(path) -> aString | nil
|
|
42
|
-
#
|
|
43
|
-
# Modifies +path+ in place as described for #chomp_ext, returning
|
|
44
|
-
# +path+, or +nil+ if no modifications were made.
|
|
45
|
-
def chomp_ext!(path, ext = extname(path))
|
|
46
|
-
path.chomp!(ext)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# call-seq:
|
|
50
|
-
# File.sub_ext(path, new_ext) -> aString
|
|
51
|
-
#
|
|
52
|
-
# Returns a copy of +path+ with its file extension replaced
|
|
53
|
-
# with +new_ext+ (if present; see also #set_ext).
|
|
54
|
-
def sub_ext(path, new_ext, ext = extname(path))
|
|
55
|
-
sub_ext!(_path = path.dup, new_ext, ext); _path
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
# call-seq:
|
|
59
|
-
# File.sub_ext!(path, new_ext) -> aString | nil
|
|
60
|
-
#
|
|
61
|
-
# Modifies +path+ in place as described for #sub_ext, returning
|
|
62
|
-
# +path+, or +nil+ if no modifications were made.
|
|
63
|
-
def sub_ext!(path, new_ext, ext = extname(path))
|
|
64
|
-
path << new_ext if chomp_ext!(path, ext)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# call-seq:
|
|
68
|
-
# File.set_ext(path, new_ext) -> aString
|
|
69
|
-
#
|
|
70
|
-
# Returns a copy of +path+ with its file extension removed
|
|
71
|
-
# and +new_ext+ appended. Like #sub_ext, but also applies
|
|
72
|
-
# when file extension is not present.
|
|
73
|
-
def set_ext(path, new_ext, ext = extname(path))
|
|
74
|
-
chomp_ext(path, ext) << new_ext
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# call-seq:
|
|
78
|
-
# File.set_ext!(path, new_ext) -> aString
|
|
79
|
-
#
|
|
80
|
-
# Modifies +path+ in place as described for #set_ext, returning
|
|
81
|
-
# +path+.
|
|
82
|
-
def set_ext!(path, new_ext, ext = extname(path))
|
|
83
|
-
chomp_ext!(path, ext); path << new_ext
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
data/lib/nuggets/file/replace.rb
DELETED
|
@@ -1,56 +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
|
-
class File
|
|
30
|
-
module ReplaceMixin
|
|
31
|
-
|
|
32
|
-
# call-seq:
|
|
33
|
-
# File.replace(name[, create_if_missing]) { ... } => aString
|
|
34
|
-
# File.replace(name[, create_if_missing]) { |content| ... } => aString
|
|
35
|
-
#
|
|
36
|
-
# Replaces the contents of file +name+ with the result of the block. Yields
|
|
37
|
-
# the file's contents to the block if requested. Returns the new content.
|
|
38
|
-
#
|
|
39
|
-
# If +create_if_missing+ is +true+ and the file does not exist, it will be
|
|
40
|
-
# created.
|
|
41
|
-
def replace(name, create_if_missing = false, &block)
|
|
42
|
-
open(name, create_if_missing && !exist?(name) ? 'w+' : 'r+') { |f|
|
|
43
|
-
content = block.arity != 0 ? yield(f.read) : yield
|
|
44
|
-
|
|
45
|
-
f.truncate(0)
|
|
46
|
-
f.rewind
|
|
47
|
-
|
|
48
|
-
f.print content
|
|
49
|
-
|
|
50
|
-
content
|
|
51
|
-
}
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
data/lib/nuggets/file/sub.rb
DELETED
|
@@ -1,96 +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
|
-
require 'nuggets/file/replace_mixin'
|
|
29
|
-
|
|
30
|
-
module Nuggets
|
|
31
|
-
class File
|
|
32
|
-
module SubMixin
|
|
33
|
-
|
|
34
|
-
def self.extended(base)
|
|
35
|
-
base.extend Nuggets::File::ReplaceMixin
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# call-seq:
|
|
39
|
-
# File.sub(name, *args, &block) => aString
|
|
40
|
-
#
|
|
41
|
-
# Calls String#sub! on file +name+'s contents with +args+ and (optional)
|
|
42
|
-
# +block+ and returns the new content.
|
|
43
|
-
def sub(name, *args)
|
|
44
|
-
content = read(name)
|
|
45
|
-
content.sub!(*args, &block_given? ? ::Proc.new : nil)
|
|
46
|
-
content
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# call-seq:
|
|
50
|
-
# File.sub!(name, *args, &block) => aString or +nil+
|
|
51
|
-
#
|
|
52
|
-
# Calls String#sub! on file +name+'s contents with +args+ and (optional)
|
|
53
|
-
# +block+ and replaces the file with the new content. Returns the result
|
|
54
|
-
# of the String#sub! call.
|
|
55
|
-
def sub!(name, *args)
|
|
56
|
-
res = nil
|
|
57
|
-
|
|
58
|
-
replace(name) { |content|
|
|
59
|
-
res = content.sub!(*args, &block_given? ? ::Proc.new : nil)
|
|
60
|
-
content
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
res
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# call-seq:
|
|
67
|
-
# File.gsub(name, *args, &block) => aString
|
|
68
|
-
#
|
|
69
|
-
# Calls String#gsub! on file +name+'s contents with +args+ and (optional)
|
|
70
|
-
# +block+ and returns the new content.
|
|
71
|
-
def gsub(name, *args)
|
|
72
|
-
content = read(name)
|
|
73
|
-
content.gsub!(*args, &block_given? ? ::Proc.new : nil)
|
|
74
|
-
content
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# call-seq:
|
|
78
|
-
# File.gsub!(name, *args, &block) => aString or +nil+
|
|
79
|
-
#
|
|
80
|
-
# Calls String#gsub! on file +name+'s contents with +args+ and (optional)
|
|
81
|
-
# +block+ and replaces the file with the new content. Returns the result
|
|
82
|
-
# of the String#gsub! call.
|
|
83
|
-
def gsub!(name, *args)
|
|
84
|
-
res = nil
|
|
85
|
-
|
|
86
|
-
replace(name) { |content|
|
|
87
|
-
res = content.gsub!(*args, &block_given? ? ::Proc.new : nil)
|
|
88
|
-
content
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
res
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
data/lib/nuggets/file/which.rb
DELETED
|
@@ -1,73 +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
|
-
require 'rbconfig'
|
|
29
|
-
|
|
30
|
-
module Nuggets
|
|
31
|
-
class File
|
|
32
|
-
module WhichMixin
|
|
33
|
-
|
|
34
|
-
DEFAULT_EXTENSIONS = [::RbConfig::CONFIG['EXEEXT']]
|
|
35
|
-
|
|
36
|
-
# call-seq:
|
|
37
|
-
# File.which(executable[, extensions]) => aString or +nil+
|
|
38
|
-
#
|
|
39
|
-
# Returns +executable+ if it's executable, or the full path to +executable+
|
|
40
|
-
# found in PATH, or +nil+ otherwise. Checks +executable+ with each extension
|
|
41
|
-
# in +extensions+ appended in turn.
|
|
42
|
-
#
|
|
43
|
-
# Inspired by Gnuplot.which -- thx, Gordon!
|
|
44
|
-
def which(executable, extensions = DEFAULT_EXTENSIONS)
|
|
45
|
-
extensions |= ['']
|
|
46
|
-
|
|
47
|
-
if env = ::ENV['PATH']
|
|
48
|
-
dirs = env.split(self::PATH_SEPARATOR)
|
|
49
|
-
dirs.map! { |dir| expand_path(dir) }
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
extensions.find { |extension|
|
|
53
|
-
file = "#{executable}#{extension}"
|
|
54
|
-
return file if file?(file) && executable?(file)
|
|
55
|
-
|
|
56
|
-
dirs.find { |dir|
|
|
57
|
-
path = join(dir, file)
|
|
58
|
-
return path if file?(path) && executable?(path)
|
|
59
|
-
} if dirs
|
|
60
|
-
}
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# call-seq:
|
|
64
|
-
# File.which_command(commands) => aString or +nil+
|
|
65
|
-
#
|
|
66
|
-
# Returns the first of +commands+ that is executable (according to #which).
|
|
67
|
-
def which_command(commands, extensions = DEFAULT_EXTENSIONS)
|
|
68
|
-
commands.find { |command| which(command.to_s[/\S+/], extensions) }
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
data/lib/nuggets/hash/at.rb
DELETED
|
@@ -1,69 +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
|
-
require 'nuggets/array/rand'
|
|
29
|
-
|
|
30
|
-
class Hash
|
|
31
|
-
|
|
32
|
-
# call-seq:
|
|
33
|
-
# hash.at(what) => aHash
|
|
34
|
-
#
|
|
35
|
-
# Returns the key/value pair of _hash_ at key position +what+. Remember that
|
|
36
|
-
# hashes might not have the intended (or expected) order in pre-1.9 Ruby.
|
|
37
|
-
def at(what, &block)
|
|
38
|
-
return {} if empty?
|
|
39
|
-
|
|
40
|
-
key = what.is_a?(::Integer) ? keys[what] : keys.send(*what, &block)
|
|
41
|
-
|
|
42
|
-
{ key => self[key] }
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# call-seq:
|
|
46
|
-
# hash.first => aHash
|
|
47
|
-
#
|
|
48
|
-
# Returns the "first" key/value pair of _hash_.
|
|
49
|
-
def first
|
|
50
|
-
at(:first)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# call-seq:
|
|
54
|
-
# hash.last => aHash
|
|
55
|
-
#
|
|
56
|
-
# Returns the "last" key/value pair of _hash_.
|
|
57
|
-
def last
|
|
58
|
-
at(:last)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# call-seq:
|
|
62
|
-
# hash.rand => aHash
|
|
63
|
-
#
|
|
64
|
-
# Returns a random key/value pair of _hash_.
|
|
65
|
-
def rand
|
|
66
|
-
at(:rand)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
end
|