patternmatching 0.1.0 → 0.1.1
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/README.txt +10 -2
- data/examples/matching.rb +5 -3
- data/examples/partial_style_method.rb +4 -4
- data/examples/partial_style_method2.rb +3 -3
- data/lib/patternmatching/pattern.rb +4 -3
- data/lib/patternmatching/version.rb +1 -1
- data/website/index.html +14 -3
- data/website/index.txt +10 -2
- metadata +1 -1
    
        data/README.txt
    CHANGED
    
    | @@ -21,12 +21,19 @@ This module provides methods for tree pattern matching features. | |
| 21 21 | 
             
            * Syntax based on meta-programming, like "rspec", and so on.
         | 
| 22 22 |  | 
| 23 23 | 
             
            Note: Default equivalence used in structured pattern matching is 
         | 
| 24 | 
            -
            based on "pattern === data",  | 
| 24 | 
            +
            based on "<code>pattern === data</code>", 
         | 
| 25 | 
            +
            so "<code>foo(Numeric)</code>" matches "<code>foo(100)</code>".
         | 
| 25 26 |  | 
| 26 | 
            -
             | 
| 27 | 
            +
            Notice: Current implementation is not thread safe now. 
         | 
| 28 | 
            +
            Need the receiver object(NOT an argument) calling pattern matching 
         | 
| 29 | 
            +
            synchronized when multi-threaded access.
         | 
| 27 30 |  | 
| 28 31 | 
             
            h2. Demonstration of usage
         | 
| 29 32 |  | 
| 33 | 
            +
            Symbols(e.g. <code>:a</code>, <code>:right_value</code>) 
         | 
| 34 | 
            +
            in patterns is passed as variable 
         | 
| 35 | 
            +
            to the following block when the pattern matched.
         | 
| 36 | 
            +
             | 
| 30 37 | 
             
            <h3>Pattern matching expression</h3>
         | 
| 31 38 | 
             
            <pre>
         | 
| 32 39 | 
             
            require "patternmatching"
         | 
| @@ -141,6 +148,7 @@ end # => "He is Jiro" | |
| 141 148 |  | 
| 142 149 | 
             
            h2. Forum
         | 
| 143 150 |  | 
| 151 | 
            +
            Visit RubyForge project forum. 
         | 
| 144 152 |  | 
| 145 153 | 
             
            h2. How to submit patches
         | 
| 146 154 |  | 
    
        data/examples/matching.rb
    CHANGED
    
    | @@ -1,15 +1,17 @@ | |
| 1 1 |  | 
| 2 | 
            +
            # If installed from gem
         | 
| 3 | 
            +
            # require "rubygems"
         | 
| 4 | 
            +
            # gem "patternmatching"
         | 
| 2 5 | 
             
            require "patternmatching"
         | 
| 3 6 |  | 
| 4 | 
            -
             | 
| 5 7 | 
             
            # For DSL style code, include PatternMatching
         | 
| 6 8 | 
             
            include PatternMatching
         | 
| 7 9 |  | 
| 8 10 | 
             
            # match example
         | 
| 9 11 | 
             
            def calc(code)
         | 
| 10 12 | 
             
              make (code) {
         | 
| 11 | 
            -
                seems as {plus(: | 
| 12 | 
            -
                seems as {mul(: | 
| 13 | 
            +
                seems as {plus(:a, :b)} do calc(a) + calc(b) end
         | 
| 14 | 
            +
                seems as {mul(:a, :b)} do  calc(a) * calc(b) end
         | 
| 13 15 | 
             
                seems something do code end
         | 
| 14 16 | 
             
              }
         | 
| 15 17 | 
             
            end
         | 
| @@ -9,11 +9,11 @@ class Calc | |
| 9 9 | 
             
              extend PatternMatching
         | 
| 10 10 |  | 
| 11 11 | 
             
              # def calcm(o), as 3 partial styles
         | 
| 12 | 
            -
              func(:calcm).seems as {plus(: | 
| 13 | 
            -
                calcm( | 
| 12 | 
            +
              func(:calcm).seems as {plus(:a, :b)} do
         | 
| 13 | 
            +
                calcm(a) + calcm(b)
         | 
| 14 14 | 
             
              end
         | 
| 15 | 
            -
              func(:calcm).seems as {mul(: | 
| 16 | 
            -
                calcm( | 
| 15 | 
            +
              func(:calcm).seems as {mul(:a, :b)} do
         | 
| 16 | 
            +
                calcm(a) * calcm(b)
         | 
| 17 17 | 
             
              end
         | 
| 18 18 | 
             
              func(:calcm).seems as {:value} do
         | 
| 19 19 | 
             
                value
         | 
| @@ -10,11 +10,11 @@ class CalcX | |
| 10 10 | 
             
              extend PatternMatching
         | 
| 11 11 |  | 
| 12 12 | 
             
              func(:calcx) do
         | 
| 13 | 
            -
                seems as {plus(: | 
| 14 | 
            -
                  calcx( | 
| 13 | 
            +
                seems as {plus(:a, :b)} do
         | 
| 14 | 
            +
                  calcx(a) + calcx(b)
         | 
| 15 15 | 
             
                end
         | 
| 16 16 | 
             
                seems as {mul(:x, :y)} do
         | 
| 17 | 
            -
                  calcx( | 
| 17 | 
            +
                  calcx(a) * calcx(b)
         | 
| 18 18 | 
             
                end
         | 
| 19 19 | 
             
              end
         | 
| 20 20 | 
             
              func(:calcx).seems as {:value} do
         | 
| @@ -194,12 +194,13 @@ module PatternMatching | |
| 194 194 | 
             
            end
         | 
| 195 195 |  | 
| 196 196 | 
             
            =begin
         | 
| 197 | 
            +
            # If installed from rubygems
         | 
| 198 | 
            +
            require "rubygems"
         | 
| 199 | 
            +
            gem "patternmatching"
         | 
| 200 | 
            +
             | 
| 197 201 | 
             
            # for use 
         | 
| 198 202 | 
             
            require "patternmatching"
         | 
| 199 203 |  | 
| 200 | 
            -
            # or from rubygems
         | 
| 201 | 
            -
            require "rubygems"
         | 
| 202 | 
            -
            gem "patternmatching"
         | 
| 203 204 |  | 
| 204 205 | 
             
            # partial func example
         | 
| 205 206 | 
             
            class Calc
         | 
    
        data/website/index.html
    CHANGED
    
    | @@ -33,7 +33,7 @@ | |
| 33 33 | 
             
                <h1>PatternMatching module</h1>
         | 
| 34 34 | 
             
                <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/patternmatching"; return false'>
         | 
| 35 35 | 
             
                  Get Version
         | 
| 36 | 
            -
                  <a href="http://rubyforge.org/projects/patternmatching" class="numbers">0.1. | 
| 36 | 
            +
                  <a href="http://rubyforge.org/projects/patternmatching" class="numbers">0.1.1</a>
         | 
| 37 37 | 
             
                </div>
         | 
| 38 38 | 
             
                <h1>→ ‘patternmatching’</h1>
         | 
| 39 39 |  | 
| @@ -67,15 +67,23 @@ Provides a pure ruby module that: | |
| 67 67 |  | 
| 68 68 |  | 
| 69 69 | 
             
            	<p>Note: Default equivalence used in structured pattern matching is 
         | 
| 70 | 
            -
            based on “ | 
| 70 | 
            +
            based on “<code>pattern === data</code>”, 
         | 
| 71 | 
            +
            so “<code>foo(Numeric)</code>” matches “<code>foo(100)</code>”.</p>
         | 
| 71 72 |  | 
| 72 73 |  | 
| 73 | 
            -
            	<p> | 
| 74 | 
            +
            	<p>Notice: Current implementation is not thread safe now. 
         | 
| 75 | 
            +
            Need the receiver object(NOT an argument) calling pattern matching 
         | 
| 76 | 
            +
            synchronized when multi-threaded access.</p>
         | 
| 74 77 |  | 
| 75 78 |  | 
| 76 79 | 
             
            	<h2>Demonstration of usage</h2>
         | 
| 77 80 |  | 
| 78 81 |  | 
| 82 | 
            +
            	<p>Symbols(e.g. <code>:a</code>, <code>:right_value</code>) 
         | 
| 83 | 
            +
            in patterns is passed as variable 
         | 
| 84 | 
            +
            to the following block when the pattern matched.</p>
         | 
| 85 | 
            +
             | 
| 86 | 
            +
             | 
| 79 87 | 
             
            <h3>Pattern matching expression</h3>
         | 
| 80 88 | 
             
            <pre>
         | 
| 81 89 | 
             
            require "patternmatching" 
         | 
| @@ -191,6 +199,9 @@ end # => "He is Jiro" | |
| 191 199 | 
             
            	<h2>Forum</h2>
         | 
| 192 200 |  | 
| 193 201 |  | 
| 202 | 
            +
            	<p>Visit RubyForge project forum.</p>
         | 
| 203 | 
            +
             | 
| 204 | 
            +
             | 
| 194 205 | 
             
            	<h2>How to submit patches</h2>
         | 
| 195 206 |  | 
| 196 207 |  | 
    
        data/website/index.txt
    CHANGED
    
    | @@ -21,12 +21,19 @@ This module provides methods for tree pattern matching features. | |
| 21 21 | 
             
            * Syntax based on meta-programming, like "rspec", and so on.
         | 
| 22 22 |  | 
| 23 23 | 
             
            Note: Default equivalence used in structured pattern matching is 
         | 
| 24 | 
            -
            based on "pattern === data",  | 
| 24 | 
            +
            based on "<code>pattern === data</code>", 
         | 
| 25 | 
            +
            so "<code>foo(Numeric)</code>" matches "<code>foo(100)</code>".
         | 
| 25 26 |  | 
| 26 | 
            -
             | 
| 27 | 
            +
            Notice: Current implementation is not thread safe now. 
         | 
| 28 | 
            +
            Need the receiver object(NOT an argument) calling pattern matching 
         | 
| 29 | 
            +
            synchronized when multi-threaded access.
         | 
| 27 30 |  | 
| 28 31 | 
             
            h2. Demonstration of usage
         | 
| 29 32 |  | 
| 33 | 
            +
            Symbols(e.g. <code>:a</code>, <code>:right_value</code>) 
         | 
| 34 | 
            +
            in patterns is passed as variable 
         | 
| 35 | 
            +
            to the following block when the pattern matched.
         | 
| 36 | 
            +
             | 
| 30 37 | 
             
            <h3>Pattern matching expression</h3>
         | 
| 31 38 | 
             
            <pre>
         | 
| 32 39 | 
             
            require "patternmatching"
         | 
| @@ -141,6 +148,7 @@ end # => "He is Jiro" | |
| 141 148 |  | 
| 142 149 | 
             
            h2. Forum
         | 
| 143 150 |  | 
| 151 | 
            +
            Visit RubyForge project forum. 
         | 
| 144 152 |  | 
| 145 153 | 
             
            h2. How to submit patches
         | 
| 146 154 |  | 
    
        metadata
    CHANGED
    
    | @@ -3,7 +3,7 @@ rubygems_version: 0.9.4 | |
| 3 3 | 
             
            specification_version: 1
         | 
| 4 4 | 
             
            name: patternmatching
         | 
| 5 5 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 6 | 
            -
              version: 0.1. | 
| 6 | 
            +
              version: 0.1.1
         | 
| 7 7 | 
             
            date: 2007-06-04 00:00:00 +09:00
         | 
| 8 8 | 
             
            summary: Provide a pure ruby module that  can build structured objects easily,  can enable pattern match of objects,  and can define method as a partial function style.
         | 
| 9 9 | 
             
            require_paths: 
         |