source_route 0.1.8 → 0.2.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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: source_route
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - raykin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-24 00:00:00.000000000 Z
11
+ date: 2015-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '1.6'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '1.6'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,48 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard-shell
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: guard-livereload
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
139
181
  description: Wrapper of TracePoint.
140
182
  email:
141
183
  - raykincoldxiao@gmail.com
@@ -146,16 +188,18 @@ files:
146
188
  - ".gitignore"
147
189
  - ".hound.yml"
148
190
  - Gemfile
191
+ - Guardfile
149
192
  - LICENSE.txt
150
193
  - README.md
151
194
  - Rakefile
195
+ - examples/debug_how_logger_object_init_when_rails_start.rb
152
196
  - examples/show_init_files_when_rails_server_start.rb
153
197
  - examples/show_task_trace_in_rails.rb
154
198
  - examples/study_callback.rb
155
199
  - lib/source_route.rb
156
200
  - lib/source_route/core_ext.rb
157
201
  - lib/source_route/formats/html.rb
158
- - lib/source_route/formats/html_template.slim
202
+ - lib/source_route/formats/html_semantic.slim
159
203
  - lib/source_route/generate_result.rb
160
204
  - lib/source_route/json_overrides/activerecord_associations_association.rb
161
205
  - lib/source_route/jsonify.rb
@@ -192,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
236
  version: '0'
193
237
  requirements: []
194
238
  rubyforge_project:
195
- rubygems_version: 2.2.2
239
+ rubygems_version: 2.4.8
196
240
  signing_key:
197
241
  specification_version: 4
198
242
  summary: Wrapper of TracePoint.
@@ -1,229 +0,0 @@
1
- doctype html
2
- html
3
- head
4
- title Source Route Result
5
- link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"
6
- link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css"
7
- link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css"
8
- link rel="stylesheet" href="https://cdn.rawgit.com/Urigo/angular-spinkit/master/build/angular-spinkit.min.css"
9
- script src="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"
10
- script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"
11
- script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"
12
-
13
- css:
14
- body { font-size: 24px }
15
- pre { font-size: 20px }
16
- .call-level-0 {}
17
- .call-level-1 { margin-left: 50px }
18
- .call-level-2 { margin-left: 100px }
19
- .call-level-3 { margin-left: 150px }
20
- .call-level-4 { margin-left: 200px }
21
- .call-level-5 { margin-left: 250px }
22
- .call-level-6 { margin-left: 300px }
23
- .call-level-7 { margin-left: 300px }
24
- .details .well { margin-bottom: 0; color: green }
25
- body(ng-app="SourceRoute" ng-controller="MainCtrl" ng-cloak)
26
-
27
- nav.navbar.navbar-default.navbar-static-top
28
- .container
29
- .container-fluid
30
- .navbar-header
31
- a.navbar-brand(href="#" ng-click="::resetTraceFilter()") ALL
32
- ul.nav.navbar-nav
33
- li(ng-repeat="event in tpEvents" ng-class="{active: event == traceFilter.event}")
34
- a(href="#" ng-click="traceFilter.event = event" ng-bind="::event")
35
- ul.nav.navbar-nav.navbar-right
36
- li
37
- a(disabled)
38
- span Current Trace Count
39
- span.badge<(ng-bind="currentCounter()")
40
-
41
- .clearfix
42
-
43
- .container
44
- .level-header(ng-if="::traces[0].hasOwnProperty('parent_ids')" style="padding-bottom: 10px")
45
- .btn-group>
46
- button.btn.btn-default>(ng-click="outlineTrace()")
47
- span> OutLine
48
- span
49
- button.btn.btn-primary(ng-click="expandAllTrace()") Expand ALL
50
-
51
- .trace-flow
52
- .row
53
- .left-info.col-sm-4(ng-if="false")
54
- .btn-group-vertical
55
- button.btn.btn-default(ng-repeat="klass in ::definedClasses"
56
- ng-click="traceFilter.defined_class = klass" style="height: 60px")
57
- span(ng-bind="klass.substring(0, 40)" popover="{{klass}}" popover-trigger="mouseenter" popover-placement="bottom")
58
- .traces.center-info.col-sm-12(ng-class="{{traceFilter.event}}")
59
- .trace.well(ng-repeat="trace in traces | filter:traceFilter:true | filter:childParentFilterFn"
60
- ng-class="callLevelClass(trace)" ng-controller="TpTraceCtrl")
61
-
62
- .header(ng-init="showMoreDetail = false")
63
- .btn-group.pull-right
64
- button.btn.btn-info.btn-sm(ng-if="::hasChild()" ng-click="toggleChild()")
65
- span(ng-hide="trace.childClosed")
66
- i.fa.fa-angle-down
67
- span(ng-show="trace.childClosed")
68
- i.fa.fa-angle-right
69
- span Child
70
- button.btn.btn-info.btn-sm(ng-show="::containsDetail(trace)" ng-click="showMoreDetail = !showMoreDetail") Details
71
- span(ng-bind="::tpSelfList[trace.tp_self]")
72
- span
73
- | .
74
- mark.method-value(ng-bind="trace.method_id")
75
- / workaround for return_value is 'false' and return_value always to be string when existed
76
- pulse-spinner(ng-show="togglingChild")
77
- div(ng-if="trace.hasOwnProperty('return_value')")
78
- span
79
- | =>
80
- span<(ng-bind="::trimString(trace.return_value, 200)")
81
-
82
- .details(ng-if="showMoreDetail" style="margin-top: 10px")
83
- .attrs.well.well-sm(ng-if="containsOtherAttrs(trace)")
84
- span Attrs
85
- div(hljs source="::combinedAttrs(trace) | json")
86
- .local-vars.well.well-sm(ng-if="trace.local_var")
87
- span Local Var
88
- .local-values(hljs source="::trace.local_var | json")
89
- .ins-vars.well.well-sm(ng-if="trace.instance_var")
90
- span Instance Var
91
- .ins-values(hljs source="::trace.instance_var | json")
92
- .return-value(ng-if="trace.hasOwnProperty('return_value')")
93
- span Return Value
94
- .value(hljs source="::trace.return_value | json")
95
-
96
- .right-info.col-sm-2
97
-
98
- script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"
99
- script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.0/ui-bootstrap-tpls.min.js"
100
- script src="http://pc035860.github.io/angular-highlightjs/angular-highlightjs.min.js"
101
- script src="https://cdn.rawgit.com/Urigo/angular-spinkit/master/build/angular-spinkit.min.js"
102
-
103
- javascript:
104
- sourceRoute = angular.module('SourceRoute', ['ui.bootstrap', 'hljs', 'angular-spinkit'])
105
- sourceRoute.controller('MainCtrl', function($scope, $filter) {
106
-
107
- $scope.trimString = function(str, length) {
108
- return str.length > length ? str.substring(0, length - 3) + '...' : str;
109
- }
110
-
111
- $scope.traces = angular.element("#trace-data").data('trace')
112
- $scope.tpSelfList = angular.element("#trace-data").data('tp-self-caches')
113
- $scope.tpEvents = angular.element("#trace-data").data('tp-events')
114
- $scope.childParentFilter = { hide_trace_ids: [] }
115
-
116
- $scope.childParentFilterFn = function(trace) {
117
- if (!trace.hasOwnProperty('parent_ids')) {
118
- return true;
119
- }
120
- if (trace.parent_ids.length == 0) {
121
- return true;
122
- } else {
123
- var shared_hide_parents = _.intersection(trace.parent_ids, $scope.childParentFilter.hide_trace_ids);
124
- if (shared_hide_parents.length > 0 ) {
125
- return false;
126
- }
127
- }
128
- return true;
129
- }
130
-
131
- $scope.expandAllTrace = function() {
132
- _.each($scope.traces, function(trace) { trace.childClosed = false; });
133
- $scope.childParentFilter.hide_trace_ids = [];
134
- }
135
-
136
- $scope.outlineTrace = function() {
137
- $scope.childParentFilter.hide_trace_ids = [];
138
- _.chain($scope.traces).filter({parent_length: 0})
139
- .each(function(trace) { trace.childClosed = true; $scope.childParentFilter.hide_trace_ids.push(trace.order_id) })
140
- }
141
-
142
- $scope.traceFilter = {event: $scope.tpEvents[0]}
143
- if ($scope.tpEvents.length == 1 && angular.isUndefined($scope.traces[0].event)) {
144
- _.each($scope.traces, function(trace) {
145
- trace.event = $scope.tpEvents[0]
146
- })
147
- }
148
-
149
- $scope.definedClasses = _.uniq(_.map($scope.traces, 'defined_class'))
150
-
151
- $scope.callLevelClass = function(trace) {
152
- if (trace.parent_length > 7) {
153
- return 'call-level-7';
154
- } else {
155
- return 'call-level-' + trace.parent_length;
156
- }
157
- }
158
-
159
- $scope.resetTraceFilter = function() {
160
- $scope.traceFilter = {};
161
- }
162
-
163
- $scope.currentCounter = function() {
164
- return $filter('filter')($scope.traces, $scope.traceFilter, true).length;
165
- }
166
-
167
- $scope.containsOtherAttrs = function(trace) {
168
- return trace.hasOwnProperty('path') || trace.hasOwnProperty('lineno') ||
169
- trace.hasOwnProperty('defined_class');
170
- }
171
-
172
- $scope.containsDetail = function(trace) {
173
- return $scope.containsOtherAttrs(trace) || trace.hasOwnProperty('local_var') ||
174
- trace.hasOwnProperty('instance_var')
175
- }
176
-
177
- $scope.combinedAttrs = function(trace) {
178
- var attrs = {}
179
- if (trace.hasOwnProperty('lineno') && trace.hasOwnProperty('path')) {
180
- attrs.method_defined_on = trace.path + ":" + trace.lineno;
181
- } else if (trace.hasOwnProperty('path')) {
182
- attrs.method_defined_on = trace.path;
183
- }
184
- if (trace.hasOwnProperty('defined_class')) {
185
- attrs.method_defined_in = trace.defined_class;
186
- }
187
- return attrs;
188
- }
189
-
190
- $scope.outlineTrace();
191
- })
192
-
193
- sourceRoute.controller('TpTraceCtrl', function($scope, $timeout) {
194
-
195
- $scope.toggleChild = function() {
196
- $scope.togglingChild = true
197
- $timeout(function() {
198
- if ($scope.trace.childClosed) {
199
- $scope.showChild();
200
- $scope.togglingChild = false
201
- } else {
202
- $scope.hideChild();
203
- $scope.togglingChild = false
204
- }
205
- }, 0)
206
- }
207
-
208
- $scope.showChild = function() {
209
- $scope.trace.childClosed = false;
210
- _.pull($scope.childParentFilter.hide_trace_ids, $scope.trace.order_id);
211
- }
212
-
213
- $scope.hideChild = function() {
214
- $scope.trace.childClosed = true;
215
- $scope.childParentFilter.hide_trace_ids.push($scope.trace.order_id);
216
- }
217
-
218
- $scope.hasChild = function() {
219
- return _.find($scope.traces, function(trace) {
220
- return _.contains(trace.parent_ids, $scope.trace.order_id)
221
- });
222
- }
223
- })
224
-
225
- .data-collect
226
- / dont use local_trace_data.to_json, because ActiveSupport override it and can introduce unexpected crash for some data
227
- #trace-data(data-trace="#{jsonify_tp_result_chain}"
228
- data-tp-events="#{jsonify_events}"
229
- data-tp-self-caches="#{jsonify_tp_self_caches}")