Module: Calleree
- Defined in:
- lib/calleree.rb,
lib/calleree/version.rb,
ext/calleree/calleree.c
Constant Summary collapse
- VERSION =
"0.2.0"
Class Method Summary collapse
- ._start ⇒ Object
- ._stop ⇒ Object
- .raw_posmap ⇒ Object
- .raw_result(clear_p) ⇒ Object
- .result(clear: false) ⇒ Object
- .start ⇒ Object
- .stop ⇒ Object
Class Method Details
._start ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 |
# File 'ext/calleree/calleree.c', line 71
static VALUE
eree_start(VALUE self)
{
if (!eree_data.tp) {
eree_data.tp = rb_tracepoint_new(0, RUBY_EVENT_CALL, eree_called, &eree_data);
rb_gc_register_mark_object(eree_data.tp);
eree_data.caller_callee = st_init_numtable();
}
rb_tracepoint_enable(eree_data.tp);
return self;
}
|
._stop ⇒ Object
83 84 85 86 87 88 89 90 |
# File 'ext/calleree/calleree.c', line 83
static VALUE
eree_stop(VALUE self)
{
if (eree_data.tp) {
rb_tracepoint_disable(eree_data.tp);
}
return self;
}
|
.raw_posmap ⇒ Object
129 130 131 132 133 |
# File 'ext/calleree/calleree.c', line 129
static VALUE
eree_raw_posmap(VALUE self)
{
return eree_data.files;
}
|
.raw_result(clear_p) ⇒ Object
114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'ext/calleree/calleree.c', line 114
static VALUE
eree_raw_result(VALUE self, VALUE clear_p)
{
VALUE ary = rb_ary_new();
if (eree_data.tp) {
st_foreach(eree_data.caller_callee, raw_result_i, (st_data_t)ary);
if (RTEST(clear_p)) {
st_clear(eree_data.caller_callee);
}
}
return ary;
}
|
.result(clear: false) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/calleree.rb', line 22 def self.result clear: false if respond_to? :raw_posmap posnum_set = [] Calleree.raw_posmap.each{|file, lines| lines.each_with_index{|posnum, line| posnum_set[posnum] = [file, line] if posnum } } # pp posnum_set rs = [] Calleree.raw_result(clear).each{|i, j, cnt| er = posnum_set[i] ee = posnum_set[j] rs << [er, ee, cnt] if er && ee } rs else # USE_LOCINDEX version Calleree.raw_result(clear) end end |