volt 0.9.5 → 0.9.6.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/app/volt/tasks/query_tasks.rb +1 -1
- data/app/volt/tasks/user_tasks.rb +6 -0
- data/docs/UPGRADE_GUIDE.md +19 -0
- data/lib/volt.rb +0 -1
- data/lib/volt/cli.rb +3 -0
- data/lib/volt/cli/destroy.rb +8 -0
- data/lib/volt/cli/generate.rb +1 -105
- data/lib/volt/cli/generators.rb +111 -0
- data/lib/volt/controllers/model_controller.rb +1 -1
- data/lib/volt/helpers/time.rb +5 -5
- data/lib/volt/models/array_model.rb +1 -1
- data/lib/volt/models/helpers/base.rb +28 -12
- data/lib/volt/models/persistors/page.rb +6 -6
- data/lib/volt/models/persistors/query/query_listener.rb +1 -1
- data/lib/volt/page/bindings/each_binding.rb +1 -1
- data/lib/volt/page/channel.rb +18 -7
- data/lib/volt/page/tasks.rb +10 -4
- data/lib/volt/reactive/computation.rb +20 -8
- data/lib/volt/reactive/dependency.rb +3 -1
- data/lib/volt/server/component_templates.rb +4 -3
- data/lib/volt/server/middleware/default_middleware_stack.rb +6 -6
- data/lib/volt/server/rack/index_files.rb +0 -12
- data/lib/volt/server/rack/opal_files.rb +1 -1
- data/lib/volt/server/socket_connection_handler.rb +40 -1
- data/lib/volt/server/template_handlers/sprockets_component_handler.rb +5 -2
- data/lib/volt/server/template_handlers/view_processor.rb +4 -4
- data/lib/volt/tasks/task.rb +2 -1
- data/lib/volt/utils/csso_patch.rb +1 -1
- data/lib/volt/version.rb +1 -1
- data/lib/volt/volt/app.rb +9 -0
- data/lib/volt/volt/server_setup/app.rb +19 -0
- data/lib/volt/volt/users.rb +4 -0
- data/spec/apps/kitchen_sink/app/main/config/routes.rb +1 -0
- data/spec/apps/kitchen_sink/app/main/controllers/main_controller.rb +3 -0
- data/spec/apps/kitchen_sink/app/main/models/user.rb +18 -0
- data/spec/apps/kitchen_sink/app/main/views/main/callbacks.html +7 -0
- data/spec/integration/bindings_spec.rb +1 -1
- data/spec/integration/callbacks_spec.rb +31 -0
- data/spec/integration/todos_spec.rb +2 -2
- data/spec/models/array_model_spec.rb +13 -0
- data/spec/models/associations_spec.rb +1 -1
- data/spec/models/field_helpers_spec.rb +1 -1
- data/spec/models/model_spec.rb +18 -0
- data/spec/models/permissions_spec.rb +1 -2
- data/spec/models/persistors/page_spec.rb +19 -0
- data/spec/reactive/computation_spec.rb +33 -0
- data/spec/server/socket_connection_handler_spec.rb +99 -0
- data/spec/tasks/dispatcher_spec.rb +1 -1
- data/spec/tasks/user_tasks_spec.rb +1 -1
- data/spec/utils/task_argument_filtererer_spec.rb +1 -1
- data/templates/project/Gemfile.tt +1 -1
- data/templates/project/README.md.tt +1 -1
- data/templates/project/config/app.rb.tt +10 -0
- data/templates/view/index.html.tt +1 -1
- metadata +14 -5
- data/lib/volt/utils/set_patch.rb +0 -25
@@ -6,4 +6,22 @@ class User < Volt::User
|
|
6
6
|
|
7
7
|
validate login_field, unique: true, length: 8
|
8
8
|
validate :email, email: true
|
9
|
+
|
10
|
+
unless RUBY_PLATFORM == "opal"
|
11
|
+
Volt.current_app.on("user_connect") do |user_id|
|
12
|
+
begin
|
13
|
+
Volt.current_app.store.users.where(id: user_id).first.sync._event_triggered = "user_connect"
|
14
|
+
rescue
|
15
|
+
#we rescue as this callback will also get called from the SocketConnectionHandler specs (and will fail)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
Volt.current_app.on("user_disconnect") do |user_id|
|
20
|
+
begin
|
21
|
+
Volt.current_app.store.users.where(id: user_id).first.sync._event_triggered = "user_disconnect"
|
22
|
+
rescue
|
23
|
+
#we rescue as this callback will also get called from the SocketConnectionHandler specs (and will fail)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
9
27
|
end
|
@@ -131,7 +131,7 @@ describe 'bindings test', type: :feature, sauce: true do
|
|
131
131
|
# expect(find('#pageSelect3')).to have_content('two')
|
132
132
|
#
|
133
133
|
# # Fill in one field and see if it updates the rest
|
134
|
-
# fill_in('pageSelect2', :
|
134
|
+
# fill_in('pageSelect2', with: 'three')
|
135
135
|
# expect(find('#pageSelect1').value).to eq('three')
|
136
136
|
# expect(find('#pageSelect2').value).to eq('three')
|
137
137
|
# expect(find('#pageSelect3')).to have_content('three')
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'lifecycle callbacks', type: :feature, sauce: true do
|
4
|
+
|
5
|
+
context 'with a user' do
|
6
|
+
before do
|
7
|
+
# Add the user
|
8
|
+
store._users! << { email: 'test@test.com', password: 'awes0mesEcRet', name: 'Test Account 9550' }
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should trigger a user_connect event when a user logs in and a user_disconnect event when a user logs out' do
|
12
|
+
visit '/'
|
13
|
+
|
14
|
+
click_link 'Login'
|
15
|
+
|
16
|
+
fields = all(:css, 'form .form-control')
|
17
|
+
fields[0].set('test@test.com')
|
18
|
+
fields[1].set('awes0mesEcRet')
|
19
|
+
click_button 'Login'
|
20
|
+
|
21
|
+
visit '/callbacks'
|
22
|
+
|
23
|
+
expect(page).to have_content('user_connect')
|
24
|
+
|
25
|
+
click_link 'Test Account 9550'
|
26
|
+
click_link 'Logout'
|
27
|
+
|
28
|
+
expect(page).to have_content('user_disconnect')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -5,7 +5,7 @@ describe 'todos app', type: :feature, sauce: true do
|
|
5
5
|
it 'should add a todo and remove it' do
|
6
6
|
visit '/todos'
|
7
7
|
|
8
|
-
fill_in 'newtodo', :
|
8
|
+
fill_in 'newtodo', with: 'Todo 1'
|
9
9
|
find('#newtodo').native.send_keys(ENTER_KEY)
|
10
10
|
|
11
11
|
expect(page).to have_content('Todo 1')
|
@@ -28,7 +28,7 @@ describe 'todos app', type: :feature, sauce: true do
|
|
28
28
|
it 'should update a todo check state and persist' do
|
29
29
|
visit '/todos'
|
30
30
|
|
31
|
-
fill_in 'newtodo', :
|
31
|
+
fill_in 'newtodo', with: 'Todo 1'
|
32
32
|
find('#newtodo').native.send_keys(ENTER_KEY)
|
33
33
|
|
34
34
|
expect(page).to have_content('Todo 1')
|
@@ -50,4 +50,17 @@ describe Volt::ArrayModel do
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
53
|
+
context "appending a model" do
|
54
|
+
it "sets the parent to self" do
|
55
|
+
item = Volt::Model.new
|
56
|
+
array = Volt::ArrayModel.new([], { path: [:items], parent: double("StoreRoot") })
|
57
|
+
array << item
|
58
|
+
expect(item.parent).to eq(array)
|
59
|
+
|
60
|
+
sub = Volt::Model.new
|
61
|
+
item._sub_items << sub
|
62
|
+
expect(sub.parent).to eq(item._sub_items)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
53
66
|
end
|
@@ -85,7 +85,7 @@ describe Volt::Associations do
|
|
85
85
|
bob = store.people.create.sync
|
86
86
|
|
87
87
|
expect(bob.path).to eq([:people, :[]])
|
88
|
-
address = bob.addresses.create({:
|
88
|
+
address = bob.addresses.create({street: '1234 awesome street'})
|
89
89
|
|
90
90
|
expect(bob.addresses[0].sync.person_id).to eq(bob.id)
|
91
91
|
expect(bob.id).to_not eq(nil)
|
@@ -47,6 +47,6 @@ describe 'field helpers' do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'should track the fields on the model class' do
|
50
|
-
expect(ExampleModelWithField.fields_data).to eq({:
|
50
|
+
expect(ExampleModelWithField.fields_data).to eq({name:[nil, {}], value:[[Numeric, NilClass], {}]})
|
51
51
|
end
|
52
52
|
end
|
data/spec/models/model_spec.rb
CHANGED
@@ -9,6 +9,9 @@ end
|
|
9
9
|
class Items < Volt::ArrayModel
|
10
10
|
end
|
11
11
|
|
12
|
+
class SubItem < Item
|
13
|
+
end
|
14
|
+
|
12
15
|
class TestAssignsMethod < Volt::Model
|
13
16
|
def name=(val)
|
14
17
|
self._name = val
|
@@ -147,6 +150,15 @@ describe Volt::Model do
|
|
147
150
|
expect(values).to eq([nil, 'one'])
|
148
151
|
end
|
149
152
|
|
153
|
+
if RUBY_PLATFORM != 'opal'
|
154
|
+
it 'should allow a create/destroy from an existing model class' do
|
155
|
+
item = Item.new(name: 'The item')
|
156
|
+
store._items.create(item)
|
157
|
+
|
158
|
+
item.destroy
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
150
162
|
it 'should trigger changed for any indicies after a deleted index' do
|
151
163
|
model = Volt::Model.new
|
152
164
|
|
@@ -612,4 +624,10 @@ describe Volt::Model do
|
|
612
624
|
model._items << {}
|
613
625
|
expect(model._items).to be_instance_of Items
|
614
626
|
end
|
627
|
+
|
628
|
+
it 'assigns the superclass\'s custom ArrayModel if it exists' do
|
629
|
+
model = Volt::Model.new
|
630
|
+
model._sub_items << {}
|
631
|
+
expect(model._sub_items).to be_instance_of Items
|
632
|
+
end
|
615
633
|
end
|
@@ -61,8 +61,7 @@ describe 'model permissions' do
|
|
61
61
|
let(:user_todo) { TestUserTodo.new }
|
62
62
|
|
63
63
|
it 'auto-associates users via own_by_user' do
|
64
|
-
|
65
|
-
expect(user_todo.respond_to?(:user)).to be(true)
|
64
|
+
expect(user_todo).to respond_to(:user)
|
66
65
|
end
|
67
66
|
|
68
67
|
it 'should follow CRUD states when checking permissions' do
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Volt
|
4
|
+
module Persistors
|
5
|
+
describe Page do
|
6
|
+
describe '#where' do
|
7
|
+
it 'searches for records in the page collection with the given values' do
|
8
|
+
juan = Volt::Model.new(name: 'Juan', city: 'Quito', age: 13)
|
9
|
+
pedro = Volt::Model.new(name: 'Pedro', city: 'Quito', age: 15)
|
10
|
+
jose = Volt::Model.new(name: 'Jose', city: 'Quito', age: 13)
|
11
|
+
|
12
|
+
page = described_class.new [jose, juan, pedro]
|
13
|
+
|
14
|
+
expect(page.where age: 13, city: 'Quito').to match_array [juan, jose]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -112,6 +112,39 @@ describe Volt::Computation do
|
|
112
112
|
expect(values).to eq([nil, nil, 'inner', 'outer', 'inner'])
|
113
113
|
end
|
114
114
|
|
115
|
+
it 'should raise an exception on a .watch! on the initial run' do
|
116
|
+
comp = nil
|
117
|
+
count = 1
|
118
|
+
expect do
|
119
|
+
comp = -> { count += 1 ; wrong_method }.watch!
|
120
|
+
end.to raise_error(/method `wrong_method'/)
|
121
|
+
# comp.stop
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should log an exception on the 2nd run, but not raise it' do
|
125
|
+
comp = nil
|
126
|
+
count = 0
|
127
|
+
dep = Volt::Dependency.new
|
128
|
+
|
129
|
+
expect(Volt.logger).to receive(:error) { nil }
|
130
|
+
|
131
|
+
expect do
|
132
|
+
comp = proc do
|
133
|
+
dep.depend
|
134
|
+
count += 1
|
135
|
+
if count > 1
|
136
|
+
raise "Count gt one"
|
137
|
+
end
|
138
|
+
end.watch!
|
139
|
+
end.not_to raise_error
|
140
|
+
|
141
|
+
dep.changed!
|
142
|
+
|
143
|
+
expect do
|
144
|
+
Volt::Computation.flush!
|
145
|
+
end.not_to raise_error
|
146
|
+
end
|
147
|
+
|
115
148
|
describe 'watch_and_resolve!' do
|
116
149
|
it 'should resolve any returnted promises' do
|
117
150
|
promise = Promise.new
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
if RUBY_PLATFORM != 'opal'
|
4
|
+
require 'volt/server/socket_connection_handler'
|
5
|
+
describe Volt::SocketConnectionHandler do
|
6
|
+
let(:fake_dispatcher) { double("Dispatcher", volt_app: Volt.current_app)}
|
7
|
+
|
8
|
+
let(:fake_session) {double("Faye::WebSocket")}
|
9
|
+
|
10
|
+
before do
|
11
|
+
@old_dispatcher = Volt::SocketConnectionHandler.dispatcher
|
12
|
+
Volt::SocketConnectionHandler.dispatcher = fake_dispatcher
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
Volt::SocketConnectionHandler.dispatcher = @old_dispatcher
|
17
|
+
end
|
18
|
+
|
19
|
+
let(:connection_handler) { Volt::SocketConnectionHandler.new(fake_session) }
|
20
|
+
|
21
|
+
subject!{ connection_handler }
|
22
|
+
|
23
|
+
describe '#creation' do
|
24
|
+
|
25
|
+
context 'with valid session' do
|
26
|
+
|
27
|
+
it 'should append itself to @@channels' do
|
28
|
+
expect(Volt::SocketConnectionHandler.channels).to include(subject)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should trigger a client_connect event' do
|
32
|
+
val = 0
|
33
|
+
|
34
|
+
Volt.current_app.on("client_connect") do
|
35
|
+
val = 1
|
36
|
+
end
|
37
|
+
|
38
|
+
# TODO: change the way this is handled, we shouldn't have to instantiate a new SocketConnectionHandler just for this test
|
39
|
+
expect{Volt::SocketConnectionHandler.new(fake_session)}.to change{val}.by(1)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '#update' do
|
45
|
+
context 'with nil user_id' do
|
46
|
+
it 'should trigger a user_connect event when given a valid user_id' do
|
47
|
+
id = 0
|
48
|
+
Volt.current_app.on("user_connect") do |user_id|
|
49
|
+
id = user_id
|
50
|
+
end
|
51
|
+
|
52
|
+
expect{subject.update_user_id(123)}.to change{id}.by(123)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context 'with valid user_id' do
|
57
|
+
it 'should trigger a user_disconnect event when given a nil user_id' do
|
58
|
+
id = 0
|
59
|
+
Volt.current_app.on("user_disconnect") do |user_id|
|
60
|
+
id = user_id
|
61
|
+
end
|
62
|
+
|
63
|
+
subject.user_id = 123
|
64
|
+
|
65
|
+
expect{subject.update_user_id(nil)}.to change{id}.by(123)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe '#close' do
|
71
|
+
it 'should trigger a client_disconnect event' do
|
72
|
+
allow(Volt::SocketConnectionHandler.dispatcher).to receive(:close_channel).and_return true
|
73
|
+
|
74
|
+
val = 0
|
75
|
+
|
76
|
+
Volt.current_app.on("client_disconnect") do
|
77
|
+
val = 1
|
78
|
+
end
|
79
|
+
|
80
|
+
expect{subject.closed}.to change{val}.by(1)
|
81
|
+
end
|
82
|
+
context 'with valid user_id' do
|
83
|
+
it 'should trigger a user_disconnect event' do
|
84
|
+
allow(Volt::SocketConnectionHandler.dispatcher).to receive(:close_channel).and_return true
|
85
|
+
|
86
|
+
subject.user_id = 123
|
87
|
+
|
88
|
+
id = 0
|
89
|
+
|
90
|
+
Volt.current_app.on("user_disconnect") do |user_id|
|
91
|
+
id = user_id
|
92
|
+
end
|
93
|
+
|
94
|
+
expect{subject.closed}.to change{id}.by(123)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -76,7 +76,7 @@ if RUBY_PLATFORM != 'opal'
|
|
76
76
|
it 'should let you set a cookie' do
|
77
77
|
channel = double('channel')
|
78
78
|
|
79
|
-
allow(channel).to receive(:send_message).with('response', 0, 'yes it works', {:
|
79
|
+
allow(channel).to receive(:send_message).with('response', 0, 'yes it works', {something:"awesome"})
|
80
80
|
expect(Volt.logger).to receive(:log_dispatch)
|
81
81
|
|
82
82
|
dispatcher.dispatch(channel, [0, 'TestTask', :set_cookie, {}])
|
@@ -9,7 +9,7 @@ if RUBY_PLATFORM != 'opal'
|
|
9
9
|
double('FakeUsersCollection', where: fake_response)
|
10
10
|
end
|
11
11
|
|
12
|
-
let(:fake_store) { double('FakeStore', :
|
12
|
+
let(:fake_store) { double('FakeStore', _users: fake_users_collection) }
|
13
13
|
|
14
14
|
let(:login_info) { { 'login' => 'Marty', 'password' => 'McFly' } }
|
15
15
|
|
@@ -16,7 +16,7 @@ if RUBY_PLATFORM != 'opal'
|
|
16
16
|
|
17
17
|
it 'should create and run a new TaskArgumentFilterer when its filter method is called' do
|
18
18
|
filtered_args = TaskArgumentFilterer.filter([{login: 'jam@jam.com', password: 'some password'}])
|
19
|
-
expect(filtered_args).to eq([{:
|
19
|
+
expect(filtered_args).to eq([{login:"jam@jam.com", password:"[FILTERED]"}])
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
@@ -51,6 +51,16 @@ Volt.configure do |config|
|
|
51
51
|
# have rack deflate all files.
|
52
52
|
# config.deflate = true
|
53
53
|
|
54
|
+
#########################
|
55
|
+
# Websocket configuration
|
56
|
+
#########################
|
57
|
+
# If you need to use a different domain or path for the websocket connection,
|
58
|
+
# you can set it here. Volt provides the socket connection url at /socket,
|
59
|
+
# but if for example you are using a proxy server that doesn't support
|
60
|
+
# websockets, you can point the websocket connection at the app server
|
61
|
+
# directly.
|
62
|
+
# config.public.websocket_url = '/socket'
|
63
|
+
|
54
64
|
#######################
|
55
65
|
# Public configurations
|
56
66
|
#######################
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: volt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Stout
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -415,7 +415,9 @@ files:
|
|
415
415
|
- lib/volt/cli/base_index_renderer.rb
|
416
416
|
- lib/volt/cli/bundle.rb
|
417
417
|
- lib/volt/cli/console.rb
|
418
|
+
- lib/volt/cli/destroy.rb
|
418
419
|
- lib/volt/cli/generate.rb
|
420
|
+
- lib/volt/cli/generators.rb
|
419
421
|
- lib/volt/cli/new_gem.rb
|
420
422
|
- lib/volt/cli/runner.rb
|
421
423
|
- lib/volt/config.rb
|
@@ -600,7 +602,6 @@ files:
|
|
600
602
|
- lib/volt/utils/promise_extensions.rb
|
601
603
|
- lib/volt/utils/read_write_lock.rb
|
602
604
|
- lib/volt/utils/recursive_exists.rb
|
603
|
-
- lib/volt/utils/set_patch.rb
|
604
605
|
- lib/volt/utils/tilt_patch.rb
|
605
606
|
- lib/volt/utils/time_patch.rb
|
606
607
|
- lib/volt/utils/timers.rb
|
@@ -646,6 +647,7 @@ files:
|
|
646
647
|
- spec/apps/kitchen_sink/app/main/views/events/index.html
|
647
648
|
- spec/apps/kitchen_sink/app/main/views/mailers/welcome.email
|
648
649
|
- spec/apps/kitchen_sink/app/main/views/main/bindings.html
|
650
|
+
- spec/apps/kitchen_sink/app/main/views/main/callbacks.html
|
649
651
|
- spec/apps/kitchen_sink/app/main/views/main/cookie_test.html
|
650
652
|
- spec/apps/kitchen_sink/app/main/views/main/first_last.html
|
651
653
|
- spec/apps/kitchen_sink/app/main/views/main/flash.html
|
@@ -679,6 +681,7 @@ files:
|
|
679
681
|
- spec/extra_core/string_transformations_spec.rb
|
680
682
|
- spec/extra_core/symbol_spec.rb
|
681
683
|
- spec/integration/bindings_spec.rb
|
684
|
+
- spec/integration/callbacks_spec.rb
|
682
685
|
- spec/integration/client_require_spec.rb
|
683
686
|
- spec/integration/cookies_spec.rb
|
684
687
|
- spec/integration/event_spec.rb
|
@@ -706,6 +709,7 @@ files:
|
|
706
709
|
- spec/models/model_state_spec.rb
|
707
710
|
- spec/models/permissions_spec.rb
|
708
711
|
- spec/models/persistors/flash_spec.rb
|
712
|
+
- spec/models/persistors/page_spec.rb
|
709
713
|
- spec/models/persistors/params_spec.rb
|
710
714
|
- spec/models/persistors/store_spec.rb
|
711
715
|
- spec/models/url_spec.rb
|
@@ -757,6 +761,7 @@ files:
|
|
757
761
|
- spec/server/rack/quite_common_logger_spec.rb
|
758
762
|
- spec/server/rack/rack_requests_spec.rb
|
759
763
|
- spec/server/rack/sprockets_helpers_setup.rb
|
764
|
+
- spec/server/socket_connection_handler_spec.rb
|
760
765
|
- spec/spec_helper.rb
|
761
766
|
- spec/store/mongo_spec.rb
|
762
767
|
- spec/tasks/dispatcher_spec.rb
|
@@ -875,9 +880,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
875
880
|
version: '2.1'
|
876
881
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
877
882
|
requirements:
|
878
|
-
- - "
|
883
|
+
- - ">"
|
879
884
|
- !ruby/object:Gem::Version
|
880
|
-
version:
|
885
|
+
version: 1.3.1
|
881
886
|
requirements: []
|
882
887
|
rubyforge_project:
|
883
888
|
rubygems_version: 2.4.5
|
@@ -917,6 +922,7 @@ test_files:
|
|
917
922
|
- spec/apps/kitchen_sink/app/main/views/events/index.html
|
918
923
|
- spec/apps/kitchen_sink/app/main/views/mailers/welcome.email
|
919
924
|
- spec/apps/kitchen_sink/app/main/views/main/bindings.html
|
925
|
+
- spec/apps/kitchen_sink/app/main/views/main/callbacks.html
|
920
926
|
- spec/apps/kitchen_sink/app/main/views/main/cookie_test.html
|
921
927
|
- spec/apps/kitchen_sink/app/main/views/main/first_last.html
|
922
928
|
- spec/apps/kitchen_sink/app/main/views/main/flash.html
|
@@ -950,6 +956,7 @@ test_files:
|
|
950
956
|
- spec/extra_core/string_transformations_spec.rb
|
951
957
|
- spec/extra_core/symbol_spec.rb
|
952
958
|
- spec/integration/bindings_spec.rb
|
959
|
+
- spec/integration/callbacks_spec.rb
|
953
960
|
- spec/integration/client_require_spec.rb
|
954
961
|
- spec/integration/cookies_spec.rb
|
955
962
|
- spec/integration/event_spec.rb
|
@@ -977,6 +984,7 @@ test_files:
|
|
977
984
|
- spec/models/model_state_spec.rb
|
978
985
|
- spec/models/permissions_spec.rb
|
979
986
|
- spec/models/persistors/flash_spec.rb
|
987
|
+
- spec/models/persistors/page_spec.rb
|
980
988
|
- spec/models/persistors/params_spec.rb
|
981
989
|
- spec/models/persistors/store_spec.rb
|
982
990
|
- spec/models/url_spec.rb
|
@@ -1028,6 +1036,7 @@ test_files:
|
|
1028
1036
|
- spec/server/rack/quite_common_logger_spec.rb
|
1029
1037
|
- spec/server/rack/rack_requests_spec.rb
|
1030
1038
|
- spec/server/rack/sprockets_helpers_setup.rb
|
1039
|
+
- spec/server/socket_connection_handler_spec.rb
|
1031
1040
|
- spec/spec_helper.rb
|
1032
1041
|
- spec/store/mongo_spec.rb
|
1033
1042
|
- spec/tasks/dispatcher_spec.rb
|