rubyception 0.0.3 → 0.1.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.
- data/app/assets/javascripts/rubyception/collections/entries.coffee +18 -0
- data/app/assets/javascripts/rubyception/collections/filter_actions.coffee +3 -0
- data/app/assets/javascripts/rubyception/lib/jenny.coffee +4 -4
- data/app/assets/javascripts/rubyception/models/filter_action.coffee +2 -0
- data/app/assets/javascripts/rubyception/routers/log.coffee +7 -3
- data/app/assets/javascripts/rubyception/template.js +1 -1
- data/app/assets/javascripts/rubyception/views/entries/entry.coffee +26 -1
- data/app/assets/javascripts/rubyception/views/shared/filter_action.coffee +20 -0
- data/app/assets/javascripts/rubyception/views/shared/filter_controller.coffee +22 -0
- data/app/assets/javascripts/rubyception/views/shared/filters.coffee +15 -0
- data/app/assets/javascripts/rubyception/views/shared/filters_actions.coffee +7 -0
- data/app/assets/stylesheets/rubyception/default.sass +7 -0
- data/app/assets/stylesheets/rubyception/entries.sass +37 -2
- data/app/models/rubyception/entry.rb +5 -1
- data/app/views/rubyception/entries/_entry.haml +1 -0
- data/app/views/rubyception/shared/_filter_action.haml +2 -0
- data/app/views/rubyception/shared/_filter_controller.haml +3 -0
- data/config/templating.yml +3 -0
- data/lib/rubyception/version.rb +1 -1
- data/lib/rubyception/websocket_server.rb +3 -0
- data/test/dummy/config/routes.rb +1 -1
- metadata +67 -19
@@ -1,3 +1,21 @@
|
|
1
1
|
class App.Collections.Entries extends Backbone.Collection
|
2
2
|
model: App.Models.Entry
|
3
3
|
url:-> ''
|
4
|
+
filter:(args)->
|
5
|
+
_.each @models, (model)=>
|
6
|
+
controller = model.get 'controller'
|
7
|
+
action = model.get 'action'
|
8
|
+
check_action = args.controller isnt undefined and args.action isnt undefined
|
9
|
+
check_controller = args.controller isnt undefined
|
10
|
+
|
11
|
+
trigger = if check_action
|
12
|
+
controller is args.controller && action is args.action
|
13
|
+
else if check_controller
|
14
|
+
controller is args.controller
|
15
|
+
else
|
16
|
+
false
|
17
|
+
|
18
|
+
if trigger && args.trigger is 'ignore'
|
19
|
+
model.trigger 'ignore'
|
20
|
+
else if trigger && args.trigger is 'notice'
|
21
|
+
model.trigger 'notice'
|
@@ -57,7 +57,7 @@ CollectionHelpers =
|
|
57
57
|
collect:->
|
58
58
|
e = $ @context.el
|
59
59
|
find = arguments[0]
|
60
|
-
has_find = find isnt undefined
|
60
|
+
has_find = find isnt undefined && find isnt null
|
61
61
|
options = arguments[1]
|
62
62
|
options ||= {}
|
63
63
|
|
@@ -65,12 +65,12 @@ CollectionHelpers =
|
|
65
65
|
delete options.template_index
|
66
66
|
template_index = ti
|
67
67
|
template_index = "#{@name}/index" if ti is undefined
|
68
|
-
e
|
69
|
-
html = @context.template template_index, options.args || {}
|
70
68
|
|
71
69
|
hti = options.has_template_index
|
72
70
|
delete options.has_template_index
|
73
|
-
|
71
|
+
if hti != false
|
72
|
+
html = @context.template template_index, options.args || {}
|
73
|
+
e.html html
|
74
74
|
|
75
75
|
t = options.template
|
76
76
|
delete options.template
|
@@ -8,6 +8,7 @@ class App.Routers.Log extends Backbone.Router
|
|
8
8
|
socket.onclose = @onclose
|
9
9
|
socket.onmessage = @onmessage
|
10
10
|
@collection = new App.Collections.Entries()
|
11
|
+
App.enteries = @collection
|
11
12
|
@collection.model = App.Models.Entry
|
12
13
|
@default()
|
13
14
|
onmessage:(msg)=>
|
@@ -29,17 +30,20 @@ class App.Routers.Log extends Backbone.Router
|
|
29
30
|
@index()
|
30
31
|
toggle_side: =>
|
31
32
|
$('.wrapper').toggleClass 'filter'
|
33
|
+
toggle_params: =>
|
34
|
+
$('body').toggleClass 'pretty_params'
|
32
35
|
hotkeys: =>
|
33
36
|
m = Mousetrap
|
34
37
|
m.bind '\\ n' , @toggle_side
|
35
38
|
m.bind ['j','down'] , @log.entries_index.down
|
36
39
|
m.bind ['k','up'] , @log.entries_index.up
|
37
40
|
m.bind String(i) , _.bind @log.entries_index.number_hotkey, @, String(i) for i in [0..9]
|
38
|
-
m.bind 'o' , @collection.open_selected
|
39
41
|
m.bind 'shift+g' , _.bind @log.entries_index.goto_number, @, 'bottom'
|
40
42
|
m.bind 'g g' , _.bind @log.entries_index.goto_number, @, 'top'
|
41
|
-
m.bind '
|
43
|
+
m.bind 'p' , @toggle_params
|
44
|
+
m.bind ['o','enter'], @log.entries_index.toggle_open
|
42
45
|
index: =>
|
46
|
+
App.column = @partial '.column', 'shared/filters'
|
43
47
|
@log = @partial '.content', 'logs/show',
|
44
|
-
|
48
|
+
collection: @collection
|
45
49
|
@hotkeys()
|
@@ -1 +1 @@
|
|
1
|
-
Template = {"entries":{"index":"<div class='entries'></div>\n","entry":"<div class='marker'></div>\n<div class='details'>\n <div class='heading'>\n <div class='method'>{{method}}</div>\n <div class='format'>{{format}}</div>\n {{controller}}#{{action}}\n <div class='path'>{{path}}</div>\n <div class='datetime'>{{start_time}}</div>\n <div class='ms'>{{duration}}ms</div>\n </div>\n <div class='lines'></div>\n <div class='backtrace_lines'></div>\n</div>\n<div class='clear'></div>\n"},"backtrace_lines":{"index":"<table>\n <thead>\n <th class='toggle_rails'>\n <a href=\"#\" class=\"show_rails\" onclick=\"return false\">T</a>\n </th>\n <th class='exception' colspan='3'>\n {{name}}: {{message}}\n </th>\n </thead>\n <tbody></tbody>\n</table>\n","backtrace_line":"<td class='num'>{{num}}</td>\n<td class='msg'><a href=\"mvim://open?url={{url}}&line={{line_num}}\">{{msg}}</a></td>\n<td class='lnum'>{{line_num}}</td>\n<td class='in'>\n <span>{{in}}</span>\n</td>\n"},"lines":{"index":"<table>\n <thead></thead>\n <tbody></tbody>\n</table>\n","action_controller":{"write_fragment":"","read_fragment":"","expire_fragment":"","exist_fragment":"","write_page":"","expire_page":"","start_processing":"","process_action":"","send_file":"","send_data":"","redirect_to":"","halted_callback":""},"action_view":{"render_template":"<td class='msg'>render template</td>\n<td class='identifier'>{{identifier}}</td>\n<td class='layout'>\n <span>layout:</span>\n {{layout}}\n</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n","render_partial":"<td class='msg'>render partial</td>\n<td class='identifier'>{{identifier}}</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n"},"active_record":{"sql":"<td class='name'>{{name}}</td>\n<td class='sql'>\n <pre class='brush: sql'>{{sql}}</pre>\n</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n","identity":"<td class='name'>{{name}}</td>\n<td class='line'>{{line}}</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n"},"action_mailer":{"receive":"","deliver":""},"active_resource":{"request":""},"active_support":{"cache_read":"","cache_generate":"","cache_fetch_hit":"","cache_write":"","cache_delete":"","cache_exist":""}}}
|
1
|
+
Template = {"entries":{"index":"<div class='entries'></div>\n","entry":"<div class='marker'></div>\n<div class='details'>\n <div class='heading'>\n <div class='method'>{{method}}</div>\n <div class='format'>{{format}}</div>\n {{controller}}#{{action}}\n <div class='path'>{{path}}</div>\n <div class='datetime'>{{start_time}}</div>\n <div class='ms'>{{duration}}ms</div>\n </div>\n <div class='params'></div>\n <div class='lines'></div>\n <div class='backtrace_lines'></div>\n</div>\n<div class='clear'></div>\n"},"backtrace_lines":{"index":"<table>\n <thead>\n <th class='toggle_rails'>\n <a href=\"#\" class=\"show_rails\" onclick=\"return false\">T</a>\n </th>\n <th class='exception' colspan='3'>\n {{name}}: {{message}}\n </th>\n </thead>\n <tbody></tbody>\n</table>\n","backtrace_line":"<td class='num'>{{num}}</td>\n<td class='msg'><a href=\"mvim://open?url={{url}}&line={{line_num}}\">{{msg}}</a></td>\n<td class='lnum'>{{line_num}}</td>\n<td class='in'>\n <span>{{in}}</span>\n</td>\n"},"shared":{"filter_controller":"<input id=\"filter\" name=\"filter\" type=\"checkbox\" value=\"1\" />\n{{controller}}\n<div class='filter_actions'></div>\n","filter_action":"<input id=\"filter\" name=\"filter\" type=\"checkbox\" value=\"1\" />\n{{action}}\n"},"lines":{"index":"<table>\n <thead></thead>\n <tbody></tbody>\n</table>\n","action_controller":{"write_fragment":"","read_fragment":"","expire_fragment":"","exist_fragment":"","write_page":"","expire_page":"","start_processing":"","process_action":"","send_file":"","send_data":"","redirect_to":"","halted_callback":""},"action_view":{"render_template":"<td class='msg'>render template</td>\n<td class='identifier'>{{identifier}}</td>\n<td class='layout'>\n <span>layout:</span>\n {{layout}}\n</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n","render_partial":"<td class='msg'>render partial</td>\n<td class='identifier'>{{identifier}}</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n"},"active_record":{"sql":"<td class='name'>{{name}}</td>\n<td class='sql'>\n <pre class='brush: sql'>{{sql}}</pre>\n</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n","identity":"<td class='name'>{{name}}</td>\n<td class='line'>{{line}}</td>\n<td class='duration' colspan='10'>{{duration}}ms</td>\n"},"action_mailer":{"receive":"","deliver":""},"active_resource":{"request":""},"active_support":{"cache_read":"","cache_generate":"","cache_fetch_hit":"","cache_write":"","cache_delete":"","cache_exist":""}}}
|
@@ -3,6 +3,8 @@ class App.Views.Entries.Entry extends Backbone.View
|
|
3
3
|
events:
|
4
4
|
'click': 'select_and_toggle'
|
5
5
|
initialize: ->
|
6
|
+
@model.bind 'notice', @notice
|
7
|
+
@model.bind 'ignore', @ignore
|
6
8
|
@render()
|
7
9
|
select_and_toggle: (event) =>
|
8
10
|
target = $ event.target
|
@@ -12,14 +14,28 @@ class App.Views.Entries.Entry extends Backbone.View
|
|
12
14
|
@index.entry $ @el
|
13
15
|
@index.toggle_open()
|
14
16
|
render: =>
|
17
|
+
@add_to_filters()
|
15
18
|
@el_template 'entries/entry'
|
16
19
|
@color_ms()
|
17
20
|
@color_marker()
|
21
|
+
@params()
|
18
22
|
@backtrace()
|
19
23
|
@lines()
|
24
|
+
params:->
|
25
|
+
params = @model.get 'params'
|
26
|
+
html = _.map params, (v,k)->
|
27
|
+
boolean = v is true or v is false
|
28
|
+
number = !isNaN(parseFloat(v)) && isFinite(v)
|
29
|
+
kind = if boolean then 'boolean'
|
30
|
+
else if number then 'number'
|
31
|
+
else
|
32
|
+
v = "'#{v}'"
|
33
|
+
'string'
|
34
|
+
|
35
|
+
"<span class='param'><span class='key'>#{k}</span><span class='colon'>:</span> <span class='value #{kind}'>#{v}</span></span>"
|
36
|
+
$(@el).find('.params').html html.join('')
|
20
37
|
backtrace:->
|
21
38
|
backtrace = @model.get 'backtrace'
|
22
|
-
console.log backtrace
|
23
39
|
if backtrace
|
24
40
|
el = $(@el).find '.backtrace_lines'
|
25
41
|
@collect 'backtrace_lines',
|
@@ -47,3 +63,12 @@ class App.Views.Entries.Entry extends Backbone.View
|
|
47
63
|
else 'slow'
|
48
64
|
e = $(@el).find '.ms'
|
49
65
|
e.addClass c
|
66
|
+
ignore:=> $(@el).addClass 'ignore'
|
67
|
+
notice:=> $(@el).removeClass 'ignore'
|
68
|
+
add_to_filters:->
|
69
|
+
controller = @model.get 'controller'
|
70
|
+
action = @model.get 'action'
|
71
|
+
App.filters[controller] = [] if App.filters[controller] is undefined
|
72
|
+
App.filters[controller].push action
|
73
|
+
App.filters[controller] = _.uniq App.filters[controller]
|
74
|
+
App.column.render()
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class App.Views.Shared.FilterAction extends Backbone.View
|
2
|
+
className: 'filter_action'
|
3
|
+
events:
|
4
|
+
'click input': 'filter'
|
5
|
+
initialize:->
|
6
|
+
@render()
|
7
|
+
render:->
|
8
|
+
@el_template 'shared/filter_action'
|
9
|
+
filter:(e)->
|
10
|
+
parent = $(e.currentTarget).parent().parent().parent()
|
11
|
+
checked = parent.find('input:first').is(':checked')
|
12
|
+
if checked is false
|
13
|
+
controller = @model.get 'controller'
|
14
|
+
action = @model.get 'action'
|
15
|
+
checked = $(e.currentTarget).is(':checked')
|
16
|
+
trigger = if checked then 'ignore' else 'notice'
|
17
|
+
App.enteries.filter
|
18
|
+
controller : controller
|
19
|
+
aciton : action
|
20
|
+
trigger : trigger
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class App.Views.Shared.FilterController extends Backbone.View
|
2
|
+
className: 'filter_controller'
|
3
|
+
events:
|
4
|
+
'click input:first': 'filter'
|
5
|
+
initialize:->
|
6
|
+
@render()
|
7
|
+
render:->
|
8
|
+
@el_template 'shared/filter_controller'
|
9
|
+
@collect 'filter_actions',
|
10
|
+
el : @$ '.filter_actions'
|
11
|
+
template: 'shared/filter_actions'
|
12
|
+
filters = @model.get 'filters'
|
13
|
+
@collection.reset filters
|
14
|
+
filter:(e)->
|
15
|
+
e = $(e.currentTarget)
|
16
|
+
controller = @model.get 'controller'
|
17
|
+
checked = e.is(':checked')
|
18
|
+
trigger = if checked then 'ignore' else 'notice'
|
19
|
+
$(@el).find('input').attr 'checked', checked
|
20
|
+
App.enteries.filter
|
21
|
+
controller : controller
|
22
|
+
trigger : trigger
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class App.Views.Shared.Filters extends Backbone.View
|
2
|
+
initialize:->
|
3
|
+
App.filters = {}
|
4
|
+
@render()
|
5
|
+
render:->
|
6
|
+
$(@el).empty()
|
7
|
+
_.each App.filters, (v,k)=>
|
8
|
+
v = _.map v, (action)=>
|
9
|
+
{controller: k, action: v}
|
10
|
+
attrs =
|
11
|
+
controller : k
|
12
|
+
filters : v
|
13
|
+
model = new Backbone.Model attrs
|
14
|
+
e = @partial null, 'shared/filter_controller', model: model
|
15
|
+
$(@el).append e.el
|
@@ -24,12 +24,19 @@ html,body
|
|
24
24
|
|
25
25
|
.wrapper.filter
|
26
26
|
.column
|
27
|
+
:display block
|
27
28
|
:float left
|
28
29
|
:width 260px
|
29
30
|
:margin-left -100%
|
31
|
+
:color rgb(195,195,195)
|
32
|
+
:font-size 14px
|
30
33
|
.content_wrap
|
31
34
|
:float left
|
32
35
|
:width 100%
|
33
36
|
.content
|
34
37
|
:margin
|
35
38
|
:left 260px
|
39
|
+
|
40
|
+
.filter_action
|
41
|
+
:padding
|
42
|
+
:left 15px
|
@@ -45,15 +45,50 @@
|
|
45
45
|
:color rgb(50,250,100)
|
46
46
|
.datetime
|
47
47
|
:color rgb(120,120,120)
|
48
|
-
.lines, .backtrace_lines
|
48
|
+
.lines, .backtrace_lines, .params
|
49
|
+
:display none
|
50
|
+
&.ignore
|
49
51
|
:display none
|
50
52
|
&.selected
|
51
53
|
:background rgb(55,55,55)
|
52
54
|
&.open
|
53
|
-
.lines, .backtrace_lines
|
55
|
+
.lines, .backtrace_lines, .params
|
54
56
|
:display block
|
55
57
|
:padding-bottom 10px
|
56
58
|
.position_marker
|
57
59
|
:background rgb(255,0,0)
|
58
60
|
:height 2px
|
59
61
|
:margin 2px 0
|
62
|
+
|
63
|
+
.params
|
64
|
+
:padding 5px
|
65
|
+
:top 0px
|
66
|
+
:font-size 12px
|
67
|
+
.key
|
68
|
+
:color rgb(160,160,160)
|
69
|
+
.value
|
70
|
+
:margin
|
71
|
+
:left 5px
|
72
|
+
:right 10px
|
73
|
+
.string
|
74
|
+
:color rgb(0,200,100)
|
75
|
+
.number
|
76
|
+
:color rgb(0,100,200)
|
77
|
+
.boolean
|
78
|
+
:color rgb(200,200,0)
|
79
|
+
|
80
|
+
|
81
|
+
body.pretty_params
|
82
|
+
.open
|
83
|
+
.params
|
84
|
+
.param
|
85
|
+
:display block
|
86
|
+
//:display table
|
87
|
+
//:border-collapse collapse
|
88
|
+
//:border none
|
89
|
+
//.param
|
90
|
+
//:display table-row
|
91
|
+
//span
|
92
|
+
//:display table-cell
|
93
|
+
//.key, .colon
|
94
|
+
//:width 1%
|
@@ -28,7 +28,10 @@ class Rubyception::Entry
|
|
28
28
|
self.error = payload[:exception].present?
|
29
29
|
self.duration = event.duration.to_f.round(2)
|
30
30
|
self.id = event.transaction_id
|
31
|
-
|
31
|
+
params = payload[:params]
|
32
|
+
params.delete 'controller'
|
33
|
+
params.delete 'action'
|
34
|
+
self.params = params
|
32
35
|
self.start_time = event.time.to_s :entry
|
33
36
|
self.end_time = event.end.to_s :entry
|
34
37
|
end
|
@@ -83,6 +86,7 @@ class Rubyception::Entry
|
|
83
86
|
|
84
87
|
def to_json
|
85
88
|
methods = %w{controller
|
89
|
+
params
|
86
90
|
action
|
87
91
|
path
|
88
92
|
method
|
data/config/templating.yml
CHANGED
data/lib/rubyception/version.rb
CHANGED
@@ -20,6 +20,9 @@ class Rubyception::WebsocketServer
|
|
20
20
|
options = {
|
21
21
|
host: '0.0.0.0',
|
22
22
|
port: 3030 }
|
23
|
+
while defined?(Thin) && !EventMachine.reactor_running?
|
24
|
+
sleep 1
|
25
|
+
end
|
23
26
|
EventMachine::WebSocket.start(options) do |ws|
|
24
27
|
ws.onopen do
|
25
28
|
Rubyception::WebsocketServer.sockets << ws
|
data/test/dummy/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyception
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: haml
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: sass
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: jenny
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: em-websocket
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: compass
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: coffee-script
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :runtime
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: sqlite3
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,7 +133,12 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
description: Realtime Rails log in your browser. For Rails 3.1+
|
103
143
|
email:
|
104
144
|
- tyeshavik@gmail.com
|
@@ -111,6 +151,7 @@ files:
|
|
111
151
|
- app/assets/javascripts/rubyception/application.js
|
112
152
|
- app/assets/javascripts/rubyception/collections/backtrace_lines.coffee
|
113
153
|
- app/assets/javascripts/rubyception/collections/entries.coffee
|
154
|
+
- app/assets/javascripts/rubyception/collections/filter_actions.coffee
|
114
155
|
- app/assets/javascripts/rubyception/collections/lines.coffee
|
115
156
|
- app/assets/javascripts/rubyception/init.coffee
|
116
157
|
- app/assets/javascripts/rubyception/lib/backbone.js
|
@@ -122,6 +163,7 @@ files:
|
|
122
163
|
- app/assets/javascripts/rubyception/lib/underscore-min.js
|
123
164
|
- app/assets/javascripts/rubyception/models/backtrace_line.coffee
|
124
165
|
- app/assets/javascripts/rubyception/models/entry.coffee
|
166
|
+
- app/assets/javascripts/rubyception/models/filter_action.coffee
|
125
167
|
- app/assets/javascripts/rubyception/models/line.coffee
|
126
168
|
- app/assets/javascripts/rubyception/routers/log.coffee
|
127
169
|
- app/assets/javascripts/rubyception/shBrushSql.js
|
@@ -134,6 +176,10 @@ files:
|
|
134
176
|
- app/assets/javascripts/rubyception/views/lines/index.coffee
|
135
177
|
- app/assets/javascripts/rubyception/views/lines/line.coffee
|
136
178
|
- app/assets/javascripts/rubyception/views/logs/show.coffee
|
179
|
+
- app/assets/javascripts/rubyception/views/shared/filter_action.coffee
|
180
|
+
- app/assets/javascripts/rubyception/views/shared/filter_controller.coffee
|
181
|
+
- app/assets/javascripts/rubyception/views/shared/filters.coffee
|
182
|
+
- app/assets/javascripts/rubyception/views/shared/filters_actions.coffee
|
137
183
|
- app/assets/stylesheets/rubyception/application.sass
|
138
184
|
- app/assets/stylesheets/rubyception/backtrace_lines.sass
|
139
185
|
- app/assets/stylesheets/rubyception/default.sass
|
@@ -179,6 +225,8 @@ files:
|
|
179
225
|
- app/views/rubyception/lines/active_support/_cache_generate.haml
|
180
226
|
- app/views/rubyception/lines/active_support/_cache_read.haml
|
181
227
|
- app/views/rubyception/lines/active_support/_cache_write.haml
|
228
|
+
- app/views/rubyception/shared/_filter_action.haml
|
229
|
+
- app/views/rubyception/shared/_filter_controller.haml
|
182
230
|
- config/initializers/sass.rb
|
183
231
|
- config/initializers/websocket_server.rb
|
184
232
|
- config/routes.rb
|
@@ -352,7 +400,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
352
400
|
version: '0'
|
353
401
|
requirements: []
|
354
402
|
rubyforge_project:
|
355
|
-
rubygems_version: 1.8.
|
403
|
+
rubygems_version: 1.8.24
|
356
404
|
signing_key:
|
357
405
|
specification_version: 3
|
358
406
|
summary: Realtime Rails log in your browser
|