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.
- data/CHANGELOG +10 -0
 - data/Rakefile +2 -2
 - data/desc/binding.yaml +2 -2
 - data/desc/kernel.yaml +2 -1
 - data/desc/string.yaml +2 -2
 - data/doc/zucker_doc.html +107 -42
 - data/lib/zucker.rb +5 -5
 - data/lib/zucker/alias_for.rb +1 -0
 - data/lib/zucker/aliases.rb +1 -0
 - data/lib/zucker/array.rb +1 -0
 - data/lib/zucker/array_to_proc.rb +2 -1
 - data/lib/zucker/binding.rb +18 -15
 - data/lib/zucker/blank.rb +1 -0
 - data/lib/zucker/cc.rb +1 -0
 - data/lib/zucker/class_to_proc.rb +2 -1
 - data/lib/zucker/dd.rb +1 -0
 - data/lib/zucker/egonil.rb +1 -0
 - data/lib/zucker/engine.rb +1 -0
 - data/lib/zucker/enumerable.rb +2 -1
 - data/lib/zucker/file.rb +6 -0
 - data/lib/zucker/hash.rb +1 -0
 - data/lib/zucker/hash_to_proc.rb +1 -0
 - data/lib/zucker/info.rb +1 -0
 - data/lib/zucker/iterate.rb +3 -2
 - data/lib/zucker/ivars.rb +1 -0
 - data/lib/zucker/kernel.rb +7 -1
 - data/lib/zucker/mcopy.rb +1 -0
 - data/lib/zucker/mm.rb +1 -0
 - data/lib/zucker/not.rb +1 -0
 - data/lib/zucker/oo.rb +1 -0
 - data/lib/zucker/os.rb +1 -0
 - data/lib/zucker/qq.rb +1 -0
 - data/lib/zucker/regexp_to_proc.rb +1 -0
 - data/lib/zucker/regexp_visualize.rb +6 -1
 - data/lib/zucker/sandbox.rb +2 -0
 - data/lib/zucker/square_brackets_for.rb +1 -0
 - data/lib/zucker/string.rb +1 -0
 - data/lib/zucker/tap.rb +3 -2
 - data/lib/zucker/unary.rb +1 -0
 - data/lib/zucker/union.rb +1 -0
 - data/lib/zucker/version.rb +1 -0
 - data/spec/kernel_spec.rb +6 -1
 - data/spec/regexp_visualize_spec.rb +1 -1
 - data/spec/sandbox_spec.rb +1 -1
 - data/spec/version_spec.rb +2 -2
 - data/zucker.gemspec +12 -3
 - 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 
     | 
| 
      
 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  
     | 
| 
      
 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 
     | 
| 
      
 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 
     | 
    
         
            -
                String#lchomp: "' 
     | 
| 
      
 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  
     | 
| 
      
 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  
     | 
| 
      
 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>(&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(&<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 
     | 
| 
      
 476 
     | 
    
         
            +
                obj = padded_first.zip(*params)
         
     | 
| 
       475 
477 
     | 
    
         
             
                <span class="r">if</span> block_given?
         
     | 
| 
       476 
     | 
    
         
            -
                  obj.map{|es| <span class="r">yield</span> 
     | 
| 
      
 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 
     | 
| 
      
 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 -> 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 -> 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 
     | 
| 
      
 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>) && <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>) && ( <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">"</span><span class="k">zucker: sandbox does not work in rbx and jruby</span><span class="dl">"</span></span> <span class="r">if</span> <span class="r">defined?</span>(<span class="co">RUBY_ENGINE</span>) && ( <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, &block)
         
     | 
| 
       624 
     | 
    
         
            -
              obj.tap 
     | 
| 
      
 640 
     | 
    
         
            +
              obj.tap(&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, &block)
         
     | 
| 
       628 
     | 
    
         
            -
              what.new(*args).tap 
     | 
| 
      
 644 
     | 
    
         
            +
              what.new(*args).tap(&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> << <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> << <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"> 
     | 
| 
      
 1075 
     | 
    
         
            +
              context <span class="s"><span class="dl">'</span><span class="k">with "is" 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"> 
     | 
| 
      
 1086 
     | 
    
         
            +
              context <span class="s"><span class="dl">'</span><span class="k">with "is" 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 > <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> <= <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> << <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 *( 
     | 
| 
      
 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=" 
     | 
| 
      
 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> << <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 
     | 
| 
      
 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"># => {1=>4, 2=>5, 3=>6}</span></pre><h5>Hash#<<</h5><pre class="usage source" style="display:block">{<span class="i">1</span>=><span class="i">2</span>} << [<span class="i">3</span>, <span class="i">4</span>]   <span class="c"># => { 1=>2, 3=>4 }</span>
         
     | 
| 
         @@ -1393,6 +1420,7 @@ describe <span class="s"><span class="dl">'</span><span class="k">Hash#&</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#&</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"># => 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"> 
     | 
| 
      
 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"># => 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"># => '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"># => ' 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"># => [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"># => 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"># => 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"># => 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 
     | 
| 
      
 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 
     | 
| 
      
 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  
     | 
| 
      
 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 
     | 
    
         
             
            >> a=<span class="i">3</span>
         
     | 
| 
       2243 
2285 
     | 
    
         
             
            => <span class="i">3</span>
         
     | 
| 
       2244 
2286 
     | 
    
         
             
            >> 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>) && <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">"</span><span class="il"><span class="idl">#{</span>e<span class="idl">}</span></span><span class="dl">"</span></span>).inspect
         
     | 
| 
      
 2315 
     | 
    
         
            +
                        <span class="s"><span class="dl">"</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">"</span></span>
         
     | 
| 
      
 2316 
     | 
    
         
            +
                      }.join <span class="s"><span class="dl">"</span><span class="ch">\n</span><span class="dl">"</span></span>
         
     | 
| 
      
 2317 
     | 
    
         
            +
                    <span class="r">end</span>
         
     | 
| 
      
 2318 
     | 
    
         
            +
                  }
         
     | 
| 
       2262 
2319 
     | 
    
         | 
| 
       2263 
     | 
    
         
            -
            <span class=" 
     | 
| 
       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">"</span><span class="il"><span class="idl">#{</span>e<span class="idl">}</span></span><span class="dl">"</span></span>).inspect
         
     | 
| 
       2271 
     | 
    
         
            -
                      <span class="s"><span class="dl">"</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">"</span></span>
         
     | 
| 
       2272 
     | 
    
         
            -
                    }.join <span class="s"><span class="dl">"</span><span class="ch">\n</span><span class="dl">"</span></span>
         
     | 
| 
       2273 
     | 
    
         
            -
                  <span class="r">end</span>
         
     | 
| 
       2274 
     | 
    
         
            -
                }
         
     | 
| 
       2275 
     | 
    
         
            -
             
     | 
| 
       2276 
     | 
    
         
            -
                puts <span class="s"><span class="dl">"</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">"</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">"</span></span>
         
     | 
| 
       2285 
2329 
     | 
    
         | 
| 
       2286 
     | 
    
         
            -
             
     | 
| 
      
 2330 
     | 
    
         
            +
                <span class="r">end</span>
         
     | 
| 
       2287 
2331 
     | 
    
         | 
| 
       2288 
     | 
    
         
            -
             
     | 
| 
      
 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, &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:  >mail< @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 "group identifier: no match" 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 "group identifier: no match" 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">"</span><span class="k">2: mail@ >example.com< </span><span class="dl">"</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=" 
     | 
| 
      
 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">< </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"> ></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>) &&  <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 
     | 
| 
      
 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- 
     | 
| 
      
 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  
     | 
| 
      
 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.
         
     |