prelude 0.0.2 → 0.0.3
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 +5 -2
- data/README +3 -3
- data/Rakefile +44 -25
- data/doc/classes/Kernel.html +198 -0
- data/doc/classes/Prelude.html +110 -3
- data/doc/classes/Prelude/EmptyListError.html +113 -0
- data/doc/classes/Prelude/List.html +1210 -1067
- data/doc/classes/Prelude/MissingFunctionError.html +113 -0
- data/doc/classes/Prelude/Monad.html +114 -57
- data/doc/classes/Prelude/Tuple.html +18 -18
- data/doc/classes/Proc.html +51 -26
- data/doc/classes/Symbol.html +65 -12
- data/doc/created.rid +1 -1
- data/doc/files/CHANGELOG.html +8 -1
- data/doc/files/README.html +3 -3
- data/doc/files/lib/prelude_rb.html +1 -1
- data/doc/fr_class_index.html +3 -0
- data/doc/fr_method_index.html +113 -97
- data/lib/prelude.rb +84 -10
- data/lib/prelude/list.rb +244 -212
- data/lib/prelude/monad.rb +88 -11
- data/test/tc_higher.rb +5 -5
- data/test/tc_list.rb +259 -268
- data/test/tc_monad.rb +145 -0
- data/test/ts_prelude.rb +2 -1
- metadata +6 -2
data/CHANGELOG
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
= CHANGELOG
|
2
2
|
|
3
|
-
$Id: CHANGELOG
|
3
|
+
$Id: CHANGELOG 17 2006-09-17 18:03:15Z prelude $
|
4
4
|
|
5
|
-
== 09/
|
5
|
+
== 09/17/06 - Release 0.0.3
|
6
|
+
* Converted List from being functional-like to fully functional, i.e., all its methods return functions.
|
7
|
+
|
8
|
+
== 09/06/06 - Release 0.0.2
|
6
9
|
|
7
10
|
* Expanded README and moved references from sources into it.
|
8
11
|
* Fixed Tuple's implementation.
|
data/README
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Prelude - a Haskell-like functional library
|
2
2
|
|
3
|
-
$Id: README
|
3
|
+
$Id: README 17 2006-09-17 18:03:15Z prelude $
|
4
4
|
|
5
5
|
*WARNING* <tt>The project is still in a very preliminary state. Only
|
6
6
|
List was partially implemented. Feel free to contribute.</tt>
|
@@ -119,7 +119,7 @@ itself, see http://nomaware.com/monads/html/index.html to get
|
|
119
119
|
started. More monadic resources are here:
|
120
120
|
http://haskell.org/haskellwiki/Books_and_tutorials#Using_monads
|
121
121
|
|
122
|
-
=== What else
|
122
|
+
=== What else?
|
123
123
|
|
124
124
|
These features will be nice to have in a second release of the library:
|
125
125
|
|
@@ -127,7 +127,7 @@ These features will be nice to have in a second release of the library:
|
|
127
127
|
|
128
128
|
* Tools for automatic program verification and algebraic proofs
|
129
129
|
|
130
|
-
* What else
|
130
|
+
* What else?
|
131
131
|
|
132
132
|
|
133
133
|
== What's in a name
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# $Id: Rakefile
|
2
|
+
# $Id: Rakefile 18 2006-09-17 23:33:58Z prelude $
|
3
3
|
#
|
4
4
|
# This file is part of the Prelude library that provides tools to
|
5
5
|
# enable Haskell style functional programming in Ruby.
|
@@ -23,6 +23,12 @@
|
|
23
23
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
24
24
|
#++
|
25
25
|
|
26
|
+
#--
|
27
|
+
# To run:
|
28
|
+
# c:/tools/trunk/ruby-1.8.4_20/bin/rake.bat
|
29
|
+
#
|
30
|
+
#++
|
31
|
+
|
26
32
|
require 'rubygems'
|
27
33
|
require 'rake'
|
28
34
|
require 'rake/testtask'
|
@@ -31,6 +37,7 @@ require 'rake/packagetask'
|
|
31
37
|
require 'rake/gempackagetask'
|
32
38
|
require 'rake/contrib/rubyforgepublisher'
|
33
39
|
require 'fileutils'
|
40
|
+
require 'pp'
|
34
41
|
|
35
42
|
require File.join(File.dirname(__FILE__), 'lib', 'prelude')
|
36
43
|
|
@@ -47,12 +54,13 @@ RUBY_FORGE_USER = "prelude"
|
|
47
54
|
desc "Default Task"
|
48
55
|
task :default => [ :test ]
|
49
56
|
|
50
|
-
|
51
|
-
Rake::TestTask.new { |t|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
57
|
+
task :test do |x|
|
58
|
+
Rake::TestTask.new { |t|
|
59
|
+
t.libs << "test"
|
60
|
+
t.test_files = Dir['test/ts_*.rb']
|
61
|
+
t.verbose = true
|
62
|
+
}
|
63
|
+
end # :test
|
56
64
|
|
57
65
|
file 'doc/index.html' => ['misc/rdoc_template.rb' ]
|
58
66
|
task :rdoc => ['doc/index.html']
|
@@ -80,31 +88,42 @@ task :gem => [ :clobber, :rdoc ]
|
|
80
88
|
# ~..>tar xvf prelude-0.0.1.gem; gunzip data.tar.gz metadata.gz; tar xvf data.tar; cat metadata
|
81
89
|
|
82
90
|
spec = Gem::Specification.new do |s|
|
83
|
-
s.platform
|
84
|
-
s.name
|
85
|
-
s.
|
86
|
-
s.
|
87
|
-
s.
|
88
|
-
|
89
|
-
s.
|
90
|
-
s.
|
91
|
-
s.
|
92
|
-
s.homepage = "http://prelude.rubyforge.org"
|
91
|
+
s.platform = Gem::Platform::RUBY
|
92
|
+
s.name = PKG_NAME
|
93
|
+
s.version = PKG_VERSION
|
94
|
+
s.summary = 'Haskell-like functional library'
|
95
|
+
s.description = 'Enables Ruby programmers to use higher-order functions, monads, and other Haskell features.'
|
96
|
+
s.author = 'Ivan K. and APP Design, Inc.'
|
97
|
+
s.email = 'prelude@rubyforge.org'
|
98
|
+
s.rubyforge_project = 'prelude'
|
99
|
+
s.homepage = 'http://prelude.rubyforge.org'
|
93
100
|
|
94
101
|
s.has_rdoc = true
|
95
102
|
s.requirements << 'none'
|
96
103
|
s.require_path = 'lib'
|
97
104
|
s.autorequire = 'prelude'
|
98
105
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
106
|
+
[
|
107
|
+
"Rakefile",
|
108
|
+
"README",
|
109
|
+
"TODO",
|
110
|
+
"CHANGELOG",
|
111
|
+
"COPYING",
|
112
|
+
"doc/**/*",
|
113
|
+
"examples/**/*",
|
114
|
+
"lib/**/*",
|
115
|
+
"test/**/*"
|
116
|
+
].each do |i|
|
117
|
+
s.files += Dir.glob(i).delete_if do
|
118
|
+
|x| x =~ /.*~/
|
119
|
+
end
|
120
|
+
end
|
121
|
+
puts "Files included into the GEM:"
|
122
|
+
pp s.files
|
123
|
+
|
124
|
+
s.test_files = Dir.glob( "test/**/ts_*rb" )
|
107
125
|
end
|
126
|
+
|
108
127
|
Rake::GemPackageTask.new(spec) do |p|
|
109
128
|
p.gem_spec = spec
|
110
129
|
p.need_tar = true
|
@@ -0,0 +1,198 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Module: Kernel</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Module</strong></td>
|
53
|
+
<td class="class-name-in-header">Kernel</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../files/lib/prelude_rb.html">
|
59
|
+
lib/prelude.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
</td>
|
63
|
+
</tr>
|
64
|
+
|
65
|
+
</table>
|
66
|
+
</div>
|
67
|
+
<!-- banner header -->
|
68
|
+
|
69
|
+
<div id="bodyContent">
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
<div id="contextContent">
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<div id="method-list">
|
80
|
+
<h3 class="section-bar">Methods</h3>
|
81
|
+
|
82
|
+
<div class="name-list">
|
83
|
+
<a href="#M000113">caller_method</a>
|
84
|
+
<a href="#M000114">silence_warnings</a>
|
85
|
+
<a href="#M000112">this_method</a>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
|
89
|
+
</div>
|
90
|
+
|
91
|
+
|
92
|
+
<!-- if includes -->
|
93
|
+
|
94
|
+
<div id="section">
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
<!-- if method_list -->
|
104
|
+
<div id="methods">
|
105
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
106
|
+
|
107
|
+
<div id="method-M000113" class="method-detail">
|
108
|
+
<a name="M000113"></a>
|
109
|
+
|
110
|
+
<div class="method-heading">
|
111
|
+
<a href="#M000113" class="method-signature">
|
112
|
+
<span class="method-name">caller_method</span><span class="method-args">()</span>
|
113
|
+
</a>
|
114
|
+
</div>
|
115
|
+
|
116
|
+
<div class="method-description">
|
117
|
+
<p>
|
118
|
+
Method object for the caller of the currently executing method
|
119
|
+
</p>
|
120
|
+
<p><a class="source-toggle" href="#"
|
121
|
+
onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
|
122
|
+
<div class="method-source-code" id="M000113-source">
|
123
|
+
<pre>
|
124
|
+
<span class="ruby-comment cmt"># File lib/prelude.rb, line 118</span>
|
125
|
+
118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">caller_method</span>
|
126
|
+
119: <span class="ruby-identifier">name</span> = (<span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">caller</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/`([^']*)'/</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">$1</span>)
|
127
|
+
120: <span class="ruby-identifier">eval</span> <span class="ruby-node">"self.method(\"#{name}\".to_sym)"</span>, <span class="ruby-identifier">binding</span>
|
128
|
+
121: <span class="ruby-keyword kw">end</span>
|
129
|
+
</pre>
|
130
|
+
</div>
|
131
|
+
</div>
|
132
|
+
</div>
|
133
|
+
|
134
|
+
<div id="method-M000114" class="method-detail">
|
135
|
+
<a name="M000114"></a>
|
136
|
+
|
137
|
+
<div class="method-heading">
|
138
|
+
<a href="#M000114" class="method-signature">
|
139
|
+
<span class="method-name">silence_warnings</span><span class="method-args">() {|| ...}</span>
|
140
|
+
</a>
|
141
|
+
</div>
|
142
|
+
|
143
|
+
<div class="method-description">
|
144
|
+
<p>
|
145
|
+
Shuts up Ruby’s warning.
|
146
|
+
</p>
|
147
|
+
<p><a class="source-toggle" href="#"
|
148
|
+
onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
|
149
|
+
<div class="method-source-code" id="M000114-source">
|
150
|
+
<pre>
|
151
|
+
<span class="ruby-comment cmt"># File lib/prelude.rb, line 124</span>
|
152
|
+
124: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">silence_warnings</span>
|
153
|
+
125: <span class="ruby-identifier">old_verbose</span>, <span class="ruby-identifier">$VERBOSE</span> = <span class="ruby-identifier">$VERBOSE</span>, <span class="ruby-keyword kw">nil</span>
|
154
|
+
126: <span class="ruby-keyword kw">yield</span>
|
155
|
+
127: <span class="ruby-keyword kw">ensure</span>
|
156
|
+
128: <span class="ruby-identifier">$VERBOSE</span> = <span class="ruby-identifier">old_verbose</span>
|
157
|
+
129: <span class="ruby-keyword kw">end</span>
|
158
|
+
</pre>
|
159
|
+
</div>
|
160
|
+
</div>
|
161
|
+
</div>
|
162
|
+
|
163
|
+
<div id="method-M000112" class="method-detail">
|
164
|
+
<a name="M000112"></a>
|
165
|
+
|
166
|
+
<div class="method-heading">
|
167
|
+
<a href="#M000112" class="method-signature">
|
168
|
+
<span class="method-name">this_method</span><span class="method-args">()</span>
|
169
|
+
</a>
|
170
|
+
</div>
|
171
|
+
|
172
|
+
<div class="method-description">
|
173
|
+
<p>
|
174
|
+
Method object for currently executing method
|
175
|
+
</p>
|
176
|
+
<p><a class="source-toggle" href="#"
|
177
|
+
onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
|
178
|
+
<div class="method-source-code" id="M000112-source">
|
179
|
+
<pre>
|
180
|
+
<span class="ruby-comment cmt"># File lib/prelude.rb, line 112</span>
|
181
|
+
112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">this_method</span>
|
182
|
+
113: <span class="ruby-identifier">name</span> = (<span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">caller</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/`([^']*)'/</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">$1</span>)
|
183
|
+
114: <span class="ruby-identifier">eval</span> <span class="ruby-node">"self.method(\"#{name}\".to_sym)"</span>, <span class="ruby-identifier">binding</span>
|
184
|
+
115: <span class="ruby-keyword kw">end</span>
|
185
|
+
</pre>
|
186
|
+
</div>
|
187
|
+
</div>
|
188
|
+
</div>
|
189
|
+
|
190
|
+
|
191
|
+
</div>
|
192
|
+
|
193
|
+
|
194
|
+
</div>
|
195
|
+
|
196
|
+
|
197
|
+
</body>
|
198
|
+
</html>
|
data/doc/classes/Prelude.html
CHANGED
@@ -88,6 +88,15 @@
|
|
88
88
|
|
89
89
|
</div>
|
90
90
|
|
91
|
+
<div id="method-list">
|
92
|
+
<h3 class="section-bar">Methods</h3>
|
93
|
+
|
94
|
+
<div class="name-list">
|
95
|
+
<a href="#M000007">empty_list_error</a>
|
96
|
+
<a href="#M000009">get_proc</a>
|
97
|
+
<a href="#M000008">missing_function_error</a>
|
98
|
+
</div>
|
99
|
+
</div>
|
91
100
|
|
92
101
|
</div>
|
93
102
|
|
@@ -99,8 +108,10 @@
|
|
99
108
|
<div id="class-list">
|
100
109
|
<h3 class="section-bar">Classes and Modules</h3>
|
101
110
|
|
102
|
-
|
103
|
-
|
111
|
+
Module <a href="Prelude/List.html" class="link">Prelude::List</a><br />
|
112
|
+
Module <a href="Prelude/Monad.html" class="link">Prelude::Monad</a><br />
|
113
|
+
Class <a href="Prelude/EmptyListError.html" class="link">Prelude::EmptyListError</a><br />
|
114
|
+
Class <a href="Prelude/MissingFunctionError.html" class="link">Prelude::MissingFunctionError</a><br />
|
104
115
|
Class <a href="Prelude/Tuple.html" class="link">Prelude::Tuple</a><br />
|
105
116
|
|
106
117
|
</div>
|
@@ -113,7 +124,17 @@ Class <a href="Prelude/Tuple.html" class="link">Prelude::Tuple</a><br />
|
|
113
124
|
<tr class="top-aligned-row context-row">
|
114
125
|
<td class="context-item-name">VERSION</td>
|
115
126
|
<td>=</td>
|
116
|
-
<td class="context-item-value">'0.0.
|
127
|
+
<td class="context-item-value">'0.0.3'</td>
|
128
|
+
</tr>
|
129
|
+
<tr class="top-aligned-row context-row">
|
130
|
+
<td class="context-item-name">Id</td>
|
131
|
+
<td>=</td>
|
132
|
+
<td class="context-item-value">lambda { |x| x }</td>
|
133
|
+
<td width="3em"> </td>
|
134
|
+
<td class="context-item-desc">
|
135
|
+
Returns function that returns its argument
|
136
|
+
|
137
|
+
</td>
|
117
138
|
</tr>
|
118
139
|
</table>
|
119
140
|
</div>
|
@@ -125,6 +146,92 @@ Class <a href="Prelude/Tuple.html" class="link">Prelude::Tuple</a><br />
|
|
125
146
|
|
126
147
|
|
127
148
|
<!-- if method_list -->
|
149
|
+
<div id="methods">
|
150
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
151
|
+
|
152
|
+
<div id="method-M000007" class="method-detail">
|
153
|
+
<a name="M000007"></a>
|
154
|
+
|
155
|
+
<div class="method-heading">
|
156
|
+
<a href="#M000007" class="method-signature">
|
157
|
+
<span class="method-name">empty_list_error</span><span class="method-args">()</span>
|
158
|
+
</a>
|
159
|
+
</div>
|
160
|
+
|
161
|
+
<div class="method-description">
|
162
|
+
<p>
|
163
|
+
This is used to handle empty list errors in this library. Re-define to fit.
|
164
|
+
</p>
|
165
|
+
<p><a class="source-toggle" href="#"
|
166
|
+
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
167
|
+
<div class="method-source-code" id="M000007-source">
|
168
|
+
<pre>
|
169
|
+
<span class="ruby-comment cmt"># File lib/prelude.rb, line 39</span>
|
170
|
+
39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">empty_list_error</span>
|
171
|
+
40: <span class="ruby-identifier">raise</span> <span class="ruby-constant">EmptyListError</span>, <span class="ruby-value str">'Illegal operation on an empty list.'</span>
|
172
|
+
41: <span class="ruby-keyword kw">end</span>
|
173
|
+
</pre>
|
174
|
+
</div>
|
175
|
+
</div>
|
176
|
+
</div>
|
177
|
+
|
178
|
+
<div id="method-M000009" class="method-detail">
|
179
|
+
<a name="M000009"></a>
|
180
|
+
|
181
|
+
<div class="method-heading">
|
182
|
+
<a href="#M000009" class="method-signature">
|
183
|
+
<span class="method-name">get_proc</span><span class="method-args">(f=nil, &block)</span>
|
184
|
+
</a>
|
185
|
+
</div>
|
186
|
+
|
187
|
+
<div class="method-description">
|
188
|
+
<p>
|
189
|
+
A utility to determine if a function was passed
|
190
|
+
</p>
|
191
|
+
<p><a class="source-toggle" href="#"
|
192
|
+
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
193
|
+
<div class="method-source-code" id="M000009-source">
|
194
|
+
<pre>
|
195
|
+
<span class="ruby-comment cmt"># File lib/prelude.rb, line 52</span>
|
196
|
+
52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_proc</span>(<span class="ruby-identifier">f</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
197
|
+
53: <span class="ruby-comment cmt"># Has to be either function 'f' or block</span>
|
198
|
+
54: <span class="ruby-identifier">f</span> = <span class="ruby-identifier">block_given?</span> <span class="ruby-value">? </span><span class="ruby-identifier">block</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">missing_function_error</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">nil?</span>
|
199
|
+
55: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">to_proc</span>
|
200
|
+
56: <span class="ruby-keyword kw">end</span>
|
201
|
+
</pre>
|
202
|
+
</div>
|
203
|
+
</div>
|
204
|
+
</div>
|
205
|
+
|
206
|
+
<div id="method-M000008" class="method-detail">
|
207
|
+
<a name="M000008"></a>
|
208
|
+
|
209
|
+
<div class="method-heading">
|
210
|
+
<a href="#M000008" class="method-signature">
|
211
|
+
<span class="method-name">missing_function_error</span><span class="method-args">()</span>
|
212
|
+
</a>
|
213
|
+
</div>
|
214
|
+
|
215
|
+
<div class="method-description">
|
216
|
+
<p>
|
217
|
+
This is used to handle missing function errors in this library. Re-define
|
218
|
+
to fit.
|
219
|
+
</p>
|
220
|
+
<p><a class="source-toggle" href="#"
|
221
|
+
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
222
|
+
<div class="method-source-code" id="M000008-source">
|
223
|
+
<pre>
|
224
|
+
<span class="ruby-comment cmt"># File lib/prelude.rb, line 47</span>
|
225
|
+
47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">missing_function_error</span>
|
226
|
+
48: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MissingFunctionError</span>, <span class="ruby-value str">'No function or block supplied.'</span>
|
227
|
+
49: <span class="ruby-keyword kw">end</span>
|
228
|
+
</pre>
|
229
|
+
</div>
|
230
|
+
</div>
|
231
|
+
</div>
|
232
|
+
|
233
|
+
|
234
|
+
</div>
|
128
235
|
|
129
236
|
|
130
237
|
</div>
|