tracepoint 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +12 -0
- data/LICENSE +167 -0
- data/MANIFEST +19 -0
- data/README +62 -0
- data/RELEASE +12 -0
- data/lib/tracepoint.rb +209 -0
- data/meta/abstract +3 -0
- data/meta/authors +1 -0
- data/meta/created +1 -0
- data/meta/homepage +1 -0
- data/meta/license +1 -0
- data/meta/package +1 -0
- data/meta/project +1 -0
- data/meta/released +1 -0
- data/meta/repository +1 -0
- data/meta/summary +1 -0
- data/meta/version +1 -0
- metadata +82 -0
data/HISTORY
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
= HISTORY
|
2
|
+
|
3
|
+
== 1.0.0 / 2009-07-10
|
4
|
+
|
5
|
+
Tracepoint is a spin-off of Ruby Facets. This is it's first release as
|
6
|
+
a stand alone project. Tracepoint is a Binding with event information that
|
7
|
+
can be used to trace execution, akin to #set_trace_func.
|
8
|
+
|
9
|
+
* 1 major enhancement
|
10
|
+
|
11
|
+
* Birthday!
|
12
|
+
|
data/LICENSE
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
|
2
|
+
= GNU LESSER GENERAL PUBLIC LICENSE
|
3
|
+
|
4
|
+
Version 3, 29 June 2007
|
5
|
+
|
6
|
+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
7
|
+
Everyone is permitted to copy and distribute verbatim copies
|
8
|
+
of this license document, but changing it is not allowed.
|
9
|
+
|
10
|
+
This version of the GNU Lesser General Public License incorporates
|
11
|
+
the terms and conditions of version 3 of the GNU General Public
|
12
|
+
License, supplemented by the additional permissions listed below.
|
13
|
+
|
14
|
+
== 0. Additional Definitions.
|
15
|
+
|
16
|
+
As used herein, "this License" refers to version 3 of the GNU Lesser
|
17
|
+
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
18
|
+
General Public License.
|
19
|
+
|
20
|
+
"The Library" refers to a covered work governed by this License,
|
21
|
+
other than an Application or a Combined Work as defined below.
|
22
|
+
|
23
|
+
An "Application" is any work that makes use of an interface provided
|
24
|
+
by the Library, but which is not otherwise based on the Library.
|
25
|
+
Defining a subclass of a class defined by the Library is deemed a mode
|
26
|
+
of using an interface provided by the Library.
|
27
|
+
|
28
|
+
A "Combined Work" is a work produced by combining or linking an
|
29
|
+
Application with the Library. The particular version of the Library
|
30
|
+
with which the Combined Work was made is also called the "Linked
|
31
|
+
Version".
|
32
|
+
|
33
|
+
The "Minimal Corresponding Source" for a Combined Work means the
|
34
|
+
Corresponding Source for the Combined Work, excluding any source code
|
35
|
+
for portions of the Combined Work that, considered in isolation, are
|
36
|
+
based on the Application, and not on the Linked Version.
|
37
|
+
|
38
|
+
The "Corresponding Application Code" for a Combined Work means the
|
39
|
+
object code and/or source code for the Application, including any data
|
40
|
+
and utility programs needed for reproducing the Combined Work from the
|
41
|
+
Application, but excluding the System Libraries of the Combined Work.
|
42
|
+
|
43
|
+
== 1. Exception to Section 3 of the GNU GPL.
|
44
|
+
|
45
|
+
You may convey a covered work under sections 3 and 4 of this License
|
46
|
+
without being bound by section 3 of the GNU GPL.
|
47
|
+
|
48
|
+
== 2. Conveying Modified Versions.
|
49
|
+
|
50
|
+
If you modify a copy of the Library, and, in your modifications, a
|
51
|
+
facility refers to a function or data to be supplied by an Application
|
52
|
+
that uses the facility (other than as an argument passed when the
|
53
|
+
facility is invoked), then you may convey a copy of the modified
|
54
|
+
version:
|
55
|
+
|
56
|
+
a) under this License, provided that you make a good faith effort to
|
57
|
+
ensure that, in the event an Application does not supply the
|
58
|
+
function or data, the facility still operates, and performs
|
59
|
+
whatever part of its purpose remains meaningful, or
|
60
|
+
|
61
|
+
b) under the GNU GPL, with none of the additional permissions of
|
62
|
+
this License applicable to that copy.
|
63
|
+
|
64
|
+
== 3. Object Code Incorporating Material from Library Header Files.
|
65
|
+
|
66
|
+
The object code form of an Application may incorporate material from
|
67
|
+
a header file that is part of the Library. You may convey such object
|
68
|
+
code under terms of your choice, provided that, if the incorporated
|
69
|
+
material is not limited to numerical parameters, data structure
|
70
|
+
layouts and accessors, or small macros, inline functions and templates
|
71
|
+
(ten or fewer lines in length), you do both of the following:
|
72
|
+
|
73
|
+
a) Give prominent notice with each copy of the object code that the
|
74
|
+
Library is used in it and that the Library and its use are
|
75
|
+
covered by this License.
|
76
|
+
|
77
|
+
b) Accompany the object code with a copy of the GNU GPL and this license
|
78
|
+
document.
|
79
|
+
|
80
|
+
== 4. Combined Works.
|
81
|
+
|
82
|
+
You may convey a Combined Work under terms of your choice that,
|
83
|
+
taken together, effectively do not restrict modification of the
|
84
|
+
portions of the Library contained in the Combined Work and reverse
|
85
|
+
engineering for debugging such modifications, if you also do each of
|
86
|
+
the following:
|
87
|
+
|
88
|
+
a) Give prominent notice with each copy of the Combined Work that
|
89
|
+
the Library is used in it and that the Library and its use are
|
90
|
+
covered by this License.
|
91
|
+
|
92
|
+
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
93
|
+
document.
|
94
|
+
|
95
|
+
c) For a Combined Work that displays copyright notices during
|
96
|
+
execution, include the copyright notice for the Library among
|
97
|
+
these notices, as well as a reference directing the user to the
|
98
|
+
copies of the GNU GPL and this license document.
|
99
|
+
|
100
|
+
d) Do one of the following:
|
101
|
+
|
102
|
+
d.0) Convey the Minimal Corresponding Source under the terms of this
|
103
|
+
License, and the Corresponding Application Code in a form
|
104
|
+
suitable for, and under terms that permit, the user to
|
105
|
+
recombine or relink the Application with a modified version of
|
106
|
+
the Linked Version to produce a modified Combined Work, in the
|
107
|
+
manner specified by section 6 of the GNU GPL for conveying
|
108
|
+
Corresponding Source.
|
109
|
+
|
110
|
+
d.1) Use a suitable shared library mechanism for linking with the
|
111
|
+
Library. A suitable mechanism is one that (a) uses at run time
|
112
|
+
a copy of the Library already present on the user's computer
|
113
|
+
system, and (b) will operate properly with a modified version
|
114
|
+
of the Library that is interface-compatible with the Linked
|
115
|
+
Version.
|
116
|
+
|
117
|
+
e) Provide Installation Information, but only if you would otherwise
|
118
|
+
be required to provide such information under section 6 of the
|
119
|
+
GNU GPL, and only to the extent that such information is
|
120
|
+
necessary to install and execute a modified version of the
|
121
|
+
Combined Work produced by recombining or relinking the
|
122
|
+
Application with a modified version of the Linked Version. (If
|
123
|
+
you use option 4d0, the Installation Information must accompany
|
124
|
+
the Minimal Corresponding Source and Corresponding Application
|
125
|
+
Code. If you use option 4d1, you must provide the Installation
|
126
|
+
Information in the manner specified by section 6 of the GNU GPL
|
127
|
+
for conveying Corresponding Source.)
|
128
|
+
|
129
|
+
== 5. Combined Libraries.
|
130
|
+
|
131
|
+
You may place library facilities that are a work based on the
|
132
|
+
Library side by side in a single library together with other library
|
133
|
+
facilities that are not Applications and are not covered by this
|
134
|
+
License, and convey such a combined library under terms of your
|
135
|
+
choice, if you do both of the following:
|
136
|
+
|
137
|
+
a) Accompany the combined library with a copy of the same work based
|
138
|
+
on the Library, uncombined with any other library facilities,
|
139
|
+
conveyed under the terms of this License.
|
140
|
+
|
141
|
+
b) Give prominent notice with the combined library that part of it
|
142
|
+
is a work based on the Library, and explaining where to find the
|
143
|
+
accompanying uncombined form of the same work.
|
144
|
+
|
145
|
+
== 6. Revised Versions of the GNU Lesser General Public License.
|
146
|
+
|
147
|
+
The Free Software Foundation may publish revised and/or new versions
|
148
|
+
of the GNU Lesser General Public License from time to time. Such new
|
149
|
+
versions will be similar in spirit to the present version, but may
|
150
|
+
differ in detail to address new problems or concerns.
|
151
|
+
|
152
|
+
Each version is given a distinguishing version number. If the
|
153
|
+
Library as you received it specifies that a certain numbered version
|
154
|
+
of the GNU Lesser General Public License "or any later version"
|
155
|
+
applies to it, you have the option of following the terms and
|
156
|
+
conditions either of that published version or of any later version
|
157
|
+
published by the Free Software Foundation. If the Library as you
|
158
|
+
received it does not specify a version number of the GNU Lesser
|
159
|
+
General Public License, you may choose any version of the GNU Lesser
|
160
|
+
General Public License ever published by the Free Software Foundation.
|
161
|
+
|
162
|
+
If the Library as you received it specifies that a proxy can decide
|
163
|
+
whether future versions of the GNU Lesser General Public License shall
|
164
|
+
apply, that proxy's public statement of acceptance of any version is
|
165
|
+
permanent authorization for you to choose that version for the
|
166
|
+
Library.
|
167
|
+
|
data/MANIFEST
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
test
|
2
|
+
RELEASE
|
3
|
+
LICENSE
|
4
|
+
README
|
5
|
+
HISTORY
|
6
|
+
meta
|
7
|
+
meta/created
|
8
|
+
meta/repository
|
9
|
+
meta/homepage
|
10
|
+
meta/summary
|
11
|
+
meta/abstract
|
12
|
+
meta/package
|
13
|
+
meta/released
|
14
|
+
meta/version
|
15
|
+
meta/license
|
16
|
+
meta/authors
|
17
|
+
meta/project
|
18
|
+
lib
|
19
|
+
lib/tracepoint.rb
|
data/README
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
= Tracepoint
|
2
|
+
|
3
|
+
* http://death.rubyforge.org
|
4
|
+
* http://death.rubyforge.org/tracepoint
|
5
|
+
|
6
|
+
== DESCRIPTION:
|
7
|
+
|
8
|
+
A TracePoint is a Binding with the addition of event information.
|
9
|
+
Among other things, it functions very well as the join-point for AOP.
|
10
|
+
In practice it provides a better means than #set_trace_func.
|
11
|
+
|
12
|
+
== FEATURES/PROBLEMS:
|
13
|
+
|
14
|
+
* Easier and more versitle than #set_trace_func.
|
15
|
+
* Set mutliple traces easily.
|
16
|
+
|
17
|
+
== RELEASE/NOTES:
|
18
|
+
|
19
|
+
Please see RELEASE file.
|
20
|
+
|
21
|
+
== SYNOPSIS:
|
22
|
+
|
23
|
+
Let's watch everything that happens:
|
24
|
+
|
25
|
+
TracePoint.trace { |tp|
|
26
|
+
puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
|
27
|
+
}
|
28
|
+
|
29
|
+
1 + 1
|
30
|
+
|
31
|
+
produces
|
32
|
+
|
33
|
+
Class trace return true false
|
34
|
+
Object line false false
|
35
|
+
Fixnum + c-call false false
|
36
|
+
Fixnum + c-return false false
|
37
|
+
|
38
|
+
See RDocs for more information.
|
39
|
+
|
40
|
+
== INSTALL:
|
41
|
+
|
42
|
+
* sudo gem install tracepoint
|
43
|
+
|
44
|
+
== LICENSE:
|
45
|
+
|
46
|
+
(LGPL v3 License)
|
47
|
+
|
48
|
+
Copyright (c) 2005,2009 The Coding Dead <death.rubyforge.org>
|
49
|
+
|
50
|
+
This program is free software: you can redistribute it and/or modify
|
51
|
+
it under the terms of the GNU Lesser General Public License as published
|
52
|
+
by the Free Software Foundation, either version 3 of the License, or
|
53
|
+
(at your option) any later version.
|
54
|
+
|
55
|
+
This program is distributed in the hope that it will be useful,
|
56
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
57
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
58
|
+
GNU General Public License for more details.
|
59
|
+
|
60
|
+
You should have received a copy of the GNU Lesser General Public License
|
61
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
62
|
+
|
data/RELEASE
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
= RELEASE NOTES
|
2
|
+
|
3
|
+
Tracepoint is a spin-off of Ruby Facets. This is it's first release as
|
4
|
+
a stand alone project. Tracepoint is a Binding with event information that
|
5
|
+
can be used to trace execution, akin to #set_trace_func.
|
6
|
+
|
7
|
+
### 1.0.0 / 2009-07-10
|
8
|
+
|
9
|
+
* 1 major enhancement
|
10
|
+
|
11
|
+
* Birthday!
|
12
|
+
|
data/lib/tracepoint.rb
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+
# = TracePoint
|
2
|
+
#
|
3
|
+
# A TracePoint is a Binding with the addition event information.
|
4
|
+
# And it's a better way to use set_trace_func.
|
5
|
+
#
|
6
|
+
# A TracePoint is a Binding with the addition of event information.
|
7
|
+
# Among other things, it functions very well as the join-point for
|
8
|
+
# Event-based AOP.
|
9
|
+
#
|
10
|
+
# == Usage
|
11
|
+
#
|
12
|
+
# TracePoint.trace { |tp|
|
13
|
+
# puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
|
14
|
+
# }
|
15
|
+
#
|
16
|
+
# 1 + 1
|
17
|
+
#
|
18
|
+
# produces
|
19
|
+
#
|
20
|
+
# Class trace return true false
|
21
|
+
# Object line false false
|
22
|
+
# Fixnum + c-call false false
|
23
|
+
# Fixnum + c-return false false
|
24
|
+
#
|
25
|
+
# == Notes
|
26
|
+
#
|
27
|
+
# You can't subclass Binding, so we delegate (which is better anyway).
|
28
|
+
#
|
29
|
+
# == Authors
|
30
|
+
#
|
31
|
+
# * Thomas Sawyer
|
32
|
+
#
|
33
|
+
# == Copying
|
34
|
+
#
|
35
|
+
# Copyright (c) 2005 Thomas Sawyer
|
36
|
+
#
|
37
|
+
# Ruby License
|
38
|
+
#
|
39
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
40
|
+
# software under the same terms as Ruby.
|
41
|
+
#
|
42
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
43
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
44
|
+
# FOR A PARTICULAR PURPOSE.
|
45
|
+
|
46
|
+
require 'facets/binding'
|
47
|
+
|
48
|
+
# = CodePoint
|
49
|
+
#
|
50
|
+
# This is the same as a Binding. Not really needed, but I like consistency :)
|
51
|
+
|
52
|
+
CodePoint = Binding
|
53
|
+
|
54
|
+
# = TracePoint
|
55
|
+
#
|
56
|
+
# A TracePoint is a Binding with the addition of event information.
|
57
|
+
# Among other things, it functions very well as the join-point for
|
58
|
+
# Event-based AOP.
|
59
|
+
#
|
60
|
+
# == Usage
|
61
|
+
#
|
62
|
+
# TracePoint.trace { |tp|
|
63
|
+
# puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
|
64
|
+
# }
|
65
|
+
#
|
66
|
+
# 1 + 1
|
67
|
+
#
|
68
|
+
# produces
|
69
|
+
#
|
70
|
+
# Class trace return true false
|
71
|
+
# Object line false false
|
72
|
+
# Fixnum + c-call false false
|
73
|
+
# Fixnum + c-return false false
|
74
|
+
#
|
75
|
+
# == Notes
|
76
|
+
#
|
77
|
+
# You can't subclass Binding, so we delegate (which is better anyway).
|
78
|
+
|
79
|
+
class TracePoint #< Codepoint
|
80
|
+
|
81
|
+
# -- class ---------------------
|
82
|
+
class << self
|
83
|
+
|
84
|
+
@@active = false
|
85
|
+
|
86
|
+
def active ; @@active ; end
|
87
|
+
|
88
|
+
def active=(x)
|
89
|
+
@@active = x ? true : false
|
90
|
+
unless @@active
|
91
|
+
set_trace_func nil
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Trace execution using a TracePoint.
|
96
|
+
def trace # :yield:
|
97
|
+
if active
|
98
|
+
bb_stack = []
|
99
|
+
set_trace_func proc{ |e, f, l, m, b, k|
|
100
|
+
#(p e, f, l, m, b, k, @@bb_stack; puts "---") if $DEBUG
|
101
|
+
if ['call','c-call','class'].include?(e)
|
102
|
+
bb_stack << b
|
103
|
+
elsif ['return','c-return','end'].include?(e)
|
104
|
+
bb = bb_stack.pop
|
105
|
+
end
|
106
|
+
b = bb if ! b # this sucks!
|
107
|
+
tp = TracePoint.new(e,m,b,bb)
|
108
|
+
yield(tp)
|
109
|
+
}
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
end #class
|
114
|
+
|
115
|
+
# -- instance -------------------
|
116
|
+
|
117
|
+
attr_accessor :event, :binding, :back_binding
|
118
|
+
|
119
|
+
# Until Ruby has a built-in way to get the name of the calling method
|
120
|
+
# that information must be passed into the TracePoint.
|
121
|
+
def initialize( event, method, bind, back_binding=bind )
|
122
|
+
@event = event
|
123
|
+
@method = method
|
124
|
+
@binding = bind
|
125
|
+
@back_binding = back_binding
|
126
|
+
end
|
127
|
+
|
128
|
+
# shorthand for binding
|
129
|
+
def bind ; @binding ; end
|
130
|
+
|
131
|
+
# shorthand for back_binding
|
132
|
+
def back ; @back_binding ; end
|
133
|
+
|
134
|
+
# Delegates "self" to the binding which
|
135
|
+
# in turn delegates the binding object.
|
136
|
+
def self ; @binding.self ; end
|
137
|
+
|
138
|
+
# Returns the name of the event's method.
|
139
|
+
# This could delegate to the binding if Ruby had
|
140
|
+
# an internal way to retrieve the current method name.
|
141
|
+
def callee ; @method ; end
|
142
|
+
#def method ; @method ; end # TODO Conflict with Kernel#method?
|
143
|
+
alias_method( :called, :callee ) # TODO deprecate
|
144
|
+
alias_method( :method_name, :called ) # TODO deprecate
|
145
|
+
|
146
|
+
# delegate to binding
|
147
|
+
#def method_missing(meth, *args, &blk)
|
148
|
+
# @binding.send(meth, *args, &blk)
|
149
|
+
#end
|
150
|
+
|
151
|
+
### methods for working with events
|
152
|
+
|
153
|
+
EVENT_MAP = {
|
154
|
+
:all => ['call', 'c-call', 'return', 'c-return', 'line', 'class', 'end', 'raise'],
|
155
|
+
:before => ['call', 'c-call'],
|
156
|
+
:after => ['return', 'c-return'],
|
157
|
+
:call => ['call'],
|
158
|
+
:return => ['return'],
|
159
|
+
:ccall => ['c-call'],
|
160
|
+
:creturn => ['c-return'],
|
161
|
+
:line => ['line'],
|
162
|
+
:class => ['class'],
|
163
|
+
:end => ['end'],
|
164
|
+
:raise => ['raise']
|
165
|
+
}
|
166
|
+
def event_map(e) ; EVENT_MAP[e] ; end
|
167
|
+
|
168
|
+
# Is the trace point defined or undefined?
|
169
|
+
def event? ; !! @event ; end
|
170
|
+
def eventless? ; ! @event ; end
|
171
|
+
|
172
|
+
# For use in case conditions
|
173
|
+
def ===(e)
|
174
|
+
EVENT_MAP[e].include?(@event)
|
175
|
+
end
|
176
|
+
|
177
|
+
# Creates an <event>? method for each of the above event mappings.
|
178
|
+
EVENT_MAP.each_pair { |m,v|
|
179
|
+
define_method( "#{m}?" ){ v.include?(@event) }
|
180
|
+
}
|
181
|
+
|
182
|
+
end
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
# _____ _
|
187
|
+
# |_ _|__ ___| |_
|
188
|
+
# | |/ _ \/ __| __|
|
189
|
+
# | | __/\__ \ |_
|
190
|
+
# |_|\___||___/\__|
|
191
|
+
#
|
192
|
+
|
193
|
+
# TODO
|
194
|
+
|
195
|
+
=begin #test
|
196
|
+
|
197
|
+
# Note: TracePoint will probably prove tricky to test, since
|
198
|
+
# manipulating set_trace_func tends to wreak havoc on errors,
|
199
|
+
# the call stack, and so on.
|
200
|
+
|
201
|
+
TracePoint.active = true
|
202
|
+
|
203
|
+
TracePoint.trace { |tp|
|
204
|
+
puts "#{tp.self.class}\t#{tp.called}\t#{tp.event}\t#{tp.return?}\t#{tp.back == tp.bind}"
|
205
|
+
}
|
206
|
+
|
207
|
+
1 + 1
|
208
|
+
|
209
|
+
=end
|
data/meta/abstract
ADDED
data/meta/authors
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Trans <transfire@gmail.com>
|
data/meta/created
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2008-08-08 23:09:48 -0400
|
data/meta/homepage
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
http://death.rubyforge.org/tracepoint
|
data/meta/license
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
LGPL v3
|
data/meta/package
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
tracepoint
|
data/meta/project
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
death
|
data/meta/released
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2009-07-11
|
data/meta/repository
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
svn://rubyforge.org/var/svn/death/tracepoint
|
data/meta/summary
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
An alternate to #set_trace_func.
|
data/meta/version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tracepoint
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Trans <transfire@gmail.com>
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-07-11 00:00:00 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: |-
|
17
|
+
A TracePoint is a Binding with the addition of event information.
|
18
|
+
Among other things, it functions very well as the join-point for AOP.
|
19
|
+
In practice it provides a better alternative to using #set_trace_func.
|
20
|
+
email: transfire@gmail.com
|
21
|
+
executables: []
|
22
|
+
|
23
|
+
extensions: []
|
24
|
+
|
25
|
+
extra_rdoc_files:
|
26
|
+
- README
|
27
|
+
- MANIFEST
|
28
|
+
- RELEASE
|
29
|
+
- LICENSE
|
30
|
+
- HISTORY
|
31
|
+
files:
|
32
|
+
- RELEASE
|
33
|
+
- LICENSE
|
34
|
+
- README
|
35
|
+
- HISTORY
|
36
|
+
- meta/created
|
37
|
+
- meta/repository
|
38
|
+
- meta/homepage
|
39
|
+
- meta/summary
|
40
|
+
- meta/abstract
|
41
|
+
- meta/package
|
42
|
+
- meta/released
|
43
|
+
- meta/version
|
44
|
+
- meta/license
|
45
|
+
- meta/authors
|
46
|
+
- meta/project
|
47
|
+
- lib/tracepoint.rb
|
48
|
+
- MANIFEST
|
49
|
+
has_rdoc: true
|
50
|
+
homepage: http://death.rubyforge.org/tracepoint
|
51
|
+
licenses: []
|
52
|
+
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options:
|
55
|
+
- --inline-source
|
56
|
+
- --title
|
57
|
+
- tracepoint api
|
58
|
+
- --main
|
59
|
+
- README
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "0"
|
67
|
+
version:
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: "0"
|
73
|
+
version:
|
74
|
+
requirements: []
|
75
|
+
|
76
|
+
rubyforge_project: death
|
77
|
+
rubygems_version: 1.3.4
|
78
|
+
signing_key:
|
79
|
+
specification_version: 3
|
80
|
+
summary: A TracePoint is a Binding with the addition of event information.
|
81
|
+
test_files: []
|
82
|
+
|