kefka 0.0.5 → 0.0.6
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 → README.md} +19 -21
- data/VERSION +1 -1
- data/kefka.gemspec +3 -3
- data/public/javascripts/app.js +7 -1
- metadata +22 -22
data/{README → README.md}
RENAMED
@@ -1,38 +1,36 @@
|
|
1
|
-
|
1
|
+
Kefka (Experimental)
|
2
|
+
====
|
2
3
|
|
3
4
|
A tool for understanding unfamiliar codebases and 3rd party libraries. Basic Idea is to visualize the method callgraph of a program while showing local variable values for each line of execution.
|
4
5
|
|
5
|
-
|
6
|
+

|
6
7
|
|
7
|
-
|
8
|
+
Installation
|
9
|
+
----
|
8
10
|
|
9
|
-
|
11
|
+
$ gem install kefka
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
Usage
|
14
|
+
----
|
13
15
|
|
14
|
-
|
16
|
+
$ kefka
|
17
|
+
Go to browser and point to http://localhost:4567/
|
15
18
|
|
16
|
-
|
19
|
+
TODO
|
20
|
+
----
|
17
21
|
|
18
|
-
|
22
|
+
show multiple locals values in loops/recursive calls/methods called from different sources
|
23
|
+
better UI
|
24
|
+
visualize links ( line call to a method )
|
19
25
|
|
20
|
-
|
21
|
-
|
22
|
-
3. Pry
|
23
|
-
4. EventMachine ( reactor scheduler, threadpool, defer )
|
24
|
-
5. Celluloid
|
25
|
-
|
26
|
-
== Related Papers
|
26
|
+
Related Papers
|
27
|
+
----
|
27
28
|
|
28
29
|
http://relo.csail.mit.edu/documentation/relo-vlhcc06.pdf
|
29
30
|
http://dmrussell.net/CHI2010/docs/p2503.pdf
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
https://github.com/ruby/ruby/blob/trunk/test/ruby/test_settracefunc.rb
|
34
|
-
|
35
|
-
== Contributing to kefka
|
32
|
+
Contributing to kefka
|
33
|
+
----
|
36
34
|
|
37
35
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
38
36
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
data/kefka.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "kefka"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Reginald Tan"]
|
@@ -15,14 +15,14 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = ["kefka"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
|
-
"README",
|
18
|
+
"README.md",
|
19
19
|
"TODO"
|
20
20
|
]
|
21
21
|
s.files = [
|
22
22
|
".document",
|
23
23
|
"Gemfile",
|
24
24
|
"LICENSE.txt",
|
25
|
-
"README",
|
25
|
+
"README.md",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"app.rb",
|
data/public/javascripts/app.js
CHANGED
@@ -100,11 +100,17 @@ var setupCall = function(call, edges) {
|
|
100
100
|
$line.data("key",call);
|
101
101
|
|
102
102
|
$line.html("<div class='expand'>+</div>");
|
103
|
+
|
104
|
+
var showExpand = function() { $(this).text("+"); };
|
105
|
+
var showCollapse = function() { $(this).text("-"); };
|
106
|
+
|
107
|
+
$line.find("div.expand").first().toggle(showCollapse,showExpand);
|
108
|
+
|
103
109
|
$line.find("div.expand").first().click(function() {
|
104
110
|
return function(that){
|
105
111
|
_.chain(edges)
|
106
112
|
.filter( function(edge){ return edge.source == $(that).parent().data("key"); })
|
107
|
-
.map( function(edge){
|
113
|
+
.map( function(edge){ return edge.target })
|
108
114
|
.each( function(target){
|
109
115
|
$("#codeGraph .bubble#" + jqSelectorEscape(target))
|
110
116
|
.first()
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kefka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-08-27 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yajl-ruby
|
16
|
-
requirement: &
|
16
|
+
requirement: &70340392128680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70340392128680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: coderay
|
27
|
-
requirement: &
|
27
|
+
requirement: &70340392127260 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70340392127260
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sinatra
|
38
|
-
requirement: &
|
38
|
+
requirement: &70340392126620 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70340392126620
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: method_source
|
49
|
-
requirement: &
|
49
|
+
requirement: &70340392115580 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70340392115580
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rgl
|
60
|
-
requirement: &
|
60
|
+
requirement: &70340392114660 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70340392114660
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry
|
71
|
-
requirement: &
|
71
|
+
requirement: &70340392113720 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70340392113720
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: pry-doc
|
82
|
-
requirement: &
|
82
|
+
requirement: &70340392112880 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70340392112880
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rspec
|
93
|
-
requirement: &
|
93
|
+
requirement: &70340392112300 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70340392112300
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: jeweler
|
104
|
-
requirement: &
|
104
|
+
requirement: &70340392111720 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70340392111720
|
113
113
|
description: ! ' It traces the execution path of a program and displays the source
|
114
114
|
code of each method call in the callgraph '
|
115
115
|
email: redge.tan@gmail.com
|
@@ -118,13 +118,13 @@ executables:
|
|
118
118
|
extensions: []
|
119
119
|
extra_rdoc_files:
|
120
120
|
- LICENSE.txt
|
121
|
-
- README
|
121
|
+
- README.md
|
122
122
|
- TODO
|
123
123
|
files:
|
124
124
|
- .document
|
125
125
|
- Gemfile
|
126
126
|
- LICENSE.txt
|
127
|
-
- README
|
127
|
+
- README.md
|
128
128
|
- Rakefile
|
129
129
|
- VERSION
|
130
130
|
- app.rb
|
@@ -157,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
157
|
version: '0'
|
158
158
|
segments:
|
159
159
|
- 0
|
160
|
-
hash:
|
160
|
+
hash: -2483329914531889372
|
161
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
162
|
none: false
|
163
163
|
requirements:
|