zucker 2 → 3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +12 -0
- data/README +4 -1
- data/Rakefile +17 -7
- data/lib/zucker.rb +7 -1
- data/lib/zucker/2/all.rb +2 -2
- data/lib/zucker/2/debug.rb +3 -3
- data/lib/zucker/2/default.rb +1 -1
- data/lib/zucker/3/D.rb +19 -0
- data/lib/zucker/3/alias_for.rb +19 -0
- data/lib/zucker/3/aliases.rb +28 -0
- data/lib/zucker/3/all.rb +6 -0
- data/lib/zucker/3/array.rb +23 -0
- data/lib/zucker/3/array2proc.rb +16 -0
- data/lib/zucker/3/binding.rb +25 -0
- data/lib/zucker/3/blank.rb +26 -0
- data/lib/zucker/3/class2proc.rb +10 -0
- data/lib/zucker/3/debug.rb +6 -0
- data/lib/zucker/3/default.rb +35 -0
- data/lib/zucker/3/egonil.rb +14 -0
- data/lib/zucker/3/enumerable.rb +12 -0
- data/lib/zucker/3/hash.rb +19 -0
- data/lib/zucker/3/hash2proc.rb +14 -0
- data/lib/zucker/3/info.rb +167 -0
- data/lib/zucker/3/iterate.rb +23 -0
- data/lib/zucker/3/ivars.rb +26 -0
- data/lib/zucker/3/kernel.rb +48 -0
- data/lib/zucker/3/mcopy.rb +8 -0
- data/lib/zucker/3/mm.rb +31 -0
- data/lib/zucker/3/not.rb +17 -0
- data/lib/zucker/3/regexp2proc.rb +10 -0
- data/lib/zucker/3/sandbox.rb +19 -0
- data/lib/zucker/3/square_brackets_for.rb +20 -0
- data/lib/zucker/3/string.rb +47 -0
- data/lib/zucker/3/tap.rb +9 -0
- data/lib/zucker/3/unary.rb +22 -0
- data/lib/zucker/3/union.rb +14 -0
- data/lib/zucker/alias_for.rb +19 -0
- data/lib/zucker/array.rb +8 -2
- data/lib/zucker/debug.rb +2 -0
- data/lib/zucker/default.rb +11 -1
- data/lib/zucker/info.rb +5 -2
- data/lib/zucker/kernel.rb +41 -11
- data/lib/zucker/mcopy.rb +0 -1
- data/lib/zucker/not.rb +17 -0
- data/lib/zucker/string.rb +24 -2
- data/lib/zucker/tap.rb +9 -0
- metadata +41 -160
- data/lib/zucker/1/desc/D.yaml +0 -23
- data/lib/zucker/1/desc/aliases.yaml +0 -16
- data/lib/zucker/1/desc/array.yaml +0 -14
- data/lib/zucker/1/desc/array2proc.yaml +0 -13
- data/lib/zucker/1/desc/binding.yaml +0 -10
- data/lib/zucker/1/desc/blank.yaml +0 -12
- data/lib/zucker/1/desc/class2proc.yaml +0 -12
- data/lib/zucker/1/desc/egonil.yaml +0 -17
- data/lib/zucker/1/desc/enumerable.yaml +0 -11
- data/lib/zucker/1/desc/hash.yaml +0 -12
- data/lib/zucker/1/desc/hash2proc.yaml +0 -11
- data/lib/zucker/1/desc/iterate.yaml +0 -17
- data/lib/zucker/1/desc/ivars.yaml +0 -20
- data/lib/zucker/1/desc/kernel.yaml +0 -13
- data/lib/zucker/1/desc/mcopy.yaml +0 -12
- data/lib/zucker/1/desc/mm.yaml +0 -12
- data/lib/zucker/1/desc/regexp2proc.yaml +0 -13
- data/lib/zucker/1/desc/sandbox.yaml +0 -14
- data/lib/zucker/1/desc/square_brackets_for.yaml +0 -23
- data/lib/zucker/1/desc/string.yaml +0 -13
- data/lib/zucker/1/desc/unary.yaml +0 -15
- data/lib/zucker/1/desc/union.yaml +0 -11
- data/lib/zucker/1/doc/meta.yaml +0 -4
- data/lib/zucker/1/doc/zucker_doc.html +0 -1286
- data/lib/zucker/1/doc/zucker_doc.rb +0 -493
- data/lib/zucker/1/spec/D_spec.rb +0 -27
- data/lib/zucker/1/spec/aliases_spec.rb +0 -34
- data/lib/zucker/1/spec/array2proc_spec.rb +0 -8
- data/lib/zucker/1/spec/array_spec.rb +0 -23
- data/lib/zucker/1/spec/binding_spec.rb +0 -6
- data/lib/zucker/1/spec/blank_spec.rb +0 -20
- data/lib/zucker/1/spec/class2proc_spec.rb +0 -9
- data/lib/zucker/1/spec/egonil_spec.rb +0 -30
- data/lib/zucker/1/spec/enumerable_spec.rb +0 -8
- data/lib/zucker/1/spec/hash2proc_spec.rb +0 -12
- data/lib/zucker/1/spec/hash_spec.rb +0 -10
- data/lib/zucker/1/spec/iterate_spec.rb +0 -54
- data/lib/zucker/1/spec/ivars_spec.rb +0 -20
- data/lib/zucker/1/spec/kernel_spec.rb +0 -34
- data/lib/zucker/1/spec/mcopy_spec.rb +0 -13
- data/lib/zucker/1/spec/mm_spec.rb +0 -6
- data/lib/zucker/1/spec/regexp2proc_spec.rb +0 -9
- data/lib/zucker/1/spec/sandbox_spec.rb +0 -7
- data/lib/zucker/1/spec/square_brackets_for_spec.rb +0 -59
- data/lib/zucker/1/spec/string_spec.rb +0 -29
- data/lib/zucker/1/spec/unary_spec.rb +0 -26
- data/lib/zucker/1/spec/union_spec.rb +0 -13
- data/lib/zucker/2/desc/D.yaml +0 -23
- data/lib/zucker/2/desc/aliases.yaml +0 -16
- data/lib/zucker/2/desc/array.yaml +0 -14
- data/lib/zucker/2/desc/array2proc.yaml +0 -17
- data/lib/zucker/2/desc/binding.yaml +0 -10
- data/lib/zucker/2/desc/blank.yaml +0 -10
- data/lib/zucker/2/desc/class2proc.yaml +0 -12
- data/lib/zucker/2/desc/egonil.yaml +0 -17
- data/lib/zucker/2/desc/enumerable.yaml +0 -11
- data/lib/zucker/2/desc/hash.yaml +0 -14
- data/lib/zucker/2/desc/hash2proc.yaml +0 -11
- data/lib/zucker/2/desc/info.yaml +0 -12
- data/lib/zucker/2/desc/iterate.yaml +0 -17
- data/lib/zucker/2/desc/ivars.yaml +0 -20
- data/lib/zucker/2/desc/kernel.yaml +0 -13
- data/lib/zucker/2/desc/mcopy.yaml +0 -12
- data/lib/zucker/2/desc/mm.yaml +0 -12
- data/lib/zucker/2/desc/regexp2proc.yaml +0 -13
- data/lib/zucker/2/desc/sandbox.yaml +0 -19
- data/lib/zucker/2/desc/square_brackets_for.yaml +0 -23
- data/lib/zucker/2/desc/string.yaml +0 -13
- data/lib/zucker/2/desc/unary.yaml +0 -15
- data/lib/zucker/2/desc/union.yaml +0 -11
- data/lib/zucker/2/doc/zucker_doc.html +0 -1494
- data/lib/zucker/2/doc/zucker_doc.rb +0 -498
- data/lib/zucker/2/spec/D_spec.rb +0 -35
- data/lib/zucker/2/spec/aliases_spec.rb +0 -13
- data/lib/zucker/2/spec/array2proc_spec.rb +0 -12
- data/lib/zucker/2/spec/array_spec.rb +0 -23
- data/lib/zucker/2/spec/binding_spec.rb +0 -8
- data/lib/zucker/2/spec/blank_spec.rb +0 -20
- data/lib/zucker/2/spec/class2proc_spec.rb +0 -9
- data/lib/zucker/2/spec/egonil_spec.rb +0 -30
- data/lib/zucker/2/spec/enumerable_spec.rb +0 -8
- data/lib/zucker/2/spec/hash2proc_spec.rb +0 -12
- data/lib/zucker/2/spec/hash_spec.rb +0 -17
- data/lib/zucker/2/spec/info_spec.rb +0 -8
- data/lib/zucker/2/spec/iterate_spec.rb +0 -54
- data/lib/zucker/2/spec/ivars_spec.rb +0 -20
- data/lib/zucker/2/spec/kernel_spec.rb +0 -28
- data/lib/zucker/2/spec/mcopy_spec.rb +0 -13
- data/lib/zucker/2/spec/mm_spec.rb +0 -8
- data/lib/zucker/2/spec/regexp2proc_spec.rb +0 -9
- data/lib/zucker/2/spec/sandbox_spec.rb +0 -26
- data/lib/zucker/2/spec/spec_helper.rb +0 -18
- data/lib/zucker/2/spec/square_brackets_for_spec.rb +0 -59
- data/lib/zucker/2/spec/string_spec.rb +0 -29
- data/lib/zucker/2/spec/unary_spec.rb +0 -26
- data/lib/zucker/2/spec/union_spec.rb +0 -15
- data/lib/zucker/desc/D.yaml +0 -23
- data/lib/zucker/desc/aliases.yaml +0 -16
- data/lib/zucker/desc/array.yaml +0 -14
- data/lib/zucker/desc/array2proc.yaml +0 -17
- data/lib/zucker/desc/binding.yaml +0 -10
- data/lib/zucker/desc/blank.yaml +0 -10
- data/lib/zucker/desc/class2proc.yaml +0 -12
- data/lib/zucker/desc/egonil.yaml +0 -17
- data/lib/zucker/desc/enumerable.yaml +0 -11
- data/lib/zucker/desc/hash.yaml +0 -14
- data/lib/zucker/desc/hash2proc.yaml +0 -11
- data/lib/zucker/desc/info.yaml +0 -12
- data/lib/zucker/desc/iterate.yaml +0 -17
- data/lib/zucker/desc/ivars.yaml +0 -20
- data/lib/zucker/desc/kernel.yaml +0 -13
- data/lib/zucker/desc/mcopy.yaml +0 -12
- data/lib/zucker/desc/mm.yaml +0 -12
- data/lib/zucker/desc/regexp2proc.yaml +0 -13
- data/lib/zucker/desc/sandbox.yaml +0 -19
- data/lib/zucker/desc/square_brackets_for.yaml +0 -23
- data/lib/zucker/desc/string.yaml +0 -13
- data/lib/zucker/desc/unary.yaml +0 -15
- data/lib/zucker/desc/union.yaml +0 -11
- data/lib/zucker/doc/zucker_doc.html +0 -1494
- data/lib/zucker/doc/zucker_doc.rb +0 -498
- data/lib/zucker/edge/ideas/args.rb +0 -22
- data/lib/zucker/edge/ideas/args.yaml +0 -19
- data/lib/zucker/edge/ideas/args_spec.rb +0 -19
- data/lib/zucker/edge/ideas/clone_deep.rb +0 -21
- data/lib/zucker/edge/ideas/clone_deep_spec.rb +0 -12
- data/lib/zucker/edge/ideas/dclone.yaml +0 -12
- data/lib/zucker/edge/ideas/hash.rb +0 -18
- data/lib/zucker/edge/ideas/require_directory.rb +0 -6
- data/lib/zucker/spec/D_spec.rb +0 -35
- data/lib/zucker/spec/aliases_spec.rb +0 -13
- data/lib/zucker/spec/array2proc_spec.rb +0 -12
- data/lib/zucker/spec/array_spec.rb +0 -23
- data/lib/zucker/spec/binding_spec.rb +0 -8
- data/lib/zucker/spec/blank_spec.rb +0 -20
- data/lib/zucker/spec/class2proc_spec.rb +0 -9
- data/lib/zucker/spec/egonil_spec.rb +0 -30
- data/lib/zucker/spec/enumerable_spec.rb +0 -8
- data/lib/zucker/spec/hash2proc_spec.rb +0 -12
- data/lib/zucker/spec/hash_spec.rb +0 -17
- data/lib/zucker/spec/info_spec.rb +0 -8
- data/lib/zucker/spec/iterate_spec.rb +0 -54
- data/lib/zucker/spec/ivars_spec.rb +0 -20
- data/lib/zucker/spec/kernel_spec.rb +0 -28
- data/lib/zucker/spec/mcopy_spec.rb +0 -13
- data/lib/zucker/spec/mm_spec.rb +0 -8
- data/lib/zucker/spec/regexp2proc_spec.rb +0 -9
- data/lib/zucker/spec/sandbox_spec.rb +0 -26
- data/lib/zucker/spec/spec_helper.rb +0 -18
- data/lib/zucker/spec/square_brackets_for_spec.rb +0 -59
- data/lib/zucker/spec/string_spec.rb +0 -29
- data/lib/zucker/spec/unary_spec.rb +0 -26
- data/lib/zucker/spec/union_spec.rb +0 -15
@@ -0,0 +1,23 @@
|
|
1
|
+
def iterate(*params)
|
2
|
+
# params.shift.zip(*params).each{ |*elements| yield *elements }
|
3
|
+
|
4
|
+
first = params.shift
|
5
|
+
if params.empty? # single param - like each
|
6
|
+
if block_given?
|
7
|
+
first.map{|e| yield e }
|
8
|
+
else
|
9
|
+
first.map
|
10
|
+
end
|
11
|
+
else
|
12
|
+
padded_first = Array.new( [first, *params].max_by(&:size).size ){|i| first[i] } # append nils
|
13
|
+
obj = padded_first.zip *params
|
14
|
+
if block_given?
|
15
|
+
obj.map{|es| yield *es }
|
16
|
+
else
|
17
|
+
obj.map.to_enum
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# J-_-L
|
23
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
def instance_variables_from(obj, *only)
|
2
|
+
iter =
|
3
|
+
if obj.is_a? Binding
|
4
|
+
obj.eval('local_variables').map{|e| [obj.eval("#{e}"), e] }
|
5
|
+
elsif obj.is_a? Hash
|
6
|
+
obj.map{|k,v| [v,k] }
|
7
|
+
else
|
8
|
+
# elsif obj.is_a? Enumerable
|
9
|
+
obj.each.with_index
|
10
|
+
end
|
11
|
+
|
12
|
+
ret = []
|
13
|
+
iter.each{ |value, arg|
|
14
|
+
arg = arg.to_s
|
15
|
+
if only.include?(arg) || only.include?(arg.to_sym) || only.empty?
|
16
|
+
arg = '_' + arg if (48..57).member? arg.unpack('C')[0] # 1.8+1.9
|
17
|
+
ret << ivar = :"@#{arg}"
|
18
|
+
self.instance_variable_set ivar, value
|
19
|
+
end
|
20
|
+
}
|
21
|
+
ret
|
22
|
+
end
|
23
|
+
alias ivars instance_variables_from
|
24
|
+
|
25
|
+
# J-_-L
|
26
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Kernel
|
2
|
+
def activate_warnings!
|
3
|
+
$VERBOSE = true
|
4
|
+
end
|
5
|
+
|
6
|
+
def deactivate_warnings!
|
7
|
+
$VERBOSE = false
|
8
|
+
end
|
9
|
+
|
10
|
+
def library?
|
11
|
+
__FILE__ != $PROGRAM_NAME
|
12
|
+
end
|
13
|
+
|
14
|
+
def executed_directly?
|
15
|
+
__FILE__ == $PROGRAM_NAME
|
16
|
+
end
|
17
|
+
alias standalone? executed_directly?
|
18
|
+
|
19
|
+
def ignore_sigint! # ctrl+c
|
20
|
+
Signal.trap *%w|SIGINT IGNORE|
|
21
|
+
end
|
22
|
+
|
23
|
+
# version getter
|
24
|
+
def ruby_1_9?
|
25
|
+
RUBY_VERSION[2,1] == '9'
|
26
|
+
end
|
27
|
+
|
28
|
+
def ruby_1_8?
|
29
|
+
RUBY_VERSION[2,1] == '8'
|
30
|
+
end
|
31
|
+
|
32
|
+
def ruby_1_9!
|
33
|
+
if RUBY_VERSION[2,1] != '9'
|
34
|
+
fail NotImplementedError, "Sorry, this script requires Ruby 1.9, but was executed with a different Ruby version!"
|
35
|
+
end
|
36
|
+
true
|
37
|
+
end
|
38
|
+
|
39
|
+
def ruby_1_8!
|
40
|
+
if RUBY_VERSION[2,1] != '8'
|
41
|
+
fail NotImplementedError, "Sorry, this script requires Ruby 1.8, but was executed with a different Ruby version!"
|
42
|
+
end
|
43
|
+
true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# J-_-L
|
48
|
+
|
data/lib/zucker/3/mm.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Kernel
|
2
|
+
def method_list(levels = 1)
|
3
|
+
if self.is_a? Module
|
4
|
+
klass, method_function = self, :public_methods
|
5
|
+
else
|
6
|
+
klass, method_function = self.class, :public_instance_methods
|
7
|
+
|
8
|
+
eigen = self.singleton_methods
|
9
|
+
if !eigen.empty?
|
10
|
+
puts :Eigenclass # sorry for not being up to date, I just love the word
|
11
|
+
p self.singleton_methods
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
levels.times{ |level|
|
16
|
+
if cur = klass.ancestors[level]
|
17
|
+
p cur # put class name
|
18
|
+
p cur.send method_function, false # put methods of the class
|
19
|
+
else
|
20
|
+
break
|
21
|
+
end
|
22
|
+
}
|
23
|
+
|
24
|
+
self # or whatever
|
25
|
+
end
|
26
|
+
|
27
|
+
alias mm method_list
|
28
|
+
end
|
29
|
+
|
30
|
+
# J-_-L
|
31
|
+
|
data/lib/zucker/3/not.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
class Object
|
2
|
+
def not
|
3
|
+
NotClass.new self
|
4
|
+
end
|
5
|
+
|
6
|
+
class NotClass < BasicObject
|
7
|
+
def initialize(receiver)
|
8
|
+
@receiver = receiver
|
9
|
+
end
|
10
|
+
|
11
|
+
def method_missing(m, *args, &block)
|
12
|
+
not @receiver.public_send( m, *args, &block )
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# J-_-L
|
@@ -0,0 +1,19 @@
|
|
1
|
+
def sandbox(rescueblock_or_default=nil)
|
2
|
+
Thread.start do
|
3
|
+
$SAFE = 4
|
4
|
+
yield
|
5
|
+
end.value
|
6
|
+
rescue SecurityError => e
|
7
|
+
if !rescueblock_or_default.nil?
|
8
|
+
if rescueblock_or_default.is_a? Proc
|
9
|
+
rescueblock_or_default.call e
|
10
|
+
else
|
11
|
+
rescueblock_or_default
|
12
|
+
end
|
13
|
+
else
|
14
|
+
raise e
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# J-_-L
|
19
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
def square_brackets_for(ivar, assignment = true)
|
2
|
+
# undef [] if respond_to? :[]
|
3
|
+
# undef []= if respond_to? :[]=
|
4
|
+
|
5
|
+
#instance_eval do
|
6
|
+
define_method :[] do |key|
|
7
|
+
(instance_variable_get :"@#{ivar}")[key]
|
8
|
+
end
|
9
|
+
|
10
|
+
if assignment
|
11
|
+
define_method :[]= do |key, value|
|
12
|
+
(instance_variable_get :"@#{ivar}")[key] = value
|
13
|
+
end
|
14
|
+
end
|
15
|
+
#end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
# J-_-L
|
20
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class String
|
2
|
+
def ^(pos)
|
3
|
+
pos = pos.to_i
|
4
|
+
if pos >= 0
|
5
|
+
self[pos..-1]
|
6
|
+
else
|
7
|
+
self[0...pos]
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def lchomp(arg = $/)
|
12
|
+
self.reverse.chomp(arg).reverse
|
13
|
+
end
|
14
|
+
|
15
|
+
def lchomp!(arg = $/)
|
16
|
+
self.reverse.chomp!(arg).reverse
|
17
|
+
end
|
18
|
+
|
19
|
+
def ords
|
20
|
+
self.unpack 'C*'
|
21
|
+
end
|
22
|
+
|
23
|
+
def constantize(default_value = nil) # always uses global scope as in AS... is this good?
|
24
|
+
get_constant = lambda{
|
25
|
+
self.split(/::/).inject( Object ){ |base_constant, current_constant|
|
26
|
+
base_constant.const_get current_constant
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
if !default_value && !block_given?
|
31
|
+
get_constant.call
|
32
|
+
else
|
33
|
+
begin
|
34
|
+
get_constant.call
|
35
|
+
rescue NameError
|
36
|
+
if block_given?
|
37
|
+
yield self
|
38
|
+
else
|
39
|
+
default_value
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# J-_-L
|
47
|
+
|
data/lib/zucker/3/tap.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
def alias_for(m, *aliases)
|
2
|
+
aliases.each{ |a|
|
3
|
+
class_eval "alias #{a} #{m}"
|
4
|
+
}
|
5
|
+
end
|
6
|
+
alias aliases_for alias_for
|
7
|
+
|
8
|
+
class Module
|
9
|
+
def alias_method_for(m, *alias_methods)
|
10
|
+
alias_methods.each{ |a|
|
11
|
+
class_eval do
|
12
|
+
alias_method a.to_sym, m.to_sym
|
13
|
+
end
|
14
|
+
}
|
15
|
+
end
|
16
|
+
alias alias_methods_for alias_method_for
|
17
|
+
end
|
18
|
+
|
19
|
+
# J-_-L
|
data/lib/zucker/array.rb
CHANGED
@@ -4,8 +4,14 @@ class Array
|
|
4
4
|
(other - self)
|
5
5
|
end
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
# can take an argument & block to be Rails compatible
|
8
|
+
def sum(identity = 0, &block)
|
9
|
+
# inject(:+)
|
10
|
+
if block_given?
|
11
|
+
map(&block).sum( identity )
|
12
|
+
else
|
13
|
+
inject(:+) || identity
|
14
|
+
end
|
9
15
|
end
|
10
16
|
|
11
17
|
def chrs
|
data/lib/zucker/debug.rb
CHANGED
data/lib/zucker/default.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
+
require 'zucker'
|
2
|
+
|
1
3
|
# default
|
2
4
|
zucker = %w|
|
5
|
+
alias_for
|
3
6
|
aliases
|
4
7
|
array
|
5
8
|
array2proc
|
@@ -9,17 +12,24 @@ egonil
|
|
9
12
|
enumerable
|
10
13
|
hash
|
11
14
|
hash2proc
|
15
|
+
info
|
12
16
|
iterate
|
13
17
|
ivars
|
14
18
|
kernel
|
15
19
|
mcopy
|
20
|
+
not
|
16
21
|
regexp2proc
|
17
22
|
sandbox
|
18
23
|
square_brackets_for
|
19
24
|
string
|
25
|
+
tap
|
20
26
|
unary
|
21
27
|
union
|
22
28
|
|
|
23
29
|
|
24
|
-
|
30
|
+
# remove 1.9 if 1.8
|
31
|
+
if RUBY_VERSION < '1.9'
|
32
|
+
zucker -= %w|not tap union|
|
33
|
+
end
|
25
34
|
|
35
|
+
zucker.each{|rb| require File.join( 'zucker', rb )}
|
data/lib/zucker/info.rb
CHANGED
@@ -5,7 +5,10 @@ module Info
|
|
5
5
|
send what
|
6
6
|
end
|
7
7
|
|
8
|
-
#
|
8
|
+
# list available info methods
|
9
|
+
def list
|
10
|
+
singleton_methods - [:[], :list, '[]', 'list']
|
11
|
+
end
|
9
12
|
end
|
10
13
|
|
11
14
|
module_function
|
@@ -124,7 +127,7 @@ module Info
|
|
124
127
|
|
125
128
|
# defined objects
|
126
129
|
def global_variables
|
127
|
-
global_variables
|
130
|
+
Object.send :global_variables
|
128
131
|
end
|
129
132
|
|
130
133
|
def global_constants
|
data/lib/zucker/kernel.rb
CHANGED
@@ -1,17 +1,47 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
module Kernel
|
2
|
+
def activate_warnings!
|
3
|
+
$VERBOSE = true
|
4
|
+
end
|
5
|
+
|
6
|
+
def deactivate_warnings!
|
7
|
+
$VERBOSE = false
|
8
|
+
end
|
9
|
+
|
10
|
+
def library?
|
11
|
+
__FILE__ != $PROGRAM_NAME
|
12
|
+
end
|
13
|
+
|
14
|
+
def executed_directly?
|
15
|
+
__FILE__ == $PROGRAM_NAME
|
16
|
+
end
|
17
|
+
alias standalone? executed_directly?
|
18
|
+
|
19
|
+
def ignore_sigint! # ctrl+c
|
20
|
+
Signal.trap *%w|SIGINT IGNORE|
|
21
|
+
end
|
4
22
|
|
5
|
-
|
6
|
-
|
7
|
-
|
23
|
+
# version getter
|
24
|
+
def ruby_1_9?
|
25
|
+
RUBY_VERSION[2,1] == '9'
|
26
|
+
end
|
8
27
|
|
9
|
-
def
|
10
|
-
|
11
|
-
end
|
28
|
+
def ruby_1_8?
|
29
|
+
RUBY_VERSION[2,1] == '8'
|
30
|
+
end
|
31
|
+
|
32
|
+
def ruby_1_9!
|
33
|
+
if RUBY_VERSION[2,1] != '9'
|
34
|
+
fail NotImplementedError, "Sorry, this script requires Ruby 1.9, but was executed with a different Ruby version!"
|
35
|
+
end
|
36
|
+
true
|
37
|
+
end
|
12
38
|
|
13
|
-
def
|
14
|
-
|
39
|
+
def ruby_1_8!
|
40
|
+
if RUBY_VERSION[2,1] != '8'
|
41
|
+
fail NotImplementedError, "Sorry, this script requires Ruby 1.8, but was executed with a different Ruby version!"
|
42
|
+
end
|
43
|
+
true
|
44
|
+
end
|
15
45
|
end
|
16
46
|
|
17
47
|
# J-_-L
|