ruby-breakpoint 0.5.0

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.
@@ -0,0 +1,162 @@
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>File: TODO</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="fileHeader">
50
+ <h1>TODO</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>TODO
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Fri Mar 04 20:55:05 Westeurop�ische Normalzeit 2005</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <h1>TODO</h1>
73
+ <ul>
74
+ <li>Factor out remote breakpoint support to a separate file so it can be loaded
75
+ on-demand. This would allow the local breakpoint functionality to work even
76
+ when DRb is not available. (E.g. on Debian)
77
+
78
+ </li>
79
+ </ul>
80
+ <h1>Done</h1>
81
+ <ul>
82
+ <li>Do further research on the write SecurityError. See ruby-core for more
83
+ information.
84
+
85
+ <ul>
86
+ <li>This seems to have been a bug in Ruby 1.8.1 and early snapshots in Ruby
87
+ 1.8.2. The problem can be fixed by updating to a more current Ruby. More
88
+ information regarding this is available at the Wiki:
89
+
90
+ <p>
91
+ <a
92
+ href="http://ruby-breakpoint.rubyforge.org/wiki/wiki.pl?FrequentlyAskedQuestions">ruby-breakpoint.rubyforge.org/wiki/wiki.pl?FrequentlyAskedQuestions</a>
93
+ </p>
94
+ </li>
95
+ </ul>
96
+ </li>
97
+ <li>Find out whether we need to add Windows and Linux wrappers to the bin/
98
+ directory
99
+
100
+ <ul>
101
+ <li>This is handled correctly by RubyGems. setup.rb only copies the .rb file to
102
+ a suitable directory, but that should work in the usual case.
103
+
104
+ </li>
105
+ </ul>
106
+ </li>
107
+ <li>breakpoint_client needs logic for detecting the default client uri based on
108
+ the server uri:
109
+
110
+ <ul>
111
+ <li>drbunix:/foo/bar =&gt; drbunix:#{File.join(Dir.tmpdir,
112
+ &quot;#{random}.breakpoint&quot;)} (require &#8216;tmpdir&#8217;)
113
+
114
+ </li>
115
+ <li>druby://localhost:port =&gt; druby://localhost:#{rand_port}
116
+
117
+ </li>
118
+ </ul>
119
+ </li>
120
+ <li>Mention available ressources (especially the FAQ) in breakpoint_client
121
+ &#8212;help
122
+
123
+ </li>
124
+ <li>Document drbunix:/ uris and how they are more secure than druby:// with
125
+ ACLs. Suggest that this be used in environments where there are lots of
126
+ users sharing the same system. (E.g. web hosters)
127
+
128
+ </li>
129
+ </ul>
130
+
131
+ </div>
132
+
133
+
134
+ </div>
135
+
136
+
137
+ </div>
138
+
139
+
140
+ <!-- if includes -->
141
+
142
+ <div id="section">
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+ <!-- if method_list -->
152
+
153
+
154
+ </div>
155
+
156
+
157
+ <div id="validator-badges">
158
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
159
+ </div>
160
+
161
+ </body>
162
+ </html>
@@ -0,0 +1,101 @@
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>File: binding_of_caller.rb</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="fileHeader">
50
+ <h1>binding_of_caller.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/binding_of_caller.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Sun Feb 20 10:55:56 Westeurop�ische Normalzeit 2005</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+
72
+
73
+ </div>
74
+
75
+
76
+ </div>
77
+
78
+
79
+ <!-- if includes -->
80
+
81
+ <div id="section">
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ <!-- if method_list -->
91
+
92
+
93
+ </div>
94
+
95
+
96
+ <div id="validator-badges">
97
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
98
+ </div>
99
+
100
+ </body>
101
+ </html>
@@ -0,0 +1,202 @@
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>File: breakpoint.rb</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="fileHeader">
50
+ <h1>breakpoint.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/breakpoint.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Sat Feb 26 20:43:19 Westeurop�ische Normalzeit 2005</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <p>
73
+ The <a href="../../classes/Breakpoint.html">Breakpoint</a> library provides
74
+ the convenience of being able to inspect and modify state, diagnose bugs
75
+ all via IRB by simply setting breakpoints in your applications by the call
76
+ of a method.
77
+ </p>
78
+ <p>
79
+ This library was written and is supported by me, Florian Gross. I can be
80
+ reached at flgr@ccan.de and enjoy getting feedback about my libraries.
81
+ </p>
82
+ <p>
83
+ The whole library (including breakpoint_client.rb and binding_of_caller.rb)
84
+ is licensed under the same license that Ruby uses. (Which is currently
85
+ either the GNU General Public License or a custom one that allows for
86
+ commercial usage.) If you for some good reason need to use this under
87
+ another license please contact me.
88
+ </p>
89
+
90
+ </div>
91
+
92
+ <div id="requires-list">
93
+ <h3 class="section-bar">Required files</h3>
94
+
95
+ <div class="name-list">
96
+ irb&nbsp;&nbsp;
97
+ binding_of_caller&nbsp;&nbsp;
98
+ drb&nbsp;&nbsp;
99
+ drb/acl&nbsp;&nbsp;
100
+ thread&nbsp;&nbsp;
101
+ </div>
102
+ </div>
103
+
104
+ </div>
105
+
106
+ <div id="method-list">
107
+ <h3 class="section-bar">Methods</h3>
108
+
109
+ <div class="name-list">
110
+ <a href="#M000002">assert</a>&nbsp;&nbsp;
111
+ <a href="#M000001">breakpoint</a>&nbsp;&nbsp;
112
+ </div>
113
+ </div>
114
+
115
+ </div>
116
+
117
+
118
+ <!-- if includes -->
119
+
120
+ <div id="section">
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+ <!-- if method_list -->
130
+ <div id="methods">
131
+ <h3 class="section-bar">Public Instance methods</h3>
132
+
133
+ <div id="method-M000002" class="method-detail">
134
+ <a name="M000002"></a>
135
+
136
+ <div class="method-heading">
137
+ <a href="#M000002" class="method-signature">
138
+ <span class="method-name">assert</span><span class="method-args">(&amp;block)</span>
139
+ </a>
140
+ </div>
141
+
142
+ <div class="method-description">
143
+ <p>
144
+ See <a href="../../classes/Breakpoint.html#M000005">Breakpoint.assert</a>
145
+ </p>
146
+ <p><a class="source-toggle" href="#"
147
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
148
+ <div class="method-source-code" id="M000002-source">
149
+ <pre>
150
+ <span class="ruby-comment cmt"># File lib/breakpoint.rb, line 543</span>
151
+ 543: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assert</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
152
+ 544: <span class="ruby-constant">Binding</span>.<span class="ruby-identifier">of_caller</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span>
153
+ 545: <span class="ruby-constant">Breakpoint</span>.<span class="ruby-identifier">assert</span>(<span class="ruby-identifier">context</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
154
+ 546: <span class="ruby-keyword kw">end</span>
155
+ 547: <span class="ruby-keyword kw">end</span>
156
+ </pre>
157
+ </div>
158
+ </div>
159
+ </div>
160
+
161
+ <div id="method-M000001" class="method-detail">
162
+ <a name="M000001"></a>
163
+
164
+ <div class="method-heading">
165
+ <a href="#M000001" class="method-signature">
166
+ <span class="method-name">breakpoint</span><span class="method-args">(id = nil, &amp;block)</span>
167
+ </a>
168
+ </div>
169
+
170
+ <div class="method-description">
171
+ <p>
172
+ See <a
173
+ href="../../classes/Breakpoint.html#M000004">Breakpoint.breakpoint</a>
174
+ </p>
175
+ <p><a class="source-toggle" href="#"
176
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000001-source">
178
+ <pre>
179
+ <span class="ruby-comment cmt"># File lib/breakpoint.rb, line 536</span>
180
+ 536: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">breakpoint</span>(<span class="ruby-identifier">id</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
181
+ 537: <span class="ruby-constant">Binding</span>.<span class="ruby-identifier">of_caller</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">context</span><span class="ruby-operator">|</span>
182
+ 538: <span class="ruby-constant">Breakpoint</span>.<span class="ruby-identifier">breakpoint</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">context</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
183
+ 539: <span class="ruby-keyword kw">end</span>
184
+ 540: <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
+ <div id="validator-badges">
198
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
199
+ </div>
200
+
201
+ </body>
202
+ </html>