volt 0.9.5 → 0.9.6.pre1
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.
- 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
|