zucker 10 → 11

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 (47) hide show
  1. data/CHANGELOG +10 -0
  2. data/Rakefile +2 -2
  3. data/desc/binding.yaml +2 -2
  4. data/desc/kernel.yaml +2 -1
  5. data/desc/string.yaml +2 -2
  6. data/doc/zucker_doc.html +107 -42
  7. data/lib/zucker.rb +5 -5
  8. data/lib/zucker/alias_for.rb +1 -0
  9. data/lib/zucker/aliases.rb +1 -0
  10. data/lib/zucker/array.rb +1 -0
  11. data/lib/zucker/array_to_proc.rb +2 -1
  12. data/lib/zucker/binding.rb +18 -15
  13. data/lib/zucker/blank.rb +1 -0
  14. data/lib/zucker/cc.rb +1 -0
  15. data/lib/zucker/class_to_proc.rb +2 -1
  16. data/lib/zucker/dd.rb +1 -0
  17. data/lib/zucker/egonil.rb +1 -0
  18. data/lib/zucker/engine.rb +1 -0
  19. data/lib/zucker/enumerable.rb +2 -1
  20. data/lib/zucker/file.rb +6 -0
  21. data/lib/zucker/hash.rb +1 -0
  22. data/lib/zucker/hash_to_proc.rb +1 -0
  23. data/lib/zucker/info.rb +1 -0
  24. data/lib/zucker/iterate.rb +3 -2
  25. data/lib/zucker/ivars.rb +1 -0
  26. data/lib/zucker/kernel.rb +7 -1
  27. data/lib/zucker/mcopy.rb +1 -0
  28. data/lib/zucker/mm.rb +1 -0
  29. data/lib/zucker/not.rb +1 -0
  30. data/lib/zucker/oo.rb +1 -0
  31. data/lib/zucker/os.rb +1 -0
  32. data/lib/zucker/qq.rb +1 -0
  33. data/lib/zucker/regexp_to_proc.rb +1 -0
  34. data/lib/zucker/regexp_visualize.rb +6 -1
  35. data/lib/zucker/sandbox.rb +2 -0
  36. data/lib/zucker/square_brackets_for.rb +1 -0
  37. data/lib/zucker/string.rb +1 -0
  38. data/lib/zucker/tap.rb +3 -2
  39. data/lib/zucker/unary.rb +1 -0
  40. data/lib/zucker/union.rb +1 -0
  41. data/lib/zucker/version.rb +1 -0
  42. data/spec/kernel_spec.rb +6 -1
  43. data/spec/regexp_visualize_spec.rb +1 -1
  44. data/spec/sandbox_spec.rb +1 -1
  45. data/spec/version_spec.rb +2 -2
  46. data/zucker.gemspec +12 -3
  47. metadata +6 -6
data/CHANGELOG CHANGED
@@ -1,3 +1,13 @@
1
+ 2011-05-25 | Zucker 11
2
+ * add Zucker::constants to check if cube has been required (e.g. Zucker::AliasFor if 'zucker/alias_for' is loaded)
3
+ * rbx tweaks
4
+ * don't define Binding#vars on rbx (prevent endless recursion)
5
+ * sandbox-not-working warning
6
+ * add Kernel#ignore_sigquit!
7
+ * fix warnings
8
+ * doc tweaks
9
+
10
+
1
11
  2011-04-29 | Zucker 10
2
12
  * doc/spec tweaks
3
13
  * make test.rubygems.org-testable
data/Rakefile CHANGED
@@ -42,7 +42,7 @@ end
42
42
 
43
43
  desc "Install the gem locally"
44
44
  task :install => :gem do
45
- sh %{gem install pkg/#{gemspec.name}-#{gemspec.version}}
45
+ sh %{gem install pkg/#{gemspec.name}-#{gemspec.version} --no-rdoc --no-ri}
46
46
  end
47
47
 
48
48
  desc "Validate the gemspec"
@@ -60,7 +60,7 @@ task 'prepare_release' => %w[spec] do # run specs
60
60
  # bump version and date
61
61
  require 'date'
62
62
  zucker_rb = File.read('lib/zucker.rb')
63
- zucker_rb.sub! /VERSION\s*=.*(\d+).*$/ do "VERSION = '#{ @v = $1.to_i + 1 }'" end
63
+ zucker_rb.sub! /VERSION\s*=.*?(\d+).*?$/ do "VERSION = '#{ @v = $1.to_i + 1 }'" end
64
64
  zucker_rb.sub! /DATE\s*=.*$/, "DATE = '#{Date.today}'"
65
65
  File.open 'lib/zucker.rb','w' do |f| f.write zucker_rb end
66
66
 
data/desc/binding.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  binding:
2
- summary: Adds a ⇧Binding#vars⇧. It gives you information about the current environment variables.
2
+ summary: Adds ⇧Binding#vars⇧. It gives you information about the current environment variables.
3
3
  methods:
4
4
  Binding#variables, Binding#vars: |
5
5
  # shows your current environment's variables, irb example:
@@ -18,5 +18,5 @@ binding:
18
18
  - false
19
19
  versions:
20
20
  - 1.9
21
- - 1.8
21
+ - 1.8 (no rbx support)
22
22
 
data/desc/kernel.yaml CHANGED
@@ -4,10 +4,11 @@ kernel:
4
4
  methods:
5
5
  activate_warnings!: "activate_warnings! # sets $VERBOSE to 1"
6
6
  deactivate_warnings!: "deactivate_warnings! # sets $VERBOSE to 0"
7
- executed_directly?, directly_executed, standalone?: "executed_directly? # checks, if the current file is run directly -> true"
7
+ executed_directly?, directly_executed?, standalone?: "executed_directly? # checks, if the current file is run directly -> true"
8
8
  library?: "library? # checks, if the current file is run directly -> false"
9
9
  irb?: "irb? # returns false if not called from IRB or RIPL"
10
10
  ignore_sigint!: "ignore_sigint! # blocks CTRL+C"
11
+ ignore_sigquit!: "ignore_sigquit! # blocks CTRL+\\"
11
12
  versions:
12
13
  - 1.9
13
14
  - 1.8
data/desc/string.yaml CHANGED
@@ -3,8 +3,8 @@ string:
3
3
  why: Strings cannot be comfortable enough ;).
4
4
  methods:
5
5
  String#-: "'1234abc5678' - 'b' - /\d/ # => ac"
6
- String#^: "'Yes vs No'^7 # => 'No'"
7
- String#lchomp: "' Yes'.lchomp # => 'Yes'"
6
+ String#^: "'Yes vs No'^2 # => 's vs No'"
7
+ String#lchomp: "' Yes'.lchomp # => ' Yes'"
8
8
  String#lchomp!: "# mutable lchomp version"
9
9
  String#ords: "'Hallo'.ords # => [72, 97, 108, 108, 111]"
10
10
  String#constantize: |
data/doc/zucker_doc.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <head>
6
6
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
7
 
8
- <title>Ruby Zucker 10</title>
8
+ <title>Ruby Zucker 11</title>
9
9
  <script type="text/javascript">
10
10
  var show = function(snippet){
11
11
  document.getElementById( snippet ).style.display = 'block'
@@ -281,7 +281,7 @@ table.source td { padding: 2px 4px; vertical-align: top; }
281
281
  <body>
282
282
  <div id="world">
283
283
  <img class="rubylogo" alt="ruby" src="data:image/png;base64,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" />
284
- <h1>Ruby Zucker 10</h1>
284
+ <h1>Ruby Zucker 11</h1>
285
285
  <h2 style="clear:both">What is it?</h2>
286
286
  <p class="text">Zucker (<a href="http://www.forvo.com/word/zucker/">pronunciation</a>) is the German word for sugar. It adds syntactic sugar in the form of independent, small scripts that make Ruby even more sweet. It adds a lot of useful helper methods for an improved readability and usage. Almost every Zucker feature comes with specs. Everything is documented on this page. The source is available at <a href="http://github.com/janlelis/zucker">github</a>.</p>
287
287
 
@@ -361,6 +361,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">egonil</span><
361
361
  <span class="r">end</span>
362
362
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_egonil_source">(<a href="javascript:show('egonil_source')">show</a>)</span>
363
363
  <pre class="source" id="egonil_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
364
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Egonil</span> = <span class="pc">true</span> <span class="r">end</span>
364
365
 
365
366
  <span class="c"># code by Yohan, slightly edited and comments by me</span>
366
367
  <span class="r">def</span> <span class="fu">egonil</span>(&amp;block)
@@ -456,6 +457,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#iterate
456
457
  <span class="r">end</span>
457
458
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_iterate_source">(<a href="javascript:show('iterate_source')">show</a>)</span>
458
459
  <pre class="source" id="iterate_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
460
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Iterate</span> = <span class="pc">true</span> <span class="r">end</span>
459
461
 
460
462
  <span class="r">def</span> <span class="fu">iterate</span>(*params)
461
463
  <span class="c"># params.shift.zip(*params).each{ |*elements| yield *elements }</span>
@@ -471,9 +473,9 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#iterate
471
473
  <span class="r">else</span> <span class="c"># multiple params</span>
472
474
  max_size = [first, *params].max_by(&amp;<span class="sy">:count</span>).size
473
475
  padded_first = first.to_a + [<span class="pc">nil</span>]*(max_size - first.count) <span class="c"># append nils</span>
474
- obj = padded_first.zip *params
476
+ obj = padded_first.zip(*params)
475
477
  <span class="r">if</span> block_given?
476
- obj.map{|es| <span class="r">yield</span> *es }
478
+ obj.map{|es| <span class="r">yield</span>(*es) }
477
479
  <span class="r">else</span>
478
480
  obj.map.to_enum
479
481
  <span class="r">end</span>
@@ -483,7 +485,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#iterate
483
485
  <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/iterate">github wiki</a></td></tr></table> <h3 title="require 'zucker/kernel'" id="kernel">kernel</h3>
484
486
  <table class="cube_table"
485
487
  id="kernel_cube"
486
- title="require 'zucker/kernel'"> <tr><th>Summary</th> <td>Some useful general shortcut methods.</td></tr><tr><th>Why?</th> <td>Readability.</td></tr><tr><th>Methods/Usage</th> <td><h5>activate_warnings!</h5><pre class="usage source" style="display:block">activate_warnings! <span class="c"># sets $VERBOSE to 1</span></pre><h5>deactivate_warnings!</h5><pre class="usage source" style="display:block">deactivate_warnings! <span class="c"># sets $VERBOSE to 0</span></pre><h5>executed_directly?, directly_executed, standalone?</h5><pre class="usage source" style="display:block">executed_directly? <span class="c"># checks, if the current file is run directly -&gt; true</span></pre><h5>library?</h5><pre class="usage source" style="display:block">library? <span class="c"># checks, if the current file is run directly -&gt; false</span></pre><h5>irb?</h5><pre class="usage source" style="display:block">irb? <span class="c"># returns false if not called from IRB or RIPL</span></pre><h5>ignore_sigint!</h5><pre class="usage source" style="display:block">ignore_sigint! <span class="c"># blocks CTRL+C</span></pre></td></tr><tr><th>Specification</th> <td> <span id="show_kernel_spec">(<a href="javascript:show('kernel_spec')">show</a>)</span>
488
+ title="require 'zucker/kernel'"> <tr><th>Summary</th> <td>Some useful general shortcut methods.</td></tr><tr><th>Why?</th> <td>Readability.</td></tr><tr><th>Methods/Usage</th> <td><h5>activate_warnings!</h5><pre class="usage source" style="display:block">activate_warnings! <span class="c"># sets $VERBOSE to 1</span></pre><h5>deactivate_warnings!</h5><pre class="usage source" style="display:block">deactivate_warnings! <span class="c"># sets $VERBOSE to 0</span></pre><h5>executed_directly?, directly_executed?, standalone?</h5><pre class="usage source" style="display:block">executed_directly? <span class="c"># checks, if the current file is run directly -&gt; true</span></pre><h5>library?</h5><pre class="usage source" style="display:block">library? <span class="c"># checks, if the current file is run directly -&gt; false</span></pre><h5>irb?</h5><pre class="usage source" style="display:block">irb? <span class="c"># returns false if not called from IRB or RIPL</span></pre><h5>ignore_sigint!</h5><pre class="usage source" style="display:block">ignore_sigint! <span class="c"># blocks CTRL+C</span></pre><h5>ignore_sigquit!</h5><pre class="usage source" style="display:block">ignore_sigquit! <span class="c"># blocks CTRL+\</span></pre></td></tr><tr><th>Specification</th> <td> <span id="show_kernel_spec">(<a href="javascript:show('kernel_spec')">show</a>)</span>
487
489
  <pre class="source" id="kernel_spec">require <span class="s"><span class="dl">'</span><span class="k">zucker/kernel</span><span class="dl">'</span></span>
488
490
 
489
491
  describe <span class="s"><span class="dl">'</span><span class="k">activate_warnings!</span><span class="dl">'</span></span> <span class="r">do</span>
@@ -513,15 +515,21 @@ describe <span class="s"><span class="dl">'</span><span class="k">executed_direc
513
515
  <span class="r">end</span>
514
516
 
515
517
  describe <span class="s"><span class="dl">'</span><span class="k">irb?</span><span class="dl">'</span></span> <span class="r">do</span>
516
- it <span class="s"><span class="dl">'</span><span class="k">should return true if called in IRB</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
518
+ it <span class="s"><span class="dl">'</span><span class="k">should return true if called in IRB or RIPL</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
517
519
  <span class="r">end</span>
518
520
 
519
521
  describe <span class="s"><span class="dl">'</span><span class="k">ignore_sigint!</span><span class="dl">'</span></span> <span class="r">do</span>
520
522
  it <span class="s"><span class="dl">'</span><span class="k">should catch ctrl+c signals</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
521
523
  <span class="r">end</span>
522
524
 
525
+ describe <span class="s"><span class="dl">'</span><span class="k">ignore_sigquit!</span><span class="dl">'</span></span> <span class="r">do</span>
526
+ it <span class="s"><span class="dl">'</span><span class="k">should catch ctrl+</span><span class="k">\ </span><span class="k">signals</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
527
+ <span class="r">end</span>
528
+
529
+
523
530
  <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_kernel_source">(<a href="javascript:show('kernel_source')">show</a>)</span>
524
531
  <pre class="source" id="kernel_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
532
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Kernel</span> = <span class="pc">true</span> <span class="r">end</span>
525
533
 
526
534
  <span class="r">module</span> <span class="cl">Kernel</span>
527
535
  private
@@ -551,7 +559,12 @@ describe <span class="s"><span class="dl">'</span><span class="k">ignore_sigint!
551
559
  <span class="r">end</span>
552
560
 
553
561
  <span class="r">def</span> <span class="fu">ignore_sigint!</span> <span class="c"># ctrl+c</span>
554
- <span class="co">Signal</span>.trap *<span class="s"><span class="dl">%w|</span><span class="k">SIGINT IGNORE</span><span class="dl">|</span></span>
562
+ <span class="co">Signal</span>.trap(*<span class="s"><span class="dl">%w|</span><span class="k">SIGINT IGNORE</span><span class="dl">|</span></span>)
563
+ <span class="pc">true</span>
564
+ <span class="r">end</span>
565
+
566
+ <span class="r">def</span> <span class="fu">ignore_sigquit!</span> <span class="c"># ctrl+\</span>
567
+ <span class="co">Signal</span>.trap(*<span class="s"><span class="dl">%w|</span><span class="k">SIGQUIT IGNORE</span><span class="dl">|</span></span>)
555
568
  <span class="pc">true</span>
556
569
  <span class="r">end</span>
557
570
  <span class="r">end</span>
@@ -567,7 +580,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">ignore_sigint!
567
580
  <pre class="source" id="sandbox_spec">require <span class="s"><span class="dl">'</span><span class="k">zucker/sandbox</span><span class="dl">'</span></span>
568
581
 
569
582
  describe <span class="s"><span class="dl">'</span><span class="k">sandbox</span><span class="dl">'</span></span> <span class="r">do</span>
570
- <span class="r">unless</span> <span class="r">defined?</span>(<span class="co">RUBY_ENGINE</span>) &amp;&amp; <span class="co">RUBY_ENGINE</span> == <span class="s"><span class="dl">'</span><span class="k">jruby</span><span class="dl">'</span></span>
583
+ <span class="r">unless</span> <span class="r">defined?</span>(<span class="co">RUBY_ENGINE</span>) &amp;&amp; ( <span class="co">RUBY_ENGINE</span> == <span class="s"><span class="dl">'</span><span class="k">jruby</span><span class="dl">'</span></span> || <span class="co">RUBY_ENGINE</span> == <span class="s"><span class="dl">'</span><span class="k">rbx</span><span class="dl">'</span></span> )
571
584
  it <span class="s"><span class="dl">'</span><span class="k">should throw a SecurityError if bad commands are issued</span><span class="dl">'</span></span> <span class="r">do</span>
572
585
  proc <span class="r">do</span>
573
586
  sandbox <span class="r">do</span>
@@ -578,11 +591,13 @@ describe <span class="s"><span class="dl">'</span><span class="k">sandbox</span>
578
591
  <span class="r">end</span>
579
592
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_sandbox_source">(<a href="javascript:show('sandbox_source')">show</a>)</span>
580
593
  <pre class="source" id="sandbox_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
594
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Sandbox</span> = <span class="pc">true</span> <span class="r">end</span>
581
595
 
582
596
  <span class="r">module</span> <span class="cl">Kernel</span>
583
597
  private
584
598
 
585
599
  <span class="r">def</span> <span class="fu">sandbox</span>
600
+ warn <span class="s"><span class="dl">&quot;</span><span class="k">zucker: sandbox does not work in rbx and jruby</span><span class="dl">&quot;</span></span> <span class="r">if</span> <span class="r">defined?</span>(<span class="co">RUBY_ENGINE</span>) &amp;&amp; ( <span class="co">RUBY_ENGINE</span> == <span class="s"><span class="dl">'</span><span class="k">jruby</span><span class="dl">'</span></span> || <span class="co">RUBY_ENGINE</span> == <span class="s"><span class="dl">'</span><span class="k">rbx</span><span class="dl">'</span></span> )
586
601
  <span class="co">Thread</span>.start <span class="r">do</span>
587
602
  <span class="gv">$SAFE</span> = <span class="i">4</span>
588
603
  <span class="r">yield</span>
@@ -619,13 +634,14 @@ describe <span class="s"><span class="dl">'</span><span class="k">make_new</span
619
634
  <span class="r">end</span>
620
635
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_tap_source">(<a href="javascript:show('tap_source')">show</a>)</span>
621
636
  <pre class="source" id="tap_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
637
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Tap</span> = <span class="pc">true</span> <span class="r">end</span>
622
638
 
623
639
  <span class="r">def</span> <span class="fu">tap_on</span>(obj, &amp;block)
624
- obj.tap &amp;block
640
+ obj.tap(&amp;block)
625
641
  <span class="r">end</span>
626
642
 
627
643
  <span class="r">def</span> <span class="fu">make_new</span>(what, *args, &amp;block)
628
- what.new(*args).tap &amp;block
644
+ what.new(*args).tap(&amp;block)
629
645
  <span class="r">end</span>
630
646
 
631
647
  <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/tap">github wiki</a></td></tr></table>
@@ -649,6 +665,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">RubyEngine</sp
649
665
  <span class="r">end</span>
650
666
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_engine_source">(<a href="javascript:show('engine_source')">show</a>)</span>
651
667
  <pre class="source" id="engine_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
668
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Engine</span> = <span class="pc">true</span> <span class="r">end</span>
652
669
 
653
670
  <span class="r">module</span> <span class="cl">RubyEngine</span>
654
671
  <span class="c"># try to guess the interpreter</span>
@@ -737,6 +754,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Info</span><sp
737
754
  <pre class="source" id="info_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
738
755
  require <span class="s"><span class="dl">'</span><span class="k">rbconfig</span><span class="dl">'</span></span>
739
756
  require <span class="s"><span class="dl">'</span><span class="k">etc</span><span class="dl">'</span></span>
757
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Info</span> = <span class="pc">true</span> <span class="r">end</span>
740
758
 
741
759
  <span class="r">module</span> <span class="cl">Info</span>
742
760
  <span class="r">class</span> &lt;&lt; <span class="cl">self</span>
@@ -966,6 +984,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">OS.is?</span><
966
984
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_os_source">(<a href="javascript:show('os_source')">show</a>)</span>
967
985
  <pre class="source" id="os_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
968
986
  require <span class="s"><span class="dl">'</span><span class="k">rbconfig</span><span class="dl">'</span></span>
987
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Os</span> = <span class="pc">true</span> <span class="r">end</span>
969
988
 
970
989
  <span class="r">module</span> <span class="cl">OS</span>
971
990
  <span class="r">class</span> &lt;&lt; <span class="cl">self</span>
@@ -1053,7 +1072,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">RubyVersion</s
1053
1072
  <span class="co">RubyVersion</span>.to_s.should == <span class="s"><span class="dl">'</span><span class="k">1.8.7</span><span class="dl">'</span></span>
1054
1073
  <span class="r">end</span>
1055
1074
 
1056
- context <span class="s"><span class="dl">'</span><span class="k">using is method with parameter</span><span class="dl">'</span></span> <span class="r">do</span>
1075
+ context <span class="s"><span class="dl">'</span><span class="k">with &quot;is&quot; method, with parameter</span><span class="dl">'</span></span> <span class="r">do</span>
1057
1076
  it <span class="s"><span class="dl">'</span><span class="k">should check for main version (1.8 or 1.9) when Float paramater is given</span><span class="dl">'</span></span> <span class="r">do</span>
1058
1077
  <span class="co">RubyVersion</span>.is?( <span class="fl">1.8</span> ).should == <span class="pc">true</span>
1059
1078
  <span class="co">RubyVersion</span>.is?( <span class="fl">1.9</span> ).should == <span class="pc">false</span>
@@ -1064,7 +1083,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">RubyVersion</s
1064
1083
  <span class="r">end</span>
1065
1084
  <span class="r">end</span>
1066
1085
 
1067
- context <span class="s"><span class="dl">'</span><span class="k">using is method without parameter but method chaining</span><span class="dl">'</span></span> <span class="r">do</span>
1086
+ context <span class="s"><span class="dl">'</span><span class="k">with &quot;is&quot; method, without parameter, but method chaining</span><span class="dl">'</span></span> <span class="r">do</span>
1068
1087
  it <span class="s"><span class="dl">'</span><span class="k">should return a string for usage with comparison operators</span><span class="dl">'</span></span> <span class="r">do</span>
1069
1088
  (<span class="co">RubyVersion</span>.is &gt; <span class="s"><span class="dl">'</span><span class="k">1.8.7</span><span class="dl">'</span></span>).should == <span class="pc">false</span>
1070
1089
  (<span class="co">RubyVersion</span> &lt;= <span class="s"><span class="dl">'</span><span class="k">1.8.7</span><span class="dl">'</span></span>).should == <span class="pc">true</span>
@@ -1098,6 +1117,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">RubyVersion</s
1098
1117
  <pre class="source" id="version_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1099
1118
  require <span class="s"><span class="dl">'</span><span class="k">date</span><span class="dl">'</span></span>
1100
1119
  require <span class="s"><span class="dl">'</span><span class="k">time</span><span class="dl">'</span></span>
1120
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Version</span> = <span class="pc">true</span> <span class="r">end</span>
1101
1121
 
1102
1122
  <span class="r">module</span> <span class="cl">RubyVersion</span>
1103
1123
  <span class="r">class</span> &lt;&lt; <span class="cl">self</span>
@@ -1244,6 +1264,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Array#chrs</sp
1244
1264
  <span class="r">end</span>
1245
1265
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_array_source">(<a href="javascript:show('array_source')">show</a>)</span>
1246
1266
  <pre class="source" id="array_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1267
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Array</span> = <span class="pc">true</span> <span class="r">end</span>
1247
1268
 
1248
1269
  <span class="r">class</span> <span class="cl">Array</span>
1249
1270
  <span class="r">def</span> <span class="fu">^</span>(other) <span class="c"># TODO: more efficient</span>
@@ -1278,12 +1299,13 @@ describe <span class="s"><span class="dl">'</span><span class="k">Enumerable#mas
1278
1299
  <span class="r">end</span>
1279
1300
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_enumerable_source">(<a href="javascript:show('enumerable_source')">show</a>)</span>
1280
1301
  <pre class="source" id="enumerable_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1302
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Enumerable</span> = <span class="pc">true</span> <span class="r">end</span>
1281
1303
 
1282
1304
  <span class="r">module</span> <span class="cl">Enumerable</span>
1283
1305
  <span class="r">def</span> <span class="fu">mash</span>
1284
1306
  ret = {}
1285
1307
  each{ |kv|
1286
- ret.store *( <span class="r">yield</span>(kv)[<span class="i">0</span>,<span class="i">2</span>] )
1308
+ ret.store( *(<span class="r">yield</span>(kv)[<span class="i">0</span>,<span class="i">2</span>]) )
1287
1309
  }
1288
1310
  ret
1289
1311
  <span class="r">end</span>
@@ -1341,7 +1363,10 @@ describe <span class="s"><span class="dl">'</span><span class="k">File.delete!</
1341
1363
  res.should be_false
1342
1364
  <span class="r">end</span>
1343
1365
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_file_source">(<a href="javascript:show('file_source')">show</a>)</span>
1344
- <pre class="source" id="file_source"><span class="r">class</span> &lt;&lt; <span class="cl">File</span>
1366
+ <pre class="source" id="file_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1367
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">File</span> = <span class="pc">true</span> <span class="r">end</span>
1368
+
1369
+ <span class="r">class</span> &lt;&lt; <span class="cl">File</span>
1345
1370
  <span class="r">def</span> <span class="fu">gsub</span>(filename, regex_hash)
1346
1371
  data = <span class="co">File</span>.read filename
1347
1372
  <span class="co">File</span>.open(filename,<span class="s"><span class="dl">'</span><span class="k">w</span><span class="dl">'</span></span>){ |file|
@@ -1362,7 +1387,9 @@ describe <span class="s"><span class="dl">'</span><span class="k">File.delete!</
1362
1387
  <span class="r">return</span> <span class="pc">nil</span> <span class="r">if</span> !<span class="co">File</span>.exist?(filename)
1363
1388
  <span class="co">File</span>.delete filename
1364
1389
  <span class="r">end</span>
1365
- <span class="r">end</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/file">github wiki</a></td></tr></table> <h3 title="require 'zucker/hash'" id="hash">hash</h3>
1390
+ <span class="r">end</span>
1391
+
1392
+ <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/file">github wiki</a></td></tr></table> <h3 title="require 'zucker/hash'" id="hash">hash</h3>
1366
1393
  <table class="cube_table"
1367
1394
  id="hash_cube"
1368
1395
  title="require 'zucker/hash'"> <tr><th>Summary</th> <td>Some sugar for dealing with hashes.</td></tr><tr><th>Methods/Usage</th> <td><h5>Hash.zip</h5><pre class="usage source" style="display:block"><span class="co">Hash</span>.zip [<span class="i">1</span>,<span class="i">2</span>,<span class="i">3</span>], [<span class="i">4</span>,<span class="i">5</span>,<span class="i">6</span>] <span class="c"># =&gt; {1=&gt;4, 2=&gt;5, 3=&gt;6}</span></pre><h5>Hash#&lt;&lt;</h5><pre class="usage source" style="display:block">{<span class="i">1</span>=&gt;<span class="i">2</span>} &lt;&lt; [<span class="i">3</span>, <span class="i">4</span>] <span class="c"># =&gt; { 1=&gt;2, 3=&gt;4 }</span>
@@ -1393,6 +1420,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Hash#&amp;</sp
1393
1420
  <span class="r">end</span>
1394
1421
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_hash_source">(<a href="javascript:show('hash_source')">show</a>)</span>
1395
1422
  <pre class="source" id="hash_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1423
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Hash</span> = <span class="pc">true</span> <span class="r">end</span>
1396
1424
 
1397
1425
  <span class="r">class</span> <span class="cl">Hash</span>
1398
1426
  <span class="r">def</span> <span class="pc">self</span>.<span class="fu">zip</span>(keys,values)
@@ -1420,7 +1448,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Hash#&amp;</sp
1420
1448
  <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/hash">github wiki</a></td></tr></table> <h3 title="require 'zucker/string'" id="string">string</h3>
1421
1449
  <table class="cube_table"
1422
1450
  id="string_cube"
1423
- title="require 'zucker/string'"> <tr><th>Summary</th> <td><code>String</code> extensions.</td></tr><tr><th>Why?</th> <td>Strings cannot be comfortable enough ;).</td></tr><tr><th>Methods/Usage</th> <td><h5>String#-</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">1234abc5678</span><span class="dl">'</span></span> - <span class="s"><span class="dl">'</span><span class="k">b</span><span class="dl">'</span></span> - <span class="rx"><span class="dl">/</span><span class="ch">\d</span><span class="dl">/</span></span> <span class="c"># =&gt; ac</span></pre><h5>String#^</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">Yes vs No</span><span class="dl">'</span></span>^<span class="i">7</span> <span class="c"># =&gt; 'No'</span></pre><h5>String#lchomp</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k"> Yes</span><span class="dl">'</span></span>.lchomp <span class="c"># =&gt; 'Yes'</span></pre><h5>String#lchomp!</h5><pre class="usage source" style="display:block"><span class="c"># mutable lchomp version</span></pre><h5>String#ords</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">Hallo</span><span class="dl">'</span></span>.ords <span class="c"># =&gt; [72, 97, 108, 108, 111]</span></pre><h5>String#constantize</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">Object</span><span class="dl">'</span></span>.constantize <span class="c"># =&gt; Object</span>
1451
+ title="require 'zucker/string'"> <tr><th>Summary</th> <td><code>String</code> extensions.</td></tr><tr><th>Why?</th> <td>Strings cannot be comfortable enough ;).</td></tr><tr><th>Methods/Usage</th> <td><h5>String#-</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">1234abc5678</span><span class="dl">'</span></span> - <span class="s"><span class="dl">'</span><span class="k">b</span><span class="dl">'</span></span> - <span class="rx"><span class="dl">/</span><span class="ch">\d</span><span class="dl">/</span></span> <span class="c"># =&gt; ac</span></pre><h5>String#^</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">Yes vs No</span><span class="dl">'</span></span>^<span class="i">2</span> <span class="c"># =&gt; 's vs No'</span></pre><h5>String#lchomp</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k"> Yes</span><span class="dl">'</span></span>.lchomp <span class="c"># =&gt; ' Yes'</span></pre><h5>String#lchomp!</h5><pre class="usage source" style="display:block"><span class="c"># mutable lchomp version</span></pre><h5>String#ords</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">Hallo</span><span class="dl">'</span></span>.ords <span class="c"># =&gt; [72, 97, 108, 108, 111]</span></pre><h5>String#constantize</h5><pre class="usage source" style="display:block"><span class="s"><span class="dl">'</span><span class="k">Object</span><span class="dl">'</span></span>.constantize <span class="c"># =&gt; Object</span>
1424
1452
  <span class="s"><span class="dl">'</span><span class="k">Spec::VERSION</span><span class="dl">'</span></span>.constantize <span class="c"># =&gt; Spec::VERSION if rspec is loaded</span>
1425
1453
  <span class="c"># you can also pass a parameter or block to define what happens, when constant does not exist</span>
1426
1454
  <span class="s"><span class="dl">'</span><span class="k">IdontExist</span><span class="dl">'</span></span>.constantize(<span class="co">Array</span>) <span class="c"># =&gt; Array</span>
@@ -1493,6 +1521,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">String#ords</s
1493
1521
  <span class="r">end</span>
1494
1522
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_string_source">(<a href="javascript:show('string_source')">show</a>)</span>
1495
1523
  <pre class="source" id="string_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1524
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">String</span> = <span class="pc">true</span> <span class="r">end</span>
1496
1525
 
1497
1526
  <span class="r">class</span> <span class="cl">String</span>
1498
1527
  <span class="r">def</span> <span class="fu">-</span>(rem)
@@ -1574,6 +1603,7 @@ describe <span class="co">String</span>, <span class="s"><span class="dl">'</spa
1574
1603
  <span class="r">end</span>
1575
1604
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_unary_source">(<a href="javascript:show('unary_source')">show</a>)</span>
1576
1605
  <pre class="source" id="unary_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1606
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Unary</span> = <span class="pc">true</span> <span class="r">end</span>
1577
1607
 
1578
1608
  <span class="r">class</span> <span class="cl">String</span>
1579
1609
  <span class="r">def</span> <span class="fu">+@</span>
@@ -1619,6 +1649,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">String#|</span
1619
1649
  it_should_behave_like <span class="s"><span class="dl">'</span><span class="k">Regexp.union operator</span><span class="dl">'</span></span>
1620
1650
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_union_source">(<a href="javascript:show('union_source')">show</a>)</span>
1621
1651
  <pre class="source" id="union_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1652
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Union</span> = <span class="pc">true</span> <span class="r">end</span>
1622
1653
 
1623
1654
  <span class="r">class</span> <span class="cl">Regexp</span>
1624
1655
  <span class="r">def</span> <span class="fu">|</span>(arg)
@@ -1661,6 +1692,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#blank?<
1661
1692
  <span class="r">end</span>
1662
1693
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_blank_source">(<a href="javascript:show('blank_source')">show</a>)</span>
1663
1694
  <pre class="source" id="blank_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1695
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Blank</span> = <span class="pc">true</span> <span class="r">end</span>
1664
1696
 
1665
1697
  <span class="r">class</span> <span class="cl">Object</span>
1666
1698
  <span class="r">def</span> <span class="fu">blank?</span>
@@ -1705,6 +1737,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#mcopy</
1705
1737
  <span class="r">end</span>
1706
1738
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_mcopy_source">(<a href="javascript:show('mcopy_source')">show</a>)</span>
1707
1739
  <pre class="source" id="mcopy_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1740
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Mcopy</span> = <span class="pc">true</span> <span class="r">end</span>
1708
1741
 
1709
1742
  <span class="r">class</span> <span class="cl">Object</span>
1710
1743
  <span class="r">def</span> <span class="fu">mcopy</span>
@@ -1730,6 +1763,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#mcopy</
1730
1763
 
1731
1764
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_not_source">(<a href="javascript:show('not_source')">show</a>)</span>
1732
1765
  <pre class="source" id="not_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1766
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Not</span> = <span class="pc">true</span> <span class="r">end</span>
1733
1767
 
1734
1768
  <span class="r">class</span> <span class="cl">Object</span>
1735
1769
  <span class="r">def</span> <span class="fu">not</span>
@@ -1771,6 +1805,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Array#to_proc<
1771
1805
  <span class="r">end</span>
1772
1806
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_array_to_proc_source">(<a href="javascript:show('array_to_proc_source')">show</a>)</span>
1773
1807
  <pre class="source" id="array_to_proc_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1808
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">ArrayToProc</span> = <span class="pc">true</span> <span class="r">end</span>
1774
1809
 
1775
1810
  <span class="r">class</span> <span class="cl">Array</span>
1776
1811
  <span class="r">def</span> <span class="fu">to_proc</span>
@@ -1780,7 +1815,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Array#to_proc<
1780
1815
  nested_array.to_proc.call result
1781
1816
  }
1782
1817
  <span class="r">else</span>
1783
- obj.send *<span class="pc">self</span>
1818
+ obj.send(*<span class="pc">self</span>)
1784
1819
  <span class="r">end</span>
1785
1820
  }
1786
1821
  <span class="r">end</span>
@@ -1799,11 +1834,12 @@ describe <span class="s"><span class="dl">'</span><span class="k">Class#to_proc<
1799
1834
  <span class="r">end</span>
1800
1835
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_class_to_proc_source">(<a href="javascript:show('class_to_proc_source')">show</a>)</span>
1801
1836
  <pre class="source" id="class_to_proc_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1837
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">ClassToProc</span> = <span class="pc">true</span> <span class="r">end</span>
1802
1838
 
1803
1839
  <span class="r">class</span> <span class="cl">Class</span>
1804
1840
  <span class="r">def</span> <span class="fu">to_proc</span>
1805
1841
  <span class="co">Proc</span>.new <span class="r">do</span> |*args|
1806
- <span class="pc">self</span>.new *args
1842
+ <span class="pc">self</span>.new(*args)
1807
1843
  <span class="r">end</span>
1808
1844
  <span class="r">end</span>
1809
1845
  <span class="r">end</span>
@@ -1827,6 +1863,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Hash#to_proc</
1827
1863
  <span class="r">end</span>
1828
1864
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_hash_to_proc_source">(<a href="javascript:show('hash_to_proc_source')">show</a>)</span>
1829
1865
  <pre class="source" id="hash_to_proc_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1866
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">HashToProc</span> = <span class="pc">true</span> <span class="r">end</span>
1830
1867
 
1831
1868
  <span class="r">class</span> <span class="cl">Hash</span>
1832
1869
  <span class="r">def</span> <span class="fu">to_proc</span>
@@ -1855,6 +1892,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#to_proc
1855
1892
  <span class="r">end</span>
1856
1893
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_regexp_to_proc_source">(<a href="javascript:show('regexp_to_proc_source')">show</a>)</span>
1857
1894
  <pre class="source" id="regexp_to_proc_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
1895
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">RegexpToProc</span> = <span class="pc">true</span> <span class="r">end</span>
1858
1896
 
1859
1897
  <span class="r">class</span> <span class="cl">Regexp</span>
1860
1898
  <span class="r">def</span> <span class="fu">to_proc</span>
@@ -1996,6 +2034,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">alias_methods_
1996
2034
  <span class="r">end</span>
1997
2035
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_alias_for_source">(<a href="javascript:show('alias_for_source')">show</a>)</span>
1998
2036
  <pre class="source" id="alias_for_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2037
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">AliasFor</span> = <span class="pc">true</span> <span class="r">end</span>
1999
2038
 
2000
2039
  <span class="r">def</span> <span class="fu">alias_for</span>(m, *aliases)
2001
2040
  aliases.each{ |a|
@@ -2032,6 +2071,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">(aliases)</spa
2032
2071
  <span class="r">end</span>
2033
2072
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_aliases_source">(<a href="javascript:show('aliases_source')">show</a>)</span>
2034
2073
  <pre class="source" id="aliases_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2074
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Aliases</span> = <span class="pc">true</span> <span class="r">end</span>
2035
2075
 
2036
2076
  <span class="r">class</span> <span class="cl">Object</span>
2037
2077
  <span class="r">alias</span> <span class="fu">is_an?</span> <span class="fu">is_a?</span> <span class="c"># thanks to utility_belt</span>
@@ -2110,6 +2150,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">instance_varia
2110
2150
  <span class="r">end</span>
2111
2151
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_ivars_source">(<a href="javascript:show('ivars_source')">show</a>)</span>
2112
2152
  <pre class="source" id="ivars_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2153
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Ivars</span> = <span class="pc">true</span> <span class="r">end</span>
2113
2154
 
2114
2155
  <span class="r">def</span> <span class="fu">instance_variables_from</span>(obj, *only)
2115
2156
  iter =
@@ -2212,6 +2253,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">square_bracket
2212
2253
 
2213
2254
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_square_brackets_for_source">(<a href="javascript:show('square_brackets_for_source')">show</a>)</span>
2214
2255
  <pre class="source" id="square_brackets_for_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2256
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">SquareBracketsFor</span> = <span class="pc">true</span> <span class="r">end</span>
2215
2257
 
2216
2258
  <span class="r">class</span> <span class="cl">Module</span>
2217
2259
  <span class="r">def</span> <span class="fu">square_brackets_for</span>(ivar, assignment = <span class="pc">true</span>)
@@ -2238,7 +2280,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">square_bracket
2238
2280
  <h3 title="require 'zucker/binding'" id="binding">binding</h3>
2239
2281
  <table class="cube_table"
2240
2282
  id="binding_cube"
2241
- title="require 'zucker/binding'"> <tr><th>Summary</th> <td>Adds a <code>Binding#vars</code>. It gives you information about the current environment variables.</td></tr><tr><th>Methods/Usage</th> <td><h5>Binding#variables, Binding#vars</h5><pre class="usage source" style="display:block"><span class="c"># shows your current environment's variables, irb example:</span>
2283
+ title="require 'zucker/binding'"> <tr><th>Summary</th> <td>Adds <code>Binding#vars</code>. It gives you information about the current environment variables.</td></tr><tr><th>Methods/Usage</th> <td><h5>Binding#variables, Binding#vars</h5><pre class="usage source" style="display:block"><span class="c"># shows your current environment's variables, irb example:</span>
2242
2284
  &gt;&gt; a=<span class="i">3</span>
2243
2285
  =&gt; <span class="i">3</span>
2244
2286
  &gt;&gt; binding.vars
@@ -2259,21 +2301,23 @@ describe <span class="s"><span class="dl">'</span><span class="k">Binding#variab
2259
2301
  it <span class="s"><span class="dl">'</span><span class="k">should output information about the current environment</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
2260
2302
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_binding_source">(<a href="javascript:show('binding_source')">show</a>)</span>
2261
2303
  <pre class="source" id="binding_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2304
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Binding</span> = <span class="pc">true</span> <span class="r">end</span>
2305
+
2306
+ <span class="r">unless</span> <span class="r">defined?</span>(<span class="co">RUBY_ENGINE</span>) &amp;&amp; <span class="co">RUBY_ENGINE</span> == <span class="s"><span class="dl">'</span><span class="k">rbx</span><span class="dl">'</span></span>
2307
+ <span class="r">class</span> <span class="cl">Binding</span>
2308
+ <span class="r">def</span> <span class="fu">variables</span>
2309
+ put_vars = lambda { |array|
2310
+ <span class="r">if</span> array.empty?
2311
+ <span class="s"><span class="dl">'</span><span class="k"> - none</span><span class="dl">'</span></span>
2312
+ <span class="r">else</span>
2313
+ array.map{|e|
2314
+ val = (<span class="pc">self</span>.eval <span class="s"><span class="dl">&quot;</span><span class="il"><span class="idl">#{</span>e<span class="idl">}</span></span><span class="dl">&quot;</span></span>).inspect
2315
+ <span class="s"><span class="dl">&quot;</span><span class="k"> - </span><span class="il"><span class="idl">#{</span>e<span class="idl">}</span></span><span class="k">: </span><span class="il"><span class="idl">#{</span> val <span class="idl">}</span></span><span class="dl">&quot;</span></span>
2316
+ }.join <span class="s"><span class="dl">&quot;</span><span class="ch">\n</span><span class="dl">&quot;</span></span>
2317
+ <span class="r">end</span>
2318
+ }
2262
2319
 
2263
- <span class="r">class</span> <span class="cl">Binding</span>
2264
- <span class="r">def</span> <span class="fu">variables</span>
2265
- put_vars = lambda { |array|
2266
- <span class="r">if</span> array.empty?
2267
- <span class="s"><span class="dl">'</span><span class="k"> - none</span><span class="dl">'</span></span>
2268
- <span class="r">else</span>
2269
- array.map{|e|
2270
- val = (<span class="pc">self</span>.eval <span class="s"><span class="dl">&quot;</span><span class="il"><span class="idl">#{</span>e<span class="idl">}</span></span><span class="dl">&quot;</span></span>).inspect
2271
- <span class="s"><span class="dl">&quot;</span><span class="k"> - </span><span class="il"><span class="idl">#{</span>e<span class="idl">}</span></span><span class="k">: </span><span class="il"><span class="idl">#{</span> val <span class="idl">}</span></span><span class="dl">&quot;</span></span>
2272
- }.join <span class="s"><span class="dl">&quot;</span><span class="ch">\n</span><span class="dl">&quot;</span></span>
2273
- <span class="r">end</span>
2274
- }
2275
-
2276
- puts <span class="s"><span class="dl">&quot;</span><span class="il"><span class="idl">#{</span><span class="pc">self</span>.to_s<span class="idl">}</span></span><span class="k">
2320
+ puts <span class="s"><span class="dl">&quot;</span><span class="il"><span class="idl">#{</span><span class="pc">self</span>.to_s<span class="idl">}</span></span><span class="k">
2277
2321
  local variables
2278
2322
  </span><span class="il"><span class="idl">#{</span> put_vars[ <span class="pc">self</span>.eval <span class="s"><span class="dl">'</span><span class="k">local_variables</span><span class="dl">'</span></span> ] <span class="idl">}</span></span><span class="k">
2279
2323
  (instance variables)
@@ -2283,12 +2327,13 @@ self
2283
2327
  block_given?
2284
2328
  - </span><span class="il"><span class="idl">#{</span><span class="pc">self</span>.eval <span class="s"><span class="dl">'</span><span class="k">block_given?</span><span class="dl">'</span></span><span class="idl">}</span></span><span class="dl">&quot;</span></span>
2285
2329
 
2286
- <span class="r">end</span>
2330
+ <span class="r">end</span>
2287
2331
 
2288
- <span class="r">alias</span> <span class="fu">vars</span> <span class="fu">variables</span>
2332
+ <span class="r">alias</span> <span class="fu">vars</span> <span class="fu">variables</span>
2333
+ <span class="r">end</span>
2289
2334
  <span class="r">end</span>
2290
2335
 
2291
- <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/binding">github wiki</a></td></tr></table> <h3 title="require 'zucker/cc'" id="cc">cc</h3>
2336
+ <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8 (no rbx support)</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/binding">github wiki</a></td></tr></table> <h3 title="require 'zucker/cc'" id="cc">cc</h3>
2292
2337
  <table class="cube_table"
2293
2338
  id="cc_cube"
2294
2339
  title="require 'zucker/cc'"> <tr><th>Summary</th> <td><code>c</code> outputs the current method callstack.</td></tr><tr><th>Methods/Usage</th> <td><h5>c, cc</h5><pre class="usage source" style="display:block">c <span class="c"># shows the method callstack</span>
@@ -2300,6 +2345,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">c</span><span
2300
2345
  it <span class="s"><span class="dl">'</span><span class="k">should output the method callstack</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
2301
2346
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_cc_source">(<a href="javascript:show('cc_source')">show</a>)</span>
2302
2347
  <pre class="source" id="cc_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2348
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Cc</span> = <span class="pc">true</span> <span class="r">end</span>
2303
2349
 
2304
2350
  <span class="r">module</span> <span class="cl">Kernel</span>
2305
2351
  private
@@ -2381,6 +2427,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#d</span
2381
2427
  <span class="r">end</span>
2382
2428
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_dd_source">(<a href="javascript:show('dd_source')">show</a>)</span>
2383
2429
  <pre class="source" id="dd_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2430
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Dd</span> = <span class="pc">true</span> <span class="r">end</span>
2384
2431
 
2385
2432
  <span class="r">module</span> <span class="cl">Kernel</span>
2386
2433
  <span class="r">def</span> <span class="fu">d</span>(*args, &amp;block)
@@ -2416,6 +2463,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Object#mm</spa
2416
2463
  it <span class="s"><span class="dl">'</span><span class="k">should display an ordered method list</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
2417
2464
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_mm_source">(<a href="javascript:show('mm_source')">show</a>)</span>
2418
2465
  <pre class="source" id="mm_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2466
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Mm</span> = <span class="pc">true</span> <span class="r">end</span>
2419
2467
 
2420
2468
  <span class="r">module</span> <span class="cl">Kernel</span>
2421
2469
  <span class="r">def</span> <span class="fu">m</span>(levels = <span class="i">1</span>)
@@ -2465,6 +2513,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">o</span><span
2465
2513
  it <span class="s"><span class="dl">'</span><span class="k">should output the current line, file, method and label (if given)</span><span class="dl">'</span></span> <span class="r">do</span>; <span class="r">end</span>
2466
2514
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_oo_source">(<a href="javascript:show('oo_source')">show</a>)</span>
2467
2515
  <pre class="source" id="oo_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2516
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Oo</span> = <span class="pc">true</span> <span class="r">end</span>
2468
2517
 
2469
2518
  <span class="r">module</span> <span class="cl">Kernel</span>
2470
2519
  private
@@ -2504,6 +2553,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">q</span><span
2504
2553
  <span class="r">end</span>
2505
2554
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_qq_source">(<a href="javascript:show('qq_source')">show</a>)</span>
2506
2555
  <pre class="source" id="qq_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2556
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">Qq</span> = <span class="pc">true</span> <span class="r">end</span>
2507
2557
 
2508
2558
  <span class="r">module</span> <span class="cl">Kernel</span>
2509
2559
  private
@@ -2556,7 +2606,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#visuali
2556
2606
  <span class="r">end</span>.chomp.should == <span class="s"><span class="dl">'</span><span class="k">1: &gt;mail&lt; @example.com</span><span class="dl">'</span></span>
2557
2607
  <span class="r">end</span>
2558
2608
 
2559
- it <span class="s"><span class="dl">'</span><span class="k">should display &quot;group identifier: no match&quot; the arg2 group could not be matched</span><span class="dl">'</span></span> <span class="r">do</span>
2609
+ it <span class="s"><span class="dl">'</span><span class="k">should display &quot;group identifier: no match&quot; if the arg2 group could not be matched</span><span class="dl">'</span></span> <span class="r">do</span>
2560
2610
  capture_stdout <span class="r">do</span>
2561
2611
  regex.vis <span class="s"><span class="dl">'</span><span class="k">mail@example.com</span><span class="dl">'</span></span>, <span class="i">3</span>
2562
2612
  <span class="r">end</span>.chomp.should == <span class="s"><span class="dl">'</span><span class="k">3: no match</span><span class="dl">'</span></span>
@@ -2570,7 +2620,10 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#visuali
2570
2620
  <span class="s"><span class="dl">&quot;</span><span class="k">2: mail@ &gt;example.com&lt; </span><span class="dl">&quot;</span></span>
2571
2621
  <span class="r">end</span>
2572
2622
  <span class="r">end</span></pre> </td></tr><tr><th>Source</th> <td> <span id="show_regexp_visualize_source">(<a href="javascript:show('regexp_visualize_source')">show</a>)</span>
2573
- <pre class="source" id="regexp_visualize_source"><span class="r">class</span> <span class="cl">Regexp</span>
2623
+ <pre class="source" id="regexp_visualize_source">require <span class="s"><span class="dl">'</span><span class="k">zucker</span><span class="dl">'</span></span>
2624
+ <span class="r">module</span> <span class="cl">Zucker</span> <span class="co">RegexpVisualize</span> = <span class="pc">true</span> <span class="r">end</span>
2625
+
2626
+ <span class="r">class</span> <span class="cl">Regexp</span>
2574
2627
  <span class="r">def</span> <span class="fu">visualize</span>(string, groups = <span class="pc">nil</span>)
2575
2628
  <span class="r">if</span> <span class="pc">self</span> =~ string
2576
2629
  <span class="r">if</span> !groups
@@ -2582,7 +2635,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#visuali
2582
2635
  gr_string[ <span class="gv">$~</span>.end( group ), <span class="i">0</span> ] = <span class="s"><span class="dl">'</span><span class="k">&lt; </span><span class="dl">'</span></span>
2583
2636
  gr_string[ <span class="gv">$~</span>.begin( group ), <span class="i">0</span> ] = <span class="s"><span class="dl">'</span><span class="k"> &gt;</span><span class="dl">'</span></span>
2584
2637
  puts group.to_s + <span class="s"><span class="dl">'</span><span class="k">: </span><span class="dl">'</span></span> + gr_string
2585
- <span class="r">rescue</span> <span class="co">IndexError</span>
2638
+ <span class="r">rescue</span> <span class="co">IndexError</span>, <span class="r">defined?</span>(<span class="co">Rubinius</span>) &amp;&amp; <span class="co">Rubinius</span>::<span class="co">ObjectBoundsExceededError</span>
2586
2639
  puts group.to_s + <span class="s"><span class="dl">'</span><span class="k">: no match</span><span class="dl">'</span></span>
2587
2640
  <span class="r">end</span>
2588
2641
  }
@@ -2595,7 +2648,9 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#visuali
2595
2648
  <span class="r">end</span>
2596
2649
 
2597
2650
  <span class="r">alias</span> <span class="fu">vis</span> <span class="fu">visualize</span>
2598
- <span class="r">end</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/regexp_visualize">github wiki</a></td></tr></table>
2651
+ <span class="r">end</span>
2652
+
2653
+ <span class="c"># J-_-L</span></pre> </td></tr><tr><th>Compatibility</th> <td>1.9, 1.8</td></tr><tr><th>Discussion</th> <td><a href="http://wiki.github.com/janlelis/zucker/regexp_visualize">github wiki</a></td></tr></table>
2599
2654
  </div>
2600
2655
  <h2>Extras</h2>
2601
2656
  <p class="text">
@@ -2605,7 +2660,17 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#visuali
2605
2660
 
2606
2661
  <h2>Changelog</h2>
2607
2662
  <div class="cubes">
2608
- <pre class="scode">2011-04-29 | <a href="http://rubyzucker.info/10/">Zucker 10</a>
2663
+ <pre class="scode">2011-05-25 | <a href="http://rubyzucker.info/11/">Zucker 11</a>
2664
+ * add Zucker::constants to check if cube has been required (e.g. Zucker::AliasFor if 'zucker/alias_for' is loaded)
2665
+ * rbx tweaks
2666
+ * don't define Binding#vars on rbx (prevent endless recursion)
2667
+ * sandbox-not-working warning
2668
+ * add Kernel#ignore_sigquit!
2669
+ * fix warnings
2670
+ * doc tweaks
2671
+
2672
+
2673
+ 2011-04-29 | <a href="http://rubyzucker.info/10/">Zucker 10</a>
2609
2674
  * doc/spec tweaks
2610
2675
  * make test.rubygems.org-testable
2611
2676
  * fix zucker 9 permission issue
@@ -2699,7 +2764,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Regexp#visuali
2699
2764
  </div>
2700
2765
  <div id="foot">
2701
2766
  <div id="smile"><a href="http://rbjl.net">J-_-L</a></div>
2702
- This is the Ruby Zucker 10 documentation (2011-04-29).
2767
+ This is the Ruby Zucker 11 documentation (2011-05-25).
2703
2768
  The current version is always available at <a href="http://rubyzucker.info">rubyzucker.info</a>.
2704
2769
  Source at <a href="http://github.com/janlelis/zucker">github</a>.
2705
2770
  Ruby Logo CC-BY-SA Yukihiro Matsumoto.