flammarion_rails 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +26 -0
- data/app/assets/javascripts/flammarion_rails/actions.coffee +95 -0
- data/lib/flammarion/engraving.rb +62 -17
- data/lib/flammarion/recognize_path.rb +27 -0
- data/lib/flammarion_rails/engine.rb +1 -0
- data/lib/flammarion_rails/version.rb +1 -1
- data/lib/rubame/server.rb +23 -35
- data/public/index.html +2 -16
- data/public/index.js +116 -0
- data/spec/dummy/log/development.log +8 -0
- data/spec/dummy/log/test.log +8 -0
- metadata +61 -82
- data/app/assets/config/flammarion_rails_manifest.js +0 -0
- data/config/routes.rb +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0M/0Mg2krTmzvpvndy5rHnhuun5BBfgA8mY3nz6myP6kdQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0P/0P6sKgG4-T4rwdhhAvLJKqmC2XHD18DbbxM7-oLWhXA.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/22/22E2TQFHi7XchzTLK5w8ZZ_iYCMIyyGwRmVazx3irqY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2R/2RUaNi4ZIYrYbhyd2C-Ww2kZHGazuNcAfrKjQoSubl4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3L/3LxcdISAk1c4X--4-sTB_h--GZF2Epue7I2gjbgvkQ4.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3p/3pa5vZojTdQB44mkfj5buJFWDKREMuCNJoOEP84rcDU.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/58/586fjw8FKooCH-968ZTIIrVkE9RuHmBnkYj5OYwcs9g.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bu/BuE1MKiZRiA2ei8bcxwYLjyJdTpEy4wxW852s55oNNk.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JD/JDCUTDoF2rC0R-NS53x4NhZ_wcTPq8E_ccURRvkjrbg.cache +0 -3
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KH/KHGH8y7fyC26rhzb2-uu0cV4z5-pxa2N3NkDIL_feBk.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LY/LYOt9-oLcF3-pZyrj-ObZCV5sJnzOX-ChSBrkZI72Oc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lu/LuB__cHcdlpiqGBKHUifyKQAk1Q8hYTNxvUnK1VPuJs.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lv/LvkAiAXzEhMj_E-ZRx0qe2EAXBsm_M7MRf4ids1kxdw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mw/MwOabPFIFDte8ZBuoVOOtd1Qu476fF4T4E78To9L2Eo.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mx/MxvaxgCXDp1kMg4ZPyEj18UaF7hti7eGd5irCjj7CYA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QF/QFvF-z4bMPE9dkk_vRFZYF8e2goQi8vWGeExjSUT92Q.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Re/Red0n__pXlXNH8SzCQTdfqRmTJxrcVN9AWr1__pJFP0.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SI9DDWxIPbS6sVOJ772L6_Jbfq17xBHX_sJw6gutPq4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SN/SNWLiOT9nptoa_fIBzkk6rau30FCwQnjLilnZtLUWKU.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TF/TFYV3Z2UC54NjsDNnfNTRAaCpEG-_o6wRVDYezsnnzk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/X_/X_-4jxim1KTh1Fjxx8_IJyO-3Wzv3M4N70rE0Hi5ipY.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Z4/Z4xtfQJ5r3sHK5ASuH1nYxFVJM360rK3PnL_RtnWXAk.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_h/_hwlFJ7l4uM_oLaUe5ZKud1WAQO5QCyqspXi5bIjitk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ct/ctAKDrnI0EvuP7FAZXCRPZCWA3hmwlIMurxUpX4dOO8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dg/dg3wGWeFjow5LX98G4IGeWcMyoTHYsklNz3gOLQSXr8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lV/lVt8G4NTNqewg9C9PXeaR1Abtx7AHu0vaSkHAhGWR0M.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/me/me4uxBSFG-PjZ9e6iUX80JlbffE5GmRQ7Un-fsLO0QA.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oz/ozK4IPJj2CBcsem3fLJx3wqcOl6mI6B91PkN0wVfkyk.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZoXZhq291Gxs21xFN0T4V1N1KwyFISSp7okEgbD7lY.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vA/vAcjLVwbHcbzsPpYo9NmFa4oW46YZoyQRriaJNpEoqw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vu/vugy1YR_4jOXqgIEqNMSTWQ6DiSEhSEzsBTMqENWhxU.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1pCDnU1k4aeEb3hZmNX4QNvaCUFbtHX4L7noBd035M.cache +0 -1
- data/spec/dummy/tmp/pids/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82f678ee45aa83dc6f693ddecaf234234bd8b88b
|
4
|
+
data.tar.gz: 4f9cc9687450d7a2b97e4385e3f4915926b959a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ce96110cd29735488158aed429a3a69bb6fab4374f0dd84c7746591ffd9d2aed5786b22c69202e2c358f110a7c51fc148cdfde16fa984ff19dd17b2d42e5c4c
|
7
|
+
data.tar.gz: c8a5537202c493f4e09a261dd081b3787e32d19e9680eecee18c108c80c679cabb7e872de216f5bed5c4a8ef11a5339bddca38719f05e101e539408b760ffbcc
|
data/README.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
1
|
# FlammarionRails
|
2
2
|
|
3
|
+
* TODO: custom rake task actions
|
4
|
+
|
5
|
+
* TODO: app packaging / installation procedure
|
6
|
+
|
7
|
+
* TODO: modal forms
|
8
|
+
|
9
|
+
* TODO: ajax
|
10
|
+
|
11
|
+
* TODO: sortable (might be related to referer/current url)
|
12
|
+
|
13
|
+
* TODO: request.referer --> return_to
|
14
|
+
|
15
|
+
* TODO: disable refresh / reload (disable left click)
|
16
|
+
|
17
|
+
* TODO: rack integration --> railties-5.0.0.1/lib/rails/engine.rb
|
18
|
+
|
19
|
+
* TODO: 404 and errors (rotate log files)
|
20
|
+
|
21
|
+
* TODO: settings/preferences
|
22
|
+
|
23
|
+
* TODO: try if 'action_dispatch.request.path_parameters' filled could prevent rails_admin to crash in index_path
|
24
|
+
|
25
|
+
* TODO: non-blocking download
|
26
|
+
|
27
|
+
* TODO: use pjax layout instead of full layout
|
28
|
+
|
3
29
|
This project rocks and uses MIT-LICENSE.
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# Disable Back/Forward
|
2
|
+
########################################
|
3
|
+
|
4
|
+
history.pushState(null, null, document.URL)
|
5
|
+
window.addEventListener 'popstate', ->
|
6
|
+
history.pushState(null, null, document.URL)
|
7
|
+
|
8
|
+
# NProgress
|
9
|
+
########################################
|
10
|
+
|
11
|
+
if NProgress?
|
12
|
+
window.progress_bar_timeout = null
|
13
|
+
|
14
|
+
ws.send_before_actions.push (data) ->
|
15
|
+
unless window.progress_bar_timeout?
|
16
|
+
window.progress_bar_timeout = setTimeout(->
|
17
|
+
NProgress.start()
|
18
|
+
, 500)
|
19
|
+
|
20
|
+
ws.onmessage_before_actions.push (event) ->
|
21
|
+
NProgress.done()
|
22
|
+
clearTimeout(window.progress_bar_timeout)
|
23
|
+
window.progress_bar_timeout = null
|
24
|
+
|
25
|
+
# Pjax
|
26
|
+
########################################
|
27
|
+
# Note: it's working for now, but it might be better to do something similar to the real pjax implementation
|
28
|
+
|
29
|
+
if $.pjax?
|
30
|
+
PROTOCOL = /^.*:\/{2}/i
|
31
|
+
$(document).on 'pjax:beforeSend', (event, xhr, settings) ->
|
32
|
+
event.preventDefault()
|
33
|
+
ws.send(action: 'pjax', url: settings.url.replace(PROTOCOL, ''))
|
34
|
+
|
35
|
+
ws.onmessage_actions.pjax = (event) ->
|
36
|
+
new_page = $("<div>")
|
37
|
+
new_page.html(ws_data.html)
|
38
|
+
container = new_page.find('[data-pjax-container]')
|
39
|
+
$('[data-pjax-container]').html(container.html())
|
40
|
+
$(document).trigger('rails_admin.dom_ready')
|
41
|
+
|
42
|
+
# Submit
|
43
|
+
########################################
|
44
|
+
|
45
|
+
$(document).on 'submit', (event) ->
|
46
|
+
event.preventDefault()
|
47
|
+
form = $(event.target)
|
48
|
+
return if form.hasClass('pjax-form')
|
49
|
+
ws.send(action: 'submit', url: form.attr('action'), form: form.serialize(), button: document.activeElement.name)
|
50
|
+
|
51
|
+
ws.onmessage_actions.submit =
|
52
|
+
if $.pjax?
|
53
|
+
ws.onmessage_actions.pjax
|
54
|
+
else
|
55
|
+
ws.onmessage_actions.page
|
56
|
+
|
57
|
+
# File
|
58
|
+
########################################
|
59
|
+
|
60
|
+
if saveAs?
|
61
|
+
window.ws_file = null
|
62
|
+
|
63
|
+
ws.onmessage_actions.file = (event) ->
|
64
|
+
window.ws_file = ws_data.name
|
65
|
+
document.title = 'Downloading...'
|
66
|
+
|
67
|
+
ws.send_before_actions.unshift (data) ->
|
68
|
+
if window.ws_file?
|
69
|
+
ws.send_skip_action = true
|
70
|
+
|
71
|
+
ws.onmessage_before_actions.unshift (event) ->
|
72
|
+
if window.ws_file?
|
73
|
+
saveAs(event.data, window.ws_file)
|
74
|
+
document.title = window.ws_file
|
75
|
+
window.ws_file = null
|
76
|
+
ws.onmessage_skip_action = true
|
77
|
+
|
78
|
+
# Ajax
|
79
|
+
########################################
|
80
|
+
# Note: app specific, $.ajax must be overriden
|
81
|
+
# Ex.:
|
82
|
+
# window.ajax_handler = $.ajax
|
83
|
+
#
|
84
|
+
# $.ajax = (xhr) ->
|
85
|
+
# if xhr.type?
|
86
|
+
# return ws.ajax_handler(xhr)
|
87
|
+
#
|
88
|
+
# switch xhr.dataType
|
89
|
+
# when 'text'
|
90
|
+
# modal = $('#modal').data('ra-remoteForm')
|
91
|
+
# ...
|
92
|
+
# when 'json'
|
93
|
+
# ...
|
94
|
+
# else
|
95
|
+
# ...
|
data/lib/flammarion/engraving.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
module Flammarion
|
2
2
|
class Engraving
|
3
3
|
include Revelator
|
4
|
+
include RecognizePath
|
4
5
|
|
5
|
-
attr_accessor :on_disconnect, :on_connect, :sockets
|
6
|
+
attr_accessor :on_disconnect, :on_connect, :sockets, :request, :status, :headers, :response
|
6
7
|
|
7
8
|
# Creates a new Engraving (i.e., a new display window)
|
8
9
|
# @option options [Proc] :on_connect Called when the display window is
|
@@ -49,30 +50,67 @@ module Flammarion
|
|
49
50
|
end
|
50
51
|
|
51
52
|
def process_message(msg)
|
52
|
-
|
53
|
-
|
54
|
-
|
53
|
+
params = JSON.parse(msg).with_indifferent_access
|
54
|
+
action = params.delete(:action) || 'page'
|
55
|
+
dispatch(params)
|
56
|
+
|
57
|
+
if status == 302
|
58
|
+
params = {
|
59
|
+
url: headers['Location'].sub(/^.*:\/{2}(:\d{0,4})?/i, ''),
|
60
|
+
session: response.request.session
|
61
|
+
}.with_indifferent_access
|
62
|
+
dispatch(params)
|
63
|
+
render(action: 'page', html: response.body)
|
64
|
+
elsif headers['Content-Transfer-Encoding'] == 'binary'
|
65
|
+
filename = headers['Content-Disposition'].sub(/.*filename=/, '').gsub(/(^"|"$)/, '')
|
66
|
+
render(action: 'file', name: filename)
|
67
|
+
render(response.body)
|
68
|
+
else
|
69
|
+
render(action: action, html: response.body)
|
70
|
+
end
|
55
71
|
|
56
|
-
rescue
|
57
|
-
Rails.logger.
|
72
|
+
rescue => e
|
73
|
+
Rails.logger.error "[EXCEPTION][#{msg}]"
|
74
|
+
Rails.logger.error " [#{e.class}]\n#{e.message}\n" << e.backtrace.first(20).join("\n")
|
75
|
+
Rails.logger.error "[END]"
|
76
|
+
render(action: 'error', title: "#{e.class}: #{e.message}")
|
58
77
|
end
|
59
78
|
|
60
79
|
def dispatch(params)
|
61
|
-
|
62
|
-
|
80
|
+
session = params.delete(:session)
|
81
|
+
url = params.delete(:url)
|
82
|
+
uri = URI.parse(url)
|
83
|
+
query_params = Rack::Utils.parse_nested_query(uri.query)
|
84
|
+
|
85
|
+
if params.key?(:form)
|
86
|
+
params[:method] = 'post'
|
87
|
+
params[params.delete(:button)] = ''
|
88
|
+
params.merge!(Rack::Utils.parse_nested_query(params.delete(:form)))
|
89
|
+
end
|
90
|
+
if params.key?(:_method)
|
91
|
+
params[:method] = params[:_method]
|
92
|
+
end
|
93
|
+
params[:method] ||= :get
|
63
94
|
|
64
|
-
|
65
|
-
|
66
|
-
|
95
|
+
path_params = recognize_path(url, params)
|
96
|
+
unless path_params.key?(:controller)
|
97
|
+
raise ActionController::RoutingError, "No route matches [#{url}]#{params.inspect}"
|
67
98
|
end
|
68
99
|
|
69
|
-
controller_name = "#{
|
100
|
+
controller_name = "#{path_params[:controller].underscore.camelize}Controller"
|
70
101
|
controller = ActiveSupport::Dependencies.constantize(controller_name)
|
71
|
-
action =
|
72
|
-
|
102
|
+
action = path_params[:action] || 'index'
|
103
|
+
request_env = {
|
104
|
+
'rack.input' => '',
|
105
|
+
'REQUEST_METHOD' => params[:method].to_s.upcase,
|
106
|
+
'action_dispatch.request.parameters' => path_params.merge!(params).merge!(query_params),
|
107
|
+
}
|
108
|
+
request_env['rack.session'] = session if session
|
109
|
+
self.request = ActionDispatch::Request.new(request_env)
|
73
110
|
response = controller.make_response! request
|
74
111
|
|
75
|
-
controller.dispatch(action, request, response)
|
112
|
+
self.status, self.headers, body = controller.dispatch(action, request, response)
|
113
|
+
self.response = body.instance_variable_get(:@response)
|
76
114
|
end
|
77
115
|
|
78
116
|
def start_server
|
@@ -83,12 +121,19 @@ module Flammarion
|
|
83
121
|
@@server
|
84
122
|
end
|
85
123
|
|
86
|
-
def
|
124
|
+
def render(body)
|
87
125
|
if @sockets.empty?
|
88
126
|
open_a_window
|
89
127
|
wait_for_a_connection
|
90
128
|
end
|
91
|
-
|
129
|
+
if body.is_a? Hash
|
130
|
+
body = body.to_json
|
131
|
+
else
|
132
|
+
binary = true
|
133
|
+
end
|
134
|
+
@sockets.each do |ws|
|
135
|
+
ws.send_data(body, binary)
|
136
|
+
end
|
92
137
|
nil
|
93
138
|
end
|
94
139
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Flammarion
|
2
|
+
module RecognizePath
|
3
|
+
def recognize_path(path, options)
|
4
|
+
recognized_path = Rails.application.routes.recognize_path(path, options)
|
5
|
+
|
6
|
+
rescue ActionController::RoutingError => e
|
7
|
+
unless e.message.start_with? 'No route matches'
|
8
|
+
raise e
|
9
|
+
end
|
10
|
+
|
11
|
+
Rails::Engine.subclasses.each do |engine|
|
12
|
+
mounted_engine = Rails.application.routes.routes.find{ |r| r.app.app == engine }
|
13
|
+
next unless mounted_engine
|
14
|
+
|
15
|
+
path_for_engine = path.sub(/^#{mounted_engine.path.spec}/, '')
|
16
|
+
begin
|
17
|
+
recognized_path = engine.routes.recognize_path(path_for_engine, options)
|
18
|
+
break
|
19
|
+
rescue ActionController::RoutingError => e
|
20
|
+
# do nothing
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
recognized_path
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/rubame/server.rb
CHANGED
@@ -62,11 +62,10 @@ module Rubame
|
|
62
62
|
def close(client)
|
63
63
|
@reading.delete client.socket
|
64
64
|
@clients.delete client.socket
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
65
|
+
client.socket.close
|
66
|
+
rescue
|
67
|
+
# do nothing
|
68
|
+
ensure
|
70
69
|
client.closed = true
|
71
70
|
end
|
72
71
|
|
@@ -110,46 +109,35 @@ module Rubame
|
|
110
109
|
@socket.write data
|
111
110
|
end
|
112
111
|
|
113
|
-
def
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
end
|
112
|
+
def send_data(data, binary = false)
|
113
|
+
type = binary ? :binary : :text
|
114
|
+
frame = WebSocket::Frame::Outgoing::Server.new(version: @handshake.version, data: data, type: type)
|
115
|
+
@socket.write frame
|
116
|
+
@socket.flush
|
117
|
+
rescue
|
118
|
+
@server.close(self) unless @closed
|
121
119
|
end
|
122
120
|
|
123
121
|
def onopen(&blk)
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
@opened = false
|
129
|
-
end
|
130
|
-
end
|
122
|
+
return unless @opened
|
123
|
+
blk.call
|
124
|
+
ensure
|
125
|
+
@opened = false
|
131
126
|
end
|
132
127
|
|
133
128
|
def onmessage(&blk)
|
134
|
-
|
135
|
-
|
136
|
-
@messaged.each do |x|
|
137
|
-
blk.call(x.to_s)
|
138
|
-
end
|
139
|
-
ensure
|
140
|
-
@messaged = []
|
141
|
-
end
|
129
|
+
@messaged.each do |x|
|
130
|
+
blk.call(x.to_s)
|
142
131
|
end
|
132
|
+
ensure
|
133
|
+
@messaged = []
|
143
134
|
end
|
144
135
|
|
145
136
|
def onclose(&blk)
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
# do nothing
|
151
|
-
end
|
152
|
-
end
|
137
|
+
return unless @closed
|
138
|
+
blk.call
|
139
|
+
ensure
|
140
|
+
# do nothing
|
153
141
|
end
|
154
142
|
end
|
155
143
|
end
|
data/public/index.html
CHANGED
@@ -1,23 +1,9 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<
|
5
|
-
|
6
|
-
window.ws = new WebSocket("ws://localhost:" + qs.get("port") + "/" + qs.get("path"));
|
7
|
-
|
8
|
-
ws.onopen = function(event) {
|
9
|
-
ws.send(JSON.stringify({url: qs.get("boot")}));
|
10
|
-
};
|
11
|
-
|
12
|
-
ws.onmessage = function(event) {
|
13
|
-
var data = JSON.parse(event.data);
|
14
|
-
var boot_page = document.open("text/html", "replace");
|
15
|
-
boot_page.write(data.document);
|
16
|
-
boot_page.close();
|
17
|
-
};
|
18
|
-
</script>
|
4
|
+
<title>...</title>
|
5
|
+
<script src="index.js"></script>
|
19
6
|
</head>
|
20
7
|
<body>
|
21
|
-
<!-- Loader -->
|
22
8
|
</body>
|
23
9
|
</html>
|
data/public/index.js
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
window.qs = new URLSearchParams(location.search);
|
2
|
+
window.ws = new WebSocket("ws://localhost:" + qs.get("port") + "/" + qs.get("path"));
|
3
|
+
window.ws_data = null;
|
4
|
+
|
5
|
+
ws.onopen = function(event) {
|
6
|
+
ws.send({url: qs.get("boot")});
|
7
|
+
};
|
8
|
+
|
9
|
+
ws.onclose = function(event) {
|
10
|
+
var reason;
|
11
|
+
// See http://tools.ietf.org/html/rfc6455#section-7.4.1
|
12
|
+
if (event.code == 1000) {
|
13
|
+
reason = "Normal closure, meaning that the purpose for which the connection was established has been fulfilled.";
|
14
|
+
} else if (event.code == 1001) {
|
15
|
+
reason = "An endpoint is \"going away\", such as a server going down or a browser having navigated away from a page.";
|
16
|
+
} else if (event.code == 1002) {
|
17
|
+
reason = "An endpoint is terminating the connection due to a protocol error";
|
18
|
+
} else if (event.code == 1003) {
|
19
|
+
reason = "An endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).";
|
20
|
+
} else if (event.code == 1004) {
|
21
|
+
reason = "Reserved. The specific meaning might be defined in the future.";
|
22
|
+
} else if (event.code == 1005) {
|
23
|
+
reason = "No status code was actually present.";
|
24
|
+
} else if (event.code == 1006) {
|
25
|
+
reason = "The connection was closed abnormally, e.g., without sending or receiving a Close control frame";
|
26
|
+
} else if (event.code == 1007) {
|
27
|
+
reason = "An endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [http://tools.ietf.org/html/rfc3629] data within a text message).";
|
28
|
+
} else if (event.code == 1008) {
|
29
|
+
reason = "An endpoint is terminating the connection because it has received a message that \"violates its policy\". This reason is given either if there is no other sutible reason, or if there is a need to hide specific details about the policy.";
|
30
|
+
} else if (event.code == 1009) {
|
31
|
+
reason = "An endpoint is terminating the connection because it has received a message that is too big for it to process.";
|
32
|
+
} else if (event.code == 1010) { // Note that this status code is not used by the server, because it can fail the WebSocket handshake instead.
|
33
|
+
reason = "An endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake. <br /> Specifically, the extensions that are needed are: " + event.reason;
|
34
|
+
} else if (event.code == 1011) {
|
35
|
+
reason = "A server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.";
|
36
|
+
} else if (event.code == 1015) {
|
37
|
+
reason = "The connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).";
|
38
|
+
} else {
|
39
|
+
reason = "Unknown reason";
|
40
|
+
}
|
41
|
+
console.log(reason);
|
42
|
+
document.title = "Disconnected: " + reason;
|
43
|
+
};
|
44
|
+
|
45
|
+
ws.onerror = function(event) {
|
46
|
+
console.log(event);
|
47
|
+
};
|
48
|
+
|
49
|
+
ws.send_before_actions = [];
|
50
|
+
ws.send_skip_action = false;
|
51
|
+
ws.send_actions = {};
|
52
|
+
ws.send_handler = ws.send;
|
53
|
+
|
54
|
+
ws.send = function send(data) {
|
55
|
+
try {
|
56
|
+
ws.send_before_actions.forEach(function (before_action) {
|
57
|
+
if (!ws.send_skip_action) {
|
58
|
+
before_action(event);
|
59
|
+
}
|
60
|
+
});
|
61
|
+
if (!ws.send_skip_action) {
|
62
|
+
var action = ws.send_actions[data.action];
|
63
|
+
if (action) {
|
64
|
+
action(data);
|
65
|
+
}
|
66
|
+
ws.send_handler(JSON.stringify(data));
|
67
|
+
}
|
68
|
+
}
|
69
|
+
catch(error) {
|
70
|
+
console.log(data);
|
71
|
+
console.log(error);
|
72
|
+
document.title = 'Error on message sent...';
|
73
|
+
}
|
74
|
+
finally {
|
75
|
+
ws.send_skip_action = false;
|
76
|
+
}
|
77
|
+
};
|
78
|
+
|
79
|
+
ws.onmessage_before_actions = [];
|
80
|
+
ws.onmessage_skip_action = false;
|
81
|
+
ws.onmessage_actions = {
|
82
|
+
page: function (event) {
|
83
|
+
var page = document.open("text/html", "replace");
|
84
|
+
page.write(ws_data.html);
|
85
|
+
page.close();
|
86
|
+
},
|
87
|
+
error: function (event) {
|
88
|
+
console.log(ws_data.title);
|
89
|
+
document.title = ws_data.title;
|
90
|
+
}
|
91
|
+
};
|
92
|
+
|
93
|
+
ws.onmessage = function(event) {
|
94
|
+
try {
|
95
|
+
ws.onmessage_before_actions.forEach(function (before_action) {
|
96
|
+
if (!ws.onmessage_skip_action) {
|
97
|
+
before_action(event);
|
98
|
+
}
|
99
|
+
});
|
100
|
+
if (!ws.onmessage_skip_action) {
|
101
|
+
ws_data = JSON.parse(event.data);
|
102
|
+
var action = ws.onmessage_actions[ws_data.action];
|
103
|
+
if (action) {
|
104
|
+
action(event);
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
catch(error) {
|
109
|
+
console.log(event);
|
110
|
+
console.log(error);
|
111
|
+
document.title = 'Error on message received...';
|
112
|
+
}
|
113
|
+
finally {
|
114
|
+
ws.onmessage_skip_action = false;
|
115
|
+
}
|
116
|
+
};
|
@@ -816,4 +816,12 @@ Processing by ProductsController#index as HTML
|
|
816
816
|
Completed 200 OK in 192ms (Views: 12.9ms)
|
817
817
|
|
818
818
|
|
819
|
+
Connection closed
|
820
|
+
Connection open
|
821
|
+
Processing by ProductsController#index as HTML
|
822
|
+
Rendering products/index.html.erb within layouts/application
|
823
|
+
Rendered products/index.html.erb within layouts/application (1.4ms)
|
824
|
+
Completed 200 OK in 327ms (Views: 191.4ms)
|
825
|
+
|
826
|
+
|
819
827
|
Connection closed
|
data/spec/dummy/log/test.log
CHANGED
@@ -14,3 +14,11 @@
|
|
14
14
|
[1m[35m (0.2ms)[0m [1m[31mrollback transaction[0m
|
15
15
|
[1m[35m (0.2ms)[0m [1m[36mbegin transaction[0m
|
16
16
|
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
17
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
18
|
+
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
19
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
20
|
+
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
21
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
22
|
+
[1m[35m (0.1ms)[0m [1m[31mrollback transaction[0m
|
23
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
24
|
+
[1m[35m (0.2ms)[0m [1m[31mrollback transaction[0m
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flammarion_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrice Lebel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,6 +66,62 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ext_rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.3'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: jquery-rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.2'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.2'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: nprogress-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.2'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pjax_rails
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.4'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.4'
|
69
125
|
- !ruby/object:Gem::Dependency
|
70
126
|
name: sqlite3
|
71
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,9 +230,9 @@ files:
|
|
174
230
|
- MIT-LICENSE
|
175
231
|
- README.md
|
176
232
|
- Rakefile
|
177
|
-
- app/assets/
|
178
|
-
- config/routes.rb
|
233
|
+
- app/assets/javascripts/flammarion_rails/actions.coffee
|
179
234
|
- lib/flammarion/engraving.rb
|
235
|
+
- lib/flammarion/recognize_path.rb
|
180
236
|
- lib/flammarion/revelator.rb
|
181
237
|
- lib/flammarion/server.rb
|
182
238
|
- lib/flammarion_rails.rb
|
@@ -186,6 +242,7 @@ files:
|
|
186
242
|
- lib/rubame/server.rb
|
187
243
|
- lib/tasks/flammarion_rails_tasks.rake
|
188
244
|
- public/index.html
|
245
|
+
- public/index.js
|
189
246
|
- spec/dummy/Rakefile
|
190
247
|
- spec/dummy/app/assets/config/manifest.js
|
191
248
|
- spec/dummy/app/assets/javascripts/application.js
|
@@ -244,45 +301,6 @@ files:
|
|
244
301
|
- spec/dummy/public/apple-touch-icon-precomposed.png
|
245
302
|
- spec/dummy/public/apple-touch-icon.png
|
246
303
|
- spec/dummy/public/favicon.ico
|
247
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/0M/0Mg2krTmzvpvndy5rHnhuun5BBfgA8mY3nz6myP6kdQ.cache
|
248
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/0P/0P6sKgG4-T4rwdhhAvLJKqmC2XHD18DbbxM7-oLWhXA.cache
|
249
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/22/22E2TQFHi7XchzTLK5w8ZZ_iYCMIyyGwRmVazx3irqY.cache
|
250
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2R/2RUaNi4ZIYrYbhyd2C-Ww2kZHGazuNcAfrKjQoSubl4.cache
|
251
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3L/3LxcdISAk1c4X--4-sTB_h--GZF2Epue7I2gjbgvkQ4.cache
|
252
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3p/3pa5vZojTdQB44mkfj5buJFWDKREMuCNJoOEP84rcDU.cache
|
253
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/58/586fjw8FKooCH-968ZTIIrVkE9RuHmBnkYj5OYwcs9g.cache
|
254
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Bu/BuE1MKiZRiA2ei8bcxwYLjyJdTpEy4wxW852s55oNNk.cache
|
255
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/JD/JDCUTDoF2rC0R-NS53x4NhZ_wcTPq8E_ccURRvkjrbg.cache
|
256
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/KH/KHGH8y7fyC26rhzb2-uu0cV4z5-pxa2N3NkDIL_feBk.cache
|
257
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LY/LYOt9-oLcF3-pZyrj-ObZCV5sJnzOX-ChSBrkZI72Oc.cache
|
258
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Lu/LuB__cHcdlpiqGBKHUifyKQAk1Q8hYTNxvUnK1VPuJs.cache
|
259
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Lv/LvkAiAXzEhMj_E-ZRx0qe2EAXBsm_M7MRf4ids1kxdw.cache
|
260
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mw/MwOabPFIFDte8ZBuoVOOtd1Qu476fF4T4E78To9L2Eo.cache
|
261
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mx/MxvaxgCXDp1kMg4ZPyEj18UaF7hti7eGd5irCjj7CYA.cache
|
262
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/QF/QFvF-z4bMPE9dkk_vRFZYF8e2goQi8vWGeExjSUT92Q.cache
|
263
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Re/Red0n__pXlXNH8SzCQTdfqRmTJxrcVN9AWr1__pJFP0.cache
|
264
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SI9DDWxIPbS6sVOJ772L6_Jbfq17xBHX_sJw6gutPq4.cache
|
265
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/SN/SNWLiOT9nptoa_fIBzkk6rau30FCwQnjLilnZtLUWKU.cache
|
266
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/TF/TFYV3Z2UC54NjsDNnfNTRAaCpEG-_o6wRVDYezsnnzk.cache
|
267
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/X_/X_-4jxim1KTh1Fjxx8_IJyO-3Wzv3M4N70rE0Hi5ipY.cache
|
268
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Z4/Z4xtfQJ5r3sHK5ASuH1nYxFVJM360rK3PnL_RtnWXAk.cache
|
269
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_h/_hwlFJ7l4uM_oLaUe5ZKud1WAQO5QCyqspXi5bIjitk.cache
|
270
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache
|
271
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ct/ctAKDrnI0EvuP7FAZXCRPZCWA3hmwlIMurxUpX4dOO8.cache
|
272
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/dg/dg3wGWeFjow5LX98G4IGeWcMyoTHYsklNz3gOLQSXr8.cache
|
273
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lV/lVt8G4NTNqewg9C9PXeaR1Abtx7AHu0vaSkHAhGWR0M.cache
|
274
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache
|
275
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/me/me4uxBSFG-PjZ9e6iUX80JlbffE5GmRQ7Un-fsLO0QA.cache
|
276
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache
|
277
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache
|
278
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/oz/ozK4IPJj2CBcsem3fLJx3wqcOl6mI6B91PkN0wVfkyk.cache
|
279
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZoXZhq291Gxs21xFN0T4V1N1KwyFISSp7okEgbD7lY.cache
|
280
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache
|
281
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/vA/vAcjLVwbHcbzsPpYo9NmFa4oW46YZoyQRriaJNpEoqw.cache
|
282
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/vu/vugy1YR_4jOXqgIEqNMSTWQ6DiSEhSEzsBTMqENWhxU.cache
|
283
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache
|
284
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1pCDnU1k4aeEb3hZmNX4QNvaCUFbtHX4L7noBd035M.cache
|
285
|
-
- spec/dummy/tmp/pids/server.pid
|
286
304
|
- spec/rails_helper.rb
|
287
305
|
- spec/rubame/server_spec.rb
|
288
306
|
- spec/spec_helper.rb
|
@@ -371,44 +389,5 @@ test_files:
|
|
371
389
|
- spec/dummy/config/initializers/inflections.rb
|
372
390
|
- spec/dummy/db/test.sqlite3
|
373
391
|
- spec/dummy/db/development.sqlite3
|
374
|
-
- spec/dummy/tmp/pids/server.pid
|
375
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/0P/0P6sKgG4-T4rwdhhAvLJKqmC2XHD18DbbxM7-oLWhXA.cache
|
376
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache
|
377
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/JD/JDCUTDoF2rC0R-NS53x4NhZ_wcTPq8E_ccURRvkjrbg.cache
|
378
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ct/ctAKDrnI0EvuP7FAZXCRPZCWA3hmwlIMurxUpX4dOO8.cache
|
379
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/TF/TFYV3Z2UC54NjsDNnfNTRAaCpEG-_o6wRVDYezsnnzk.cache
|
380
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/oz/ozK4IPJj2CBcsem3fLJx3wqcOl6mI6B91PkN0wVfkyk.cache
|
381
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lV/lVt8G4NTNqewg9C9PXeaR1Abtx7AHu0vaSkHAhGWR0M.cache
|
382
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/dg/dg3wGWeFjow5LX98G4IGeWcMyoTHYsklNz3gOLQSXr8.cache
|
383
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache
|
384
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SI9DDWxIPbS6sVOJ772L6_Jbfq17xBHX_sJw6gutPq4.cache
|
385
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/22/22E2TQFHi7XchzTLK5w8ZZ_iYCMIyyGwRmVazx3irqY.cache
|
386
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/KH/KHGH8y7fyC26rhzb2-uu0cV4z5-pxa2N3NkDIL_feBk.cache
|
387
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/SN/SNWLiOT9nptoa_fIBzkk6rau30FCwQnjLilnZtLUWKU.cache
|
388
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/vu/vugy1YR_4jOXqgIEqNMSTWQ6DiSEhSEzsBTMqENWhxU.cache
|
389
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2R/2RUaNi4ZIYrYbhyd2C-Ww2kZHGazuNcAfrKjQoSubl4.cache
|
390
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mx/MxvaxgCXDp1kMg4ZPyEj18UaF7hti7eGd5irCjj7CYA.cache
|
391
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/X_/X_-4jxim1KTh1Fjxx8_IJyO-3Wzv3M4N70rE0Hi5ipY.cache
|
392
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache
|
393
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3p/3pa5vZojTdQB44mkfj5buJFWDKREMuCNJoOEP84rcDU.cache
|
394
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/me/me4uxBSFG-PjZ9e6iUX80JlbffE5GmRQ7Un-fsLO0QA.cache
|
395
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Z4/Z4xtfQJ5r3sHK5ASuH1nYxFVJM360rK3PnL_RtnWXAk.cache
|
396
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache
|
397
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache
|
398
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_h/_hwlFJ7l4uM_oLaUe5ZKud1WAQO5QCyqspXi5bIjitk.cache
|
399
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1pCDnU1k4aeEb3hZmNX4QNvaCUFbtHX4L7noBd035M.cache
|
400
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Lv/LvkAiAXzEhMj_E-ZRx0qe2EAXBsm_M7MRf4ids1kxdw.cache
|
401
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/QF/QFvF-z4bMPE9dkk_vRFZYF8e2goQi8vWGeExjSUT92Q.cache
|
402
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/vA/vAcjLVwbHcbzsPpYo9NmFa4oW46YZoyQRriaJNpEoqw.cache
|
403
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LY/LYOt9-oLcF3-pZyrj-ObZCV5sJnzOX-ChSBrkZI72Oc.cache
|
404
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3L/3LxcdISAk1c4X--4-sTB_h--GZF2Epue7I2gjbgvkQ4.cache
|
405
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Bu/BuE1MKiZRiA2ei8bcxwYLjyJdTpEy4wxW852s55oNNk.cache
|
406
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/0M/0Mg2krTmzvpvndy5rHnhuun5BBfgA8mY3nz6myP6kdQ.cache
|
407
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache
|
408
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZoXZhq291Gxs21xFN0T4V1N1KwyFISSp7okEgbD7lY.cache
|
409
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/58/586fjw8FKooCH-968ZTIIrVkE9RuHmBnkYj5OYwcs9g.cache
|
410
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Lu/LuB__cHcdlpiqGBKHUifyKQAk1Q8hYTNxvUnK1VPuJs.cache
|
411
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mw/MwOabPFIFDte8ZBuoVOOtd1Qu476fF4T4E78To9L2Eo.cache
|
412
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Re/Red0n__pXlXNH8SzCQTdfqRmTJxrcVN9AWr1__pJFP0.cache
|
413
392
|
- spec/rails_helper.rb
|
414
393
|
has_rdoc:
|
File without changes
|
data/config/routes.rb
DELETED
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0M/0Mg2krTmzvpvndy5rHnhuun5BBfgA8mY3nz6myP6kdQ.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0P/0P6sKgG4-T4rwdhhAvLJKqmC2XHD18DbbxM7-oLWhXA.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/javascripts/cable.js?type=application/javascript&pipeline=self&id=07fc84e79b4b423bec27adcdf83ecf6b7d1fde1f094c6d70689ce54e82b6556c:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/22/22E2TQFHi7XchzTLK5w8ZZ_iYCMIyyGwRmVazx3irqY.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2R/2RUaNi4ZIYrYbhyd2C-Ww2kZHGazuNcAfrKjQoSubl4.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3L/3LxcdISAk1c4X--4-sTB_h--GZF2Epue7I2gjbgvkQ4.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%��B�����șo�$'�A�d��L���xR�U
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3p/3pa5vZojTdQB44mkfj5buJFWDKREMuCNJoOEP84rcDU.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%�<������X���̀#+�����,�(o���
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/58/586fjw8FKooCH-968ZTIIrVkE9RuHmBnkYj5OYwcs9g.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=00059d7cf94df38bef86c0af478e6a352b63415a36441f87f88e3746abca0638:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bu/BuE1MKiZRiA2ei8bcxwYLjyJdTpEy4wxW852s55oNNk.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%A�>��N�6�n���f��9��V�~K��
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JD/JDCUTDoF2rC0R-NS53x4NhZ_wcTPq8E_ccURRvkjrbg.cache
DELETED
@@ -1,3 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}
|
3
|
-
I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KH/KHGH8y7fyC26rhzb2-uu0cV4z5-pxa2N3NkDIL_feBk.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%:c�b��d����R��Uqf�ֿS��i�]ýb%
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LY/LYOt9-oLcF3-pZyrj-ObZCV5sJnzOX-ChSBrkZI72Oc.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lu/LuB__cHcdlpiqGBKHUifyKQAk1Q8hYTNxvUnK1VPuJs.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"}app/assets/stylesheets/application.css?type=text/css&id=28bbb8e4d6c5443630a95612faef5ea8450d300fddbae3e12baec82dda68b71b:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lv/LvkAiAXzEhMj_E-ZRx0qe2EAXBsm_M7MRf4ids1kxdw.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mw/MwOabPFIFDte8ZBuoVOOtd1Qu476fF4T4E78To9L2Eo.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%A��G�{h t�l�m�V���NE���f���
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mx/MxvaxgCXDp1kMg4ZPyEj18UaF7hti7eGd5irCjj7CYA.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QF/QFvF-z4bMPE9dkk_vRFZYF8e2goQi8vWGeExjSUT92Q.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Re/Red0n__pXlXNH8SzCQTdfqRmTJxrcVN9AWr1__pJFP0.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%�aY}�)�vH`�=�T��y��-��0�@��g~�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SI9DDWxIPbS6sVOJ772L6_Jbfq17xBHX_sJw6gutPq4.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SN/SNWLiOT9nptoa_fIBzkk6rau30FCwQnjLilnZtLUWKU.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%��B�����șo�$'�A�d��L���xR�U
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TF/TFYV3Z2UC54NjsDNnfNTRAaCpEG-_o6wRVDYezsnnzk.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Z4/Z4xtfQJ5r3sHK5ASuH1nYxFVJM360rK3PnL_RtnWXAk.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=7465908afe1bca24341fa75dab41af69147019f26d86f7ea19bd4ed9c9ad0068:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_h/_hwlFJ7l4uM_oLaUe5ZKud1WAQO5QCyqspXi5bIjitk.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash} I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable.js;TTI"2file-digest://app/assets/javascripts/cable.js;TTI"$file-digest://app/assets/config;TTI"1file-digest://app/assets/config/action_cable;TTI"$file-digest://app/assets/images;TTI"1file-digest://app/assets/images/action_cable;TTI")file-digest://app/assets/javascripts;TTI"6file-digest://app/assets/javascripts/action_cable;TTI")file-digest://app/assets/stylesheets;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"Qfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/config;TTI"^file-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/config/action_cable;TTI"Qfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/images;TTI"^file-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/images/action_cable;TTI"Vfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/javascripts;TTI"cfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/javascripts/action_cable;TTI"Vfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/stylesheets;TTI"cfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/stylesheets/action_cable;TTI"vfile-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled;TTI"~file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable;TTI"2file-digest://app/assets/javascripts/channels;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ct/ctAKDrnI0EvuP7FAZXCRPZCWA3hmwlIMurxUpX4dOO8.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dg/dg3wGWeFjow5LX98G4IGeWcMyoTHYsklNz3gOLQSXr8.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lV/lVt8G4NTNqewg9C9PXeaR1Abtx7AHu0vaSkHAhGWR0M.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%�d�-�K���`���8Y��3�/Y����a~K
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/me/me4uxBSFG-PjZ9e6iUX80JlbffE5GmRQ7Un-fsLO0QA.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=debug&id=c5f58bf7086aae7e53090bd8aaa30482edd727a2d0f5e3d9ea216e496bee82b4:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oz/ozK4IPJj2CBcsem3fLJx3wqcOl6mI6B91PkN0wVfkyk.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash} I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"[processors:type=application/javascript&file_type=application/javascript&pipeline=debug;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable.js;TTI"2file-digest://app/assets/javascripts/cable.js;TTI"$file-digest://app/assets/config;TTI"1file-digest://app/assets/config/action_cable;TTI"$file-digest://app/assets/images;TTI"1file-digest://app/assets/images/action_cable;TTI")file-digest://app/assets/javascripts;TTI"6file-digest://app/assets/javascripts/action_cable;TTI")file-digest://app/assets/stylesheets;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"Qfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/config;TTI"^file-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/config/action_cable;TTI"Qfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/images;TTI"^file-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/images/action_cable;TTI"Vfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/javascripts;TTI"cfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/javascripts/action_cable;TTI"Vfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/stylesheets;TTI"cfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/stylesheets/action_cable;TTI"vfile-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled;TTI"~file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable;TTI"2file-digest://app/assets/javascripts/channels;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZoXZhq291Gxs21xFN0T4V1N1KwyFISSp7okEgbD7lY.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�/home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable.js?type=application/javascript&pipeline=self&id=f7ff668800d895169dace5e2621f0bd28edc32838958f88b6079c1bdb1b3228d:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"?processors:type=text/css&file_type=text/css&pipeline=debug;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vA/vAcjLVwbHcbzsPpYo9NmFa4oW46YZoyQRriaJNpEoqw.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vu/vugy1YR_4jOXqgIEqNMSTWQ6DiSEhSEzsBTMqENWhxU.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/javascripts/application.js?type=application/javascript&id=8f538a62ba0103f13349670f24de20d0808a7a7ed93bc8e1515960fec5c886e6:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"2file-digest://app/assets/javascripts/cable.js;TTI"$file-digest://app/assets/config;TTI"1file-digest://app/assets/config/action_cable;TTI"$file-digest://app/assets/images;TTI"1file-digest://app/assets/images/action_cable;TTI")file-digest://app/assets/javascripts;TTI"6file-digest://app/assets/javascripts/action_cable;TTI")file-digest://app/assets/stylesheets;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"Qfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/config;TTI"^file-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/config/action_cable;TTI"Qfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/images;TTI"^file-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/images/action_cable;TTI"Vfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/javascripts;TTI"cfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/javascripts/action_cable;TTI"Vfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/stylesheets;TTI"cfile-digest:///home/plebel/Desktop/patleb/flammarion_rails/app/assets/stylesheets/action_cable;TTI"vfile-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled;TTI"~file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable;TTI"�file-digest:///home/plebel/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.1/lib/assets/compiled/action_cable.js;TTI"2file-digest://app/assets/javascripts/channels;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1pCDnU1k4aeEb3hZmNX4QNvaCUFbtHX4L7noBd035M.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=debug&id=ec30881bee5d364566d5f9647047319525c0c4cae285862dd246e60b76730f5b:ET
|
@@ -1 +0,0 @@
|
|
1
|
-
8880
|