zucker 4 → 5

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 (199) hide show
  1. data/CHANGELOG +15 -1
  2. data/Rakefile +44 -0
  3. data/lib/zucker.rb +71 -10
  4. data/lib/zucker/1/D.rb +2 -0
  5. data/lib/zucker/1/aliases.rb +2 -0
  6. data/lib/zucker/1/all.rb +2 -0
  7. data/lib/zucker/1/array.rb +2 -0
  8. data/lib/zucker/1/array2proc.rb +2 -0
  9. data/lib/zucker/1/binding.rb +2 -0
  10. data/lib/zucker/1/blank.rb +2 -0
  11. data/lib/zucker/1/class2proc.rb +2 -0
  12. data/lib/zucker/1/debug.rb +2 -0
  13. data/lib/zucker/1/default.rb +2 -0
  14. data/lib/zucker/1/egonil.rb +2 -0
  15. data/lib/zucker/1/enumerable.rb +2 -0
  16. data/lib/zucker/1/hash.rb +2 -0
  17. data/lib/zucker/1/hash2proc.rb +2 -0
  18. data/lib/zucker/1/iterate.rb +2 -0
  19. data/lib/zucker/1/ivars.rb +2 -0
  20. data/lib/zucker/1/kernel.rb +2 -0
  21. data/lib/zucker/1/mcopy.rb +2 -0
  22. data/lib/zucker/1/mm.rb +2 -0
  23. data/lib/zucker/1/regexp2proc.rb +2 -0
  24. data/lib/zucker/1/sandbox.rb +2 -0
  25. data/lib/zucker/1/square_brackets_for.rb +2 -0
  26. data/lib/zucker/1/string.rb +2 -0
  27. data/lib/zucker/1/unary.rb +2 -0
  28. data/lib/zucker/1/union.rb +2 -0
  29. data/lib/zucker/2/D.rb +2 -0
  30. data/lib/zucker/2/aliases.rb +2 -0
  31. data/lib/zucker/2/all.rb +2 -0
  32. data/lib/zucker/2/array.rb +2 -0
  33. data/lib/zucker/2/array2proc.rb +2 -0
  34. data/lib/zucker/2/binding.rb +2 -0
  35. data/lib/zucker/2/blank.rb +2 -0
  36. data/lib/zucker/2/class2proc.rb +2 -0
  37. data/lib/zucker/2/debug.rb +2 -0
  38. data/lib/zucker/2/default.rb +2 -0
  39. data/lib/zucker/2/egonil.rb +2 -0
  40. data/lib/zucker/2/enumerable.rb +2 -0
  41. data/lib/zucker/2/hash.rb +2 -0
  42. data/lib/zucker/2/hash2proc.rb +2 -0
  43. data/lib/zucker/2/info.rb +2 -0
  44. data/lib/zucker/2/iterate.rb +2 -0
  45. data/lib/zucker/2/ivars.rb +2 -0
  46. data/lib/zucker/2/kernel.rb +2 -0
  47. data/lib/zucker/2/mcopy.rb +2 -0
  48. data/lib/zucker/2/mm.rb +2 -0
  49. data/lib/zucker/2/regexp2proc.rb +2 -0
  50. data/lib/zucker/2/sandbox.rb +2 -0
  51. data/lib/zucker/2/square_brackets_for.rb +2 -0
  52. data/lib/zucker/2/string.rb +2 -0
  53. data/lib/zucker/2/unary.rb +2 -0
  54. data/lib/zucker/2/union.rb +2 -0
  55. data/lib/zucker/3/D.rb +2 -0
  56. data/lib/zucker/3/alias_for.rb +2 -0
  57. data/lib/zucker/3/aliases.rb +2 -0
  58. data/lib/zucker/3/all.rb +2 -0
  59. data/lib/zucker/3/array.rb +2 -0
  60. data/lib/zucker/3/array2proc.rb +2 -0
  61. data/lib/zucker/3/binding.rb +2 -0
  62. data/lib/zucker/3/blank.rb +2 -0
  63. data/lib/zucker/3/class2proc.rb +2 -0
  64. data/lib/zucker/3/debug.rb +2 -0
  65. data/lib/zucker/3/default.rb +2 -0
  66. data/lib/zucker/3/egonil.rb +2 -0
  67. data/lib/zucker/3/enumerable.rb +2 -0
  68. data/lib/zucker/3/hash.rb +2 -0
  69. data/lib/zucker/3/hash2proc.rb +2 -0
  70. data/lib/zucker/3/info.rb +2 -0
  71. data/lib/zucker/3/iterate.rb +2 -0
  72. data/lib/zucker/3/ivars.rb +2 -0
  73. data/lib/zucker/3/kernel.rb +2 -0
  74. data/lib/zucker/3/mcopy.rb +2 -0
  75. data/lib/zucker/3/mm.rb +2 -0
  76. data/lib/zucker/3/not.rb +2 -0
  77. data/lib/zucker/3/regexp2proc.rb +2 -0
  78. data/lib/zucker/3/sandbox.rb +2 -0
  79. data/lib/zucker/3/square_brackets_for.rb +2 -0
  80. data/lib/zucker/3/string.rb +2 -0
  81. data/lib/zucker/3/tap.rb +2 -0
  82. data/lib/zucker/3/unary.rb +2 -0
  83. data/lib/zucker/3/union.rb +2 -0
  84. data/lib/zucker/{D.rb → 4/D.rb} +2 -0
  85. data/lib/zucker/4/alias_for.rb +21 -0
  86. data/lib/zucker/4/aliases.rb +35 -0
  87. data/lib/zucker/4/all.rb +8 -0
  88. data/lib/zucker/4/array.rb +25 -0
  89. data/lib/zucker/4/array2proc.rb +18 -0
  90. data/lib/zucker/4/binding.rb +27 -0
  91. data/lib/zucker/4/blank.rb +28 -0
  92. data/lib/zucker/4/class2proc.rb +12 -0
  93. data/lib/zucker/4/debug.rb +8 -0
  94. data/lib/zucker/4/default.rb +40 -0
  95. data/lib/zucker/4/egonil.rb +16 -0
  96. data/lib/zucker/4/engine.rb +69 -0
  97. data/lib/zucker/4/enumerable.rb +14 -0
  98. data/lib/zucker/4/hash.rb +21 -0
  99. data/lib/zucker/4/hash2proc.rb +16 -0
  100. data/lib/zucker/4/info.rb +173 -0
  101. data/lib/zucker/4/iterate.rb +25 -0
  102. data/lib/zucker/4/ivars.rb +28 -0
  103. data/lib/zucker/4/kernel.rb +27 -0
  104. data/lib/zucker/4/mcopy.rb +10 -0
  105. data/lib/zucker/4/mm.rb +33 -0
  106. data/lib/zucker/4/not.rb +19 -0
  107. data/lib/zucker/4/os.rb +50 -0
  108. data/lib/zucker/{q.rb → 4/q.rb} +2 -0
  109. data/lib/zucker/4/regexp2proc.rb +12 -0
  110. data/lib/zucker/4/sandbox.rb +23 -0
  111. data/lib/zucker/4/square_brackets_for.rb +22 -0
  112. data/lib/zucker/4/string.rb +54 -0
  113. data/lib/zucker/4/tap.rb +11 -0
  114. data/lib/zucker/4/unary.rb +24 -0
  115. data/lib/zucker/4/union.rb +16 -0
  116. data/lib/zucker/4/version.rb +115 -0
  117. data/lib/zucker/5/alias_for.rb +21 -0
  118. data/lib/zucker/5/aliases.rb +51 -0
  119. data/lib/zucker/5/all.rb +4 -0
  120. data/lib/zucker/5/array.rb +25 -0
  121. data/lib/zucker/5/array2proc.rb +18 -0
  122. data/lib/zucker/5/binding.rb +34 -0
  123. data/lib/zucker/5/blank.rb +28 -0
  124. data/lib/zucker/5/cc.rb +25 -0
  125. data/lib/zucker/5/class2proc.rb +12 -0
  126. data/lib/zucker/5/control.rb +4 -0
  127. data/lib/zucker/5/dd.rb +24 -0
  128. data/lib/zucker/5/debug.rb +4 -0
  129. data/lib/zucker/5/default.rb +4 -0
  130. data/lib/zucker/5/egonil.rb +16 -0
  131. data/lib/zucker/5/engine.rb +69 -0
  132. data/lib/zucker/5/enumerable.rb +14 -0
  133. data/lib/zucker/5/env.rb +4 -0
  134. data/lib/zucker/5/extensions.rb +4 -0
  135. data/lib/zucker/5/hash.rb +27 -0
  136. data/lib/zucker/5/hash2proc.rb +16 -0
  137. data/lib/zucker/5/info.rb +177 -0
  138. data/lib/zucker/5/iterate.rb +26 -0
  139. data/lib/zucker/5/ivars.rb +28 -0
  140. data/lib/zucker/5/kernel.rb +34 -0
  141. data/lib/zucker/5/mcopy.rb +10 -0
  142. data/lib/zucker/5/mm.rb +34 -0
  143. data/lib/zucker/5/not.rb +19 -0
  144. data/lib/zucker/5/object.rb +4 -0
  145. data/lib/zucker/5/oo.rb +17 -0
  146. data/lib/zucker/5/os.rb +49 -0
  147. data/lib/zucker/5/qq.rb +12 -0
  148. data/lib/zucker/5/regexp2proc.rb +12 -0
  149. data/lib/zucker/5/sandbox.rb +25 -0
  150. data/lib/zucker/5/shortcuts.rb +4 -0
  151. data/lib/zucker/5/square_brackets_for.rb +21 -0
  152. data/lib/zucker/5/string.rb +54 -0
  153. data/lib/zucker/5/tap.rb +11 -0
  154. data/lib/zucker/5/to_proc.rb +4 -0
  155. data/lib/zucker/5/unary.rb +24 -0
  156. data/lib/zucker/5/union.rb +16 -0
  157. data/lib/zucker/5/version.rb +118 -0
  158. data/lib/zucker/alias_for.rb +2 -0
  159. data/lib/zucker/aliases.rb +19 -1
  160. data/lib/zucker/all.rb +3 -5
  161. data/lib/zucker/array.rb +2 -0
  162. data/lib/zucker/array2proc.rb +2 -0
  163. data/lib/zucker/binding.rb +5 -0
  164. data/lib/zucker/blank.rb +2 -0
  165. data/lib/zucker/cc.rb +25 -0
  166. data/lib/zucker/class2proc.rb +2 -0
  167. data/lib/zucker/control.rb +4 -0
  168. data/lib/zucker/dd.rb +23 -0
  169. data/lib/zucker/debug.rb +2 -4
  170. data/lib/zucker/default.rb +2 -36
  171. data/lib/zucker/egonil.rb +2 -0
  172. data/lib/zucker/engine.rb +3 -1
  173. data/lib/zucker/enumerable.rb +2 -0
  174. data/lib/zucker/env.rb +4 -0
  175. data/lib/zucker/extensions.rb +4 -0
  176. data/lib/zucker/hash.rb +8 -0
  177. data/lib/zucker/hash2proc.rb +2 -0
  178. data/lib/zucker/info.rb +23 -17
  179. data/lib/zucker/iterate.rb +3 -0
  180. data/lib/zucker/ivars.rb +2 -0
  181. data/lib/zucker/kernel.rb +12 -3
  182. data/lib/zucker/mcopy.rb +2 -0
  183. data/lib/zucker/mm.rb +5 -2
  184. data/lib/zucker/not.rb +2 -0
  185. data/lib/zucker/object.rb +4 -0
  186. data/lib/zucker/oo.rb +17 -0
  187. data/lib/zucker/os.rb +5 -2
  188. data/lib/zucker/qq.rb +12 -0
  189. data/lib/zucker/regexp2proc.rb +2 -0
  190. data/lib/zucker/sandbox.rb +4 -0
  191. data/lib/zucker/shortcuts.rb +4 -0
  192. data/lib/zucker/square_brackets_for.rb +13 -12
  193. data/lib/zucker/string.rb +2 -0
  194. data/lib/zucker/tap.rb +2 -0
  195. data/lib/zucker/to_proc.rb +4 -0
  196. data/lib/zucker/unary.rb +2 -0
  197. data/lib/zucker/union.rb +2 -0
  198. data/lib/zucker/version.rb +72 -67
  199. metadata +87 -5
data/CHANGELOG CHANGED
@@ -1,11 +1,25 @@
1
- 2010-09-01 | Zucker 4
1
+ 2010-09-04 | Zucker 5
2
+ * debug edition - added two debug helpers: oo (output line, method, file) and cc (output method callstack)
3
+ * renamed cube D to dd add added more debug aliases (for mm and binding)
4
+ * fixed __SPECIAL_VARS__ in info and kernel cube and some minor bugfixes
5
+ * Zucker.activate_more_aliases! option
6
+ * added Hash#&
7
+ * added aliases: File.filename (for basename), Dir.join and Dir.split (for File.join, split)
8
+ * added a flexible requiring mechansim in zucker.rb (no api changes)
9
+ * restructered packages
10
+ * added rake tasks for releasing
11
+ * improved RubyVersion constant (cleaner and more flexible)
12
+
2
13
 
14
+ 2010-09-01 | Zucker 4
15
+ * fixed Binding#inspect
3
16
  * added RubyEngine constant
4
17
  * added RubyVersion constant
5
18
  * added OS constant
6
19
  * added q debug method (like p but on one line)
7
20
  * added String#-
8
21
 
22
+
9
23
  2010-08-14 | Zucker 3
10
24
  * added tap cube
11
25
  * added Object#not
data/Rakefile CHANGED
@@ -18,6 +18,9 @@ end
18
18
  task 'default' => 'spec'
19
19
  Spec::Rake::SpecTask.new('spec') do |t|
20
20
  t.spec_files = FileList['spec/*.rb']
21
+ if RUBY_VERSION < '1.9'
22
+ t.spec_files -= Zucker::NON_1_8_CUBES.map{|e| "spec/#{e}_spec.rb"}
23
+ end
21
24
  end
22
25
 
23
26
  # gem
@@ -41,3 +44,44 @@ Rake::GemPackageTask.new(spec) do |pkg|
41
44
  pkg.gem_spec = spec
42
45
  end
43
46
 
47
+ # release
48
+ desc 'run specs, build doc, bump version, set date, copy version directories and add these changes to git'
49
+ task 'prepare_release' => %w[spec doc] do # run specs and doc
50
+ # really want to release?
51
+ print 'Do you really want to release? ...then enter release: '
52
+ exit if $stdin.gets.chomp != 'release'
53
+
54
+ # bump version and date
55
+ require 'date'
56
+ zucker_rb = File.read('lib/zucker.rb')
57
+ zucker_rb.sub! /VERSION\s*=.*(\d+).*$/ do "VERSION = '#{ @v = $1.to_i + 1 }'" end
58
+ zucker_rb.sub! /DATE\s*=.*$/, "DATE = '#{Date.today}'"
59
+ File.open 'lib/zucker.rb','w' do |f| f.write zucker_rb end
60
+
61
+ # copy version directories
62
+ `mkdir lib/zucker/#@v`
63
+ `cp lib/zucker/*.* lib/zucker/#@v/`
64
+ `mkdir desc/#@v`
65
+ `cp desc/*.* desc/#@v/`
66
+ `mkdir doc/#@v`
67
+ `cp doc/*.* doc/#@v/`
68
+ `mkdir spec/#@v`
69
+ `cp spec/*.* spec/#@v/`
70
+
71
+ # add changes to git and tag
72
+ `git add .`
73
+ `git commit -m 'Ruby Zucker #@v :)'`
74
+ `git tag -a v#@v -m 'Ruby Zucker #@v :)'`
75
+
76
+ # done
77
+ puts "prepared Zucker #@v gem release"
78
+ end
79
+
80
+ desc 'prepare_release, build gem, and push it to git and rubygems'
81
+ task 'release' => %w[gem] do
82
+ `git push origin master --tags`
83
+ last_gem = Dir['pkg/zucker-*.gem'].sort[-1] # TODO better sorting or date for zucker-10
84
+ exit if last_gem =~ /next/ # some error happened, do not pollute rubygems.org
85
+ puts last_gem
86
+ #`gem push pkg/#{last_gem}`
87
+ end
@@ -1,19 +1,80 @@
1
1
  # documentation at http://rubyzucker.info or doc/zucker_doc.html
2
2
 
3
3
  module Zucker
4
- VERSION = '4'
5
- DATE = '2010-09-01' # version 3
6
- end
4
+ # version and date get modified by the :prepare_release rake task
5
+ VERSION = '5'
6
+ DATE = '2010-09-04'
7
+
8
+ # cube list
9
+ PACKAGES = {
10
+ :control => %w|egonil iterate tap sandbox kernel|,
11
+ :env => %w|engine info os version|,
12
+ :extensions => %w|array enumerable hash string unary union|,
13
+ :object => %w|blank mcopy not|,
14
+ :to_proc => %w|array2proc class2proc hash2proc regexp2proc|,
15
+ :shortcuts => %w|aliases alias_for square_brackets_for ivars|,
16
+ :debug => %w|binding cc dd mm oo qq|,
17
+ }
18
+
19
+ NON_1_8_CUBES = %w|not tap union|
20
+
21
+ class << self
22
+ # Zucker require helpers
23
+ def require_cube(cube, version = '')
24
+ unless RUBY_VERSION < '1.9' && Zucker::NON_1_8_CUBES.include?(cube)
25
+ require File.expand_path( File.join('..', 'zucker', version, cube), __FILE__)
26
+ end
27
+ end
7
28
 
8
- # nothing further is done here
9
- # to use zucker:
29
+ def require_package(package, version = '')
30
+ PACKAGES[package.to_sym].each{ |cube|
31
+ require_cube cube, version
32
+ }
33
+ end
10
34
 
11
- # require 'zucker/default'
35
+ def require_this(filename)
36
+ version= File.split( File.expand_path( filename) )[-2]
37
+ version = '' if version !~ /^\d+$/
38
+ package = File.basename( filename ).chomp( File.extname( filename ))
39
+ Zucker.require_package(package, version)
40
+ end
12
41
 
13
- # and/or
42
+ def require_all(version = '')
43
+ require_default( version ) +
44
+ [require_package( :debug, version )]
45
+ end
14
46
 
15
- # require 'zucker/debug'
47
+ def require_default(version = '')
48
+ PACKAGES.map{ |package, _|
49
+ require_package package if package != :debug
50
+ }.compact
51
+ end
52
+
53
+ # these aliases 'pollute' the global namespace or may conflict with other codee
54
+ def activate_more_aliases!
55
+ aliases = {
56
+ :mcopy => :copy,
57
+ :egonil => :n,
58
+ :make_new => :init,
59
+ :tap_on => :returning,
60
+ :library? => :lib?,
61
+ :square_brackets_for => :brackets,
62
+ }
63
+
64
+ loaded_aliases = []
65
+ aliases.each{ |old, new|
66
+ Object.class_eval "alias #{new} #{old}; loaded_aliases << :#{new}" rescue nil
67
+ }
68
+ eval "::RV = RubyVersion; loaded_aliases << :RV" rescue nil
69
+ eval "::RE = RubyEngine; loaded_aliases << :RE" rescue nil
70
+
71
+ loaded_aliases
72
+ end
73
+ alias more_aliases! activate_more_aliases!
74
+ end
75
+ end
16
76
 
17
- # or cherry-pick the cubes you want ;)
77
+ # You can use Zucker with
78
+ # require 'zucker/all'
18
79
 
19
- # eg. require 'zucker/egonil'
80
+ # J-_-L
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  module Kernel
2
4
  def D(*args, &block)
3
5
  if args.empty?
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  alias is_an? is_a?
2
4
 
3
5
  module Enumerable
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  # require all the sugar ;)
2
4
  # see README for an explaination of what they do
3
5
 
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Array
2
4
  def ^(other) # TODO: more efficient
3
5
  (self - other) +
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Array
2
4
  def to_proc
3
5
  Proc.new{ |obj|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Binding
2
4
  def inspect
3
5
  put_vars = lambda { |array|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Object
2
4
  def blank?
3
5
  if respond_to? :empty? then empty? else !self end
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Class
2
4
  def to_proc
3
5
  Proc.new do |*args|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  require 'zucker/1/D'
2
4
  require 'zucker/1/mm'
3
5
  require 'zucker/1/binding'
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  # default
2
4
  zucker = %w|
3
5
  aliases
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def egonil(nil_value = nil)
2
4
  yield
3
5
  rescue NoMethodError => e
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  module Enumerable
2
4
  def mash
3
5
  ret = {}
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Hash
2
4
  def self.zip(keys,values)
3
5
  Hash[ *[1,2,3].zip( [4,5,6] ).flatten ]
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Hash
2
4
  def to_proc
3
5
  Proc.new{ |obj|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def iterate(*params)
2
4
  # params.shift.zip(*params).each{ |*elements| yield *elements }
3
5
 
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def instance_variables_from(obj, *only)
2
4
  iter =
3
5
  if obj.is_a? Binding
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def activate_warnings!
2
4
  $VERBOSE = true
3
5
  end
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Object
2
4
  def mcopy
3
5
  Marshal.load Marshal.dump self
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  module Kernel
2
4
  def method_list(levels = 1)
3
5
  if self.is_a? Module
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Regexp
2
4
  def to_proc
3
5
  proc do |e|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def sandbox(rescueblock=nil)
2
4
  Thread.start do
3
5
  $SAFE = 4
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def square_brackets_for(ivar, assignment = true)
2
4
  # undef [] if respond_to? :[]
3
5
  # undef []= if respond_to? :[]=
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class String
2
4
  def ^(pos)
3
5
  pos = pos.to_i
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class String
2
4
  def +@
3
5
  self
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Regexp
2
4
  def |(arg)
3
5
  Regexp.union self, arg.is_a?(Regexp) ? arg : arg.to_s
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  module Kernel
2
4
  def D(*args, &block)
3
5
  if args.empty?
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  alias is_an? is_a?
2
4
 
3
5
  module Enumerable
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  # require all the sugar ;)
2
4
  # see README for an explaination of what they do
3
5
 
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Array
2
4
  def ^(other) # TODO: more efficient
3
5
  (self - other) +
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Array
2
4
  def to_proc
3
5
  Proc.new{ |obj|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Binding
2
4
  def inspect
3
5
  put_vars = lambda { |array|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Object
2
4
  def blank?
3
5
  if respond_to? :empty? then empty? else !self end
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Class
2
4
  def to_proc
3
5
  Proc.new do |*args|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  require 'zucker/2/D'
2
4
  require 'zucker/2/mm'
3
5
  require 'zucker/2/binding'
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  # default
2
4
  zucker = %w|
3
5
  aliases
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  def egonil(nil_value = nil)
2
4
  yield
3
5
  rescue NoMethodError => e
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  module Enumerable
2
4
  def mash
3
5
  ret = {}
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Hash
2
4
  def self.zip(keys,values)
3
5
  Hash[ *keys.zip( values ).flatten ]
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  class Hash
2
4
  def to_proc
3
5
  Proc.new{ |obj|
@@ -1,3 +1,5 @@
1
+ require 'zucker'
2
+
1
3
  module Info
2
4
  class << Info
3
5
  # hash like access