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 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", so "foo(Numeric)" matches with "foo(100)"
24
+ based on "<code>pattern === data</code>",
25
+ so "<code>foo(Numeric)</code>" matches "<code>foo(100)</code>".
25
26
 
26
- Note: Not thread safe now.
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(:x, :y)} do calc(x) + calc(y) end
12
- seems as {mul(:x, :y)} do calc(x) * calc(y) end
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(:x, :y)} do
13
- calcm(x) + calcm(y)
12
+ func(:calcm).seems as {plus(:a, :b)} do
13
+ calcm(a) + calcm(b)
14
14
  end
15
- func(:calcm).seems as {mul(:x, :y)} do
16
- calcm(x) * calcm(y)
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(:x, :y)} do
14
- calcx(x) + calcx(y)
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(x) * calcx(y)
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
@@ -2,7 +2,7 @@ module PatternMatching #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 0
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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.0</a>
36
+ <a href="http://rubyforge.org/projects/patternmatching" class="numbers">0.1.1</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;patternmatching&#8217;</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 &#8220;pattern === data&#8221;, so &#8220;foo(Numeric)&#8221; matches with &#8220;foo(100)&#8221;</p>
70
+ based on &#8220;<code>pattern === data</code>&#8221;,
71
+ so &#8220;<code>foo(Numeric)</code>&#8221; matches &#8220;<code>foo(100)</code>&#8221;.</p>
71
72
 
72
73
 
73
- <p>Note: Not thread safe now.</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 # =&gt; "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", so "foo(Numeric)" matches with "foo(100)"
24
+ based on "<code>pattern === data</code>",
25
+ so "<code>foo(Numeric)</code>" matches "<code>foo(100)</code>".
25
26
 
26
- Note: Not thread safe now.
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.0
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: