entangled 0.0.20 → 0.0.21
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/README.md +96 -2
- data/entangled.gemspec +1 -0
- data/entangled.js +1 -1
- data/lib/entangled/controller.rb +5 -11
- data/lib/entangled/model.rb +36 -15
- data/lib/entangled/version.rb +1 -1
- data/spec/dummy/app/controllers/items_controller.rb +39 -0
- data/spec/dummy/app/controllers/lists_controller.rb +32 -0
- data/spec/dummy/app/models/item.rb +6 -0
- data/spec/dummy/app/models/list.rb +6 -0
- data/spec/dummy/db/migrate/20150314054548_create_lists.rb +9 -0
- data/spec/dummy/db/migrate/20150314055847_create_items.rb +11 -0
- data/spec/dummy/db/schema.rb +15 -1
- data/spec/dummy/public/app/app.js +10 -1
- data/spec/dummy/public/app/controllers/list.js +16 -0
- data/spec/dummy/public/app/controllers/lists.js +23 -0
- data/spec/dummy/public/app/controllers/message.js +0 -1
- data/spec/dummy/public/app/entangled/entangled.js +46 -29
- data/spec/dummy/public/app/services/list.js +9 -0
- data/spec/dummy/public/index.html +3 -0
- data/spec/dummy/public/test/controllers/lists_test.js +87 -0
- data/spec/dummy/public/views/lists/index.html +14 -0
- data/spec/dummy/public/views/lists/show.html +9 -0
- data/spec/models/inclusion_exclusion_spec.rb +22 -22
- data/spec/models/item_spec.rb +40 -0
- data/spec/models/list_spec.rb +31 -0
- data/spec/models/message_spec.rb +19 -16
- data/spec/routing/nested_routing_spec.rb +0 -7
- data/spec/spec_helper.rb +1 -0
- metadata +44 -2
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Item, type: :model do
|
4
|
+
describe 'Attributes' do
|
5
|
+
it { is_expected.to respond_to :name }
|
6
|
+
it { is_expected.to respond_to :complete }
|
7
|
+
it { is_expected.to respond_to :list_id }
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'Database' do
|
11
|
+
it { is_expected.to have_db_column :name }
|
12
|
+
it { is_expected.to have_db_column(:complete).of_type(:boolean) }
|
13
|
+
it { is_expected.to have_db_column(:list_id).of_type(:integer) }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'Associations' do
|
17
|
+
it { is_expected.to belong_to :list }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'Methods' do
|
21
|
+
let(:list) { List.create(name: 'foo') }
|
22
|
+
let(:item) { list.items.create(name: 'bar') }
|
23
|
+
|
24
|
+
describe '#member_channel' do
|
25
|
+
it 'has a nested member channel' do
|
26
|
+
expect(item.member_channel).to eq "/lists/#{list.to_param}/items/#{item.to_param}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#collection_channel' do
|
31
|
+
it 'has a nested collection channel' do
|
32
|
+
expect(item.collection_channel).to eq "/lists/#{list.to_param}/items"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'Validations' do
|
38
|
+
it { is_expected.to validate_presence_of :list }
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe List, type: :model do
|
4
|
+
describe 'Attributes' do
|
5
|
+
it { is_expected.to respond_to :name }
|
6
|
+
end
|
7
|
+
|
8
|
+
describe 'Database' do
|
9
|
+
it { is_expected.to have_db_column :name }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'Associations' do
|
13
|
+
it { is_expected.to have_many(:items).dependent(:destroy) }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'Methods' do
|
17
|
+
let(:list) { List.create(name: 'foo') }
|
18
|
+
|
19
|
+
describe '#channel' do
|
20
|
+
it 'has the right channel' do
|
21
|
+
expect(list.member_channel).to eq "/lists/#{list.to_param}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#collection_channel' do
|
26
|
+
it 'has the right channel' do
|
27
|
+
expect(list.collection_channel).to eq '/lists'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/models/message_spec.rb
CHANGED
@@ -5,18 +5,24 @@ RSpec.describe Message, type: :model do
|
|
5
5
|
it { is_expected.to respond_to :body }
|
6
6
|
end
|
7
7
|
|
8
|
+
describe 'Database' do
|
9
|
+
it { is_expected.to have_db_column :body }
|
10
|
+
end
|
11
|
+
|
8
12
|
describe 'Methods' do
|
9
|
-
describe '
|
13
|
+
describe '#collection_channel' do
|
14
|
+
let(:message) { Message.create(body: 'foo') }
|
15
|
+
|
10
16
|
it 'is the underscore, pluralized model name' do
|
11
|
-
expect(
|
17
|
+
expect(message.collection_channel).to eq '/messages'
|
12
18
|
end
|
13
19
|
end
|
14
20
|
|
15
|
-
describe '#
|
21
|
+
describe '#member_channel' do
|
16
22
|
let(:message) { Message.create(body: 'foo') }
|
17
|
-
|
18
|
-
it "is the
|
19
|
-
expect(message.
|
23
|
+
|
24
|
+
it "is the collection channel plus the member as param" do
|
25
|
+
expect(message.member_channel).to eq "/messages/#{message.to_param}"
|
20
26
|
end
|
21
27
|
end
|
22
28
|
|
@@ -35,7 +41,7 @@ RSpec.describe Message, type: :model do
|
|
35
41
|
redis = stub_redis
|
36
42
|
|
37
43
|
expect(redis).to have_received(:publish).with(
|
38
|
-
|
44
|
+
message.collection_channel, {
|
39
45
|
action: :create,
|
40
46
|
resource: message
|
41
47
|
}.to_json
|
@@ -46,7 +52,7 @@ RSpec.describe Message, type: :model do
|
|
46
52
|
redis = stub_redis
|
47
53
|
|
48
54
|
expect(redis).to have_received(:publish).with(
|
49
|
-
message.
|
55
|
+
message.member_channel, {
|
50
56
|
action: :create,
|
51
57
|
resource: message
|
52
58
|
}.to_json
|
@@ -63,7 +69,7 @@ RSpec.describe Message, type: :model do
|
|
63
69
|
message.update(body: 'bar')
|
64
70
|
|
65
71
|
expect(redis).to have_received(:publish).with(
|
66
|
-
|
72
|
+
message.collection_channel, {
|
67
73
|
action: :update,
|
68
74
|
resource: message
|
69
75
|
}.to_json
|
@@ -76,7 +82,7 @@ RSpec.describe Message, type: :model do
|
|
76
82
|
message.update(body: 'bar')
|
77
83
|
|
78
84
|
expect(redis).to have_received(:publish).with(
|
79
|
-
message.
|
85
|
+
message.member_channel, {
|
80
86
|
action: :update,
|
81
87
|
resource: message
|
82
88
|
}.to_json
|
@@ -93,7 +99,7 @@ RSpec.describe Message, type: :model do
|
|
93
99
|
message.destroy
|
94
100
|
|
95
101
|
expect(redis).to have_received(:publish).with(
|
96
|
-
|
102
|
+
message.collection_channel, {
|
97
103
|
action: :destroy,
|
98
104
|
resource: message
|
99
105
|
}.to_json
|
@@ -106,7 +112,7 @@ RSpec.describe Message, type: :model do
|
|
106
112
|
message.destroy
|
107
113
|
|
108
114
|
expect(redis).to have_received(:publish).with(
|
109
|
-
message.
|
115
|
+
message.member_channel, {
|
110
116
|
action: :destroy,
|
111
117
|
resource: message
|
112
118
|
}.to_json
|
@@ -124,9 +130,6 @@ RSpec.describe Message, type: :model do
|
|
124
130
|
end
|
125
131
|
|
126
132
|
describe 'Validations' do
|
127
|
-
it
|
128
|
-
message = Message.create
|
129
|
-
expect(message.errors[:body]).to include "can't be blank"
|
130
|
-
end
|
133
|
+
it { is_expected.to validate_presence_of :body }
|
131
134
|
end
|
132
135
|
end
|
@@ -1,13 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe 'Nested routes', type: :routing do
|
4
|
-
before(:context) do
|
5
|
-
# Create arbitrary controllers here rather than
|
6
|
-
# having a separate file for each in app/controllers
|
7
|
-
class ListsController < ApplicationController; end
|
8
|
-
class ItemsController < ApplicationController; end
|
9
|
-
end
|
10
|
-
|
11
4
|
describe 'parent routes' do
|
12
5
|
describe '#index' do
|
13
6
|
it 'matches the lists_path' do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: entangled
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dennis Charles Hackethal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: shoulda-matchers
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.6'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.6'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: sqlite3
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,6 +190,8 @@ files:
|
|
176
190
|
- spec/dummy/Rakefile
|
177
191
|
- spec/dummy/app/controllers/application_controller.rb
|
178
192
|
- spec/dummy/app/controllers/concerns/.keep
|
193
|
+
- spec/dummy/app/controllers/items_controller.rb
|
194
|
+
- spec/dummy/app/controllers/lists_controller.rb
|
179
195
|
- spec/dummy/app/controllers/messages_controller.rb
|
180
196
|
- spec/dummy/app/models/.keep
|
181
197
|
- spec/dummy/app/models/bar.rb
|
@@ -183,6 +199,8 @@ files:
|
|
183
199
|
- spec/dummy/app/models/concerns/.keep
|
184
200
|
- spec/dummy/app/models/foo.rb
|
185
201
|
- spec/dummy/app/models/foobar.rb
|
202
|
+
- spec/dummy/app/models/item.rb
|
203
|
+
- spec/dummy/app/models/list.rb
|
186
204
|
- spec/dummy/app/models/message.rb
|
187
205
|
- spec/dummy/bin/bundle
|
188
206
|
- spec/dummy/bin/rails
|
@@ -212,23 +230,33 @@ files:
|
|
212
230
|
- spec/dummy/db/migrate/20150223004834_create_bars.rb
|
213
231
|
- spec/dummy/db/migrate/20150223004841_create_foobars.rb
|
214
232
|
- spec/dummy/db/migrate/20150223004852_create_barfoos.rb
|
233
|
+
- spec/dummy/db/migrate/20150314054548_create_lists.rb
|
234
|
+
- spec/dummy/db/migrate/20150314055847_create_items.rb
|
215
235
|
- spec/dummy/db/schema.rb
|
216
236
|
- spec/dummy/log/.keep
|
217
237
|
- spec/dummy/public/Gruntfile.js
|
218
238
|
- spec/dummy/public/app/app.js
|
239
|
+
- spec/dummy/public/app/controllers/list.js
|
240
|
+
- spec/dummy/public/app/controllers/lists.js
|
219
241
|
- spec/dummy/public/app/controllers/message.js
|
220
242
|
- spec/dummy/public/app/controllers/messages.js
|
221
243
|
- spec/dummy/public/app/entangled/entangled.js
|
244
|
+
- spec/dummy/public/app/services/list.js
|
222
245
|
- spec/dummy/public/app/services/message.js
|
223
246
|
- spec/dummy/public/bower.json
|
224
247
|
- spec/dummy/public/favicon.ico
|
225
248
|
- spec/dummy/public/index.html
|
226
249
|
- spec/dummy/public/package.json
|
250
|
+
- spec/dummy/public/test/controllers/lists_test.js
|
227
251
|
- spec/dummy/public/test/controllers/messages_test.js
|
252
|
+
- spec/dummy/public/views/lists/index.html
|
253
|
+
- spec/dummy/public/views/lists/show.html
|
228
254
|
- spec/dummy/public/views/messages/index.html
|
229
255
|
- spec/dummy/public/views/messages/show.html
|
230
256
|
- spec/helpers/redis_spec.rb
|
231
257
|
- spec/models/inclusion_exclusion_spec.rb
|
258
|
+
- spec/models/item_spec.rb
|
259
|
+
- spec/models/list_spec.rb
|
232
260
|
- spec/models/message_spec.rb
|
233
261
|
- spec/routing/inclusion_exclusion_routing_spec.rb
|
234
262
|
- spec/routing/messages_routing_spec.rb
|
@@ -263,6 +291,8 @@ test_files:
|
|
263
291
|
- spec/dummy/Rakefile
|
264
292
|
- spec/dummy/app/controllers/application_controller.rb
|
265
293
|
- spec/dummy/app/controllers/concerns/.keep
|
294
|
+
- spec/dummy/app/controllers/items_controller.rb
|
295
|
+
- spec/dummy/app/controllers/lists_controller.rb
|
266
296
|
- spec/dummy/app/controllers/messages_controller.rb
|
267
297
|
- spec/dummy/app/models/.keep
|
268
298
|
- spec/dummy/app/models/bar.rb
|
@@ -270,6 +300,8 @@ test_files:
|
|
270
300
|
- spec/dummy/app/models/concerns/.keep
|
271
301
|
- spec/dummy/app/models/foo.rb
|
272
302
|
- spec/dummy/app/models/foobar.rb
|
303
|
+
- spec/dummy/app/models/item.rb
|
304
|
+
- spec/dummy/app/models/list.rb
|
273
305
|
- spec/dummy/app/models/message.rb
|
274
306
|
- spec/dummy/bin/bundle
|
275
307
|
- spec/dummy/bin/rails
|
@@ -299,23 +331,33 @@ test_files:
|
|
299
331
|
- spec/dummy/db/migrate/20150223004834_create_bars.rb
|
300
332
|
- spec/dummy/db/migrate/20150223004841_create_foobars.rb
|
301
333
|
- spec/dummy/db/migrate/20150223004852_create_barfoos.rb
|
334
|
+
- spec/dummy/db/migrate/20150314054548_create_lists.rb
|
335
|
+
- spec/dummy/db/migrate/20150314055847_create_items.rb
|
302
336
|
- spec/dummy/db/schema.rb
|
303
337
|
- spec/dummy/log/.keep
|
304
338
|
- spec/dummy/public/Gruntfile.js
|
305
339
|
- spec/dummy/public/app/app.js
|
340
|
+
- spec/dummy/public/app/controllers/list.js
|
341
|
+
- spec/dummy/public/app/controllers/lists.js
|
306
342
|
- spec/dummy/public/app/controllers/message.js
|
307
343
|
- spec/dummy/public/app/controllers/messages.js
|
308
344
|
- spec/dummy/public/app/entangled/entangled.js
|
345
|
+
- spec/dummy/public/app/services/list.js
|
309
346
|
- spec/dummy/public/app/services/message.js
|
310
347
|
- spec/dummy/public/bower.json
|
311
348
|
- spec/dummy/public/favicon.ico
|
312
349
|
- spec/dummy/public/index.html
|
313
350
|
- spec/dummy/public/package.json
|
351
|
+
- spec/dummy/public/test/controllers/lists_test.js
|
314
352
|
- spec/dummy/public/test/controllers/messages_test.js
|
353
|
+
- spec/dummy/public/views/lists/index.html
|
354
|
+
- spec/dummy/public/views/lists/show.html
|
315
355
|
- spec/dummy/public/views/messages/index.html
|
316
356
|
- spec/dummy/public/views/messages/show.html
|
317
357
|
- spec/helpers/redis_spec.rb
|
318
358
|
- spec/models/inclusion_exclusion_spec.rb
|
359
|
+
- spec/models/item_spec.rb
|
360
|
+
- spec/models/list_spec.rb
|
319
361
|
- spec/models/message_spec.rb
|
320
362
|
- spec/routing/inclusion_exclusion_routing_spec.rb
|
321
363
|
- spec/routing/messages_routing_spec.rb
|