volt 0.7.23 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -1
  3. data/CHANGELOG.md +22 -0
  4. data/Gemfile +8 -0
  5. data/Guardfile +2 -2
  6. data/Readme.md +139 -136
  7. data/VERSION +1 -1
  8. data/app/volt/assets/js/setImmediate.js +175 -0
  9. data/app/volt/tasks/live_query/data_store.rb +0 -2
  10. data/app/volt/tasks/live_query/live_query.rb +4 -4
  11. data/docs/GETTING_STARTED.md +24 -3
  12. data/docs/WHY.md +1 -22
  13. data/lib/volt.rb +20 -1
  14. data/lib/volt/console.rb +20 -0
  15. data/lib/volt/controllers/model_controller.rb +25 -11
  16. data/lib/volt/extra_core/object.rb +2 -14
  17. data/lib/volt/extra_core/string.rb +4 -0
  18. data/lib/volt/models.rb +0 -1
  19. data/lib/volt/models/array_model.rb +8 -16
  20. data/lib/volt/models/cursor.rb +1 -1
  21. data/lib/volt/models/model.rb +40 -60
  22. data/lib/volt/models/model_hash_behaviour.rb +10 -24
  23. data/lib/volt/models/model_helpers.rb +2 -2
  24. data/lib/volt/models/model_state.rb +1 -1
  25. data/lib/volt/models/model_wrapper.rb +4 -4
  26. data/lib/volt/models/persistors/array_store.rb +44 -28
  27. data/lib/volt/models/persistors/base.rb +1 -1
  28. data/lib/volt/models/persistors/model_store.rb +1 -1
  29. data/lib/volt/models/persistors/params.rb +5 -1
  30. data/lib/volt/models/persistors/query/query_listener.rb +2 -0
  31. data/lib/volt/models/persistors/store.rb +3 -2
  32. data/lib/volt/models/persistors/store_state.rb +7 -2
  33. data/lib/volt/models/url.rb +35 -29
  34. data/lib/volt/models/validations.rb +7 -17
  35. data/lib/volt/page/bindings/attribute_binding.rb +57 -39
  36. data/lib/volt/page/bindings/base_binding.rb +0 -14
  37. data/lib/volt/page/bindings/content_binding.rb +15 -18
  38. data/lib/volt/page/bindings/each_binding.rb +67 -34
  39. data/lib/volt/page/bindings/if_binding.rb +15 -12
  40. data/lib/volt/page/bindings/template_binding.rb +77 -59
  41. data/lib/volt/page/bindings/template_binding/grouped_controllers.rb +19 -4
  42. data/lib/volt/page/channel.rb +22 -38
  43. data/lib/volt/page/channel_stub.rb +3 -6
  44. data/lib/volt/page/page.rb +24 -26
  45. data/lib/volt/page/string_template_renderer.rb +46 -0
  46. data/lib/volt/page/sub_context.rb +7 -1
  47. data/lib/volt/page/targets/binding_document/component_node.rb +11 -9
  48. data/lib/volt/page/tasks.rb +3 -2
  49. data/lib/volt/page/url_tracker.rb +4 -3
  50. data/lib/volt/reactive/computation.rb +131 -0
  51. data/lib/volt/reactive/dependency.rb +71 -0
  52. data/lib/volt/reactive/eventable.rb +82 -0
  53. data/lib/volt/reactive/hash_dependency.rb +36 -0
  54. data/lib/volt/{controllers → reactive}/reactive_accessors.rb +8 -11
  55. data/lib/volt/reactive/reactive_array.rb +100 -193
  56. data/lib/volt/reactive/reactive_hash.rb +49 -0
  57. data/lib/volt/server/html_parser/attribute_scope.rb +24 -4
  58. data/lib/volt/server/html_parser/if_view_scope.rb +15 -15
  59. data/lib/volt/server/html_parser/view_scope.rb +31 -1
  60. data/spec/apps/kitchen_sink/Gemfile +4 -8
  61. data/spec/apps/kitchen_sink/app/main/config/dependencies.rb +8 -0
  62. data/spec/apps/kitchen_sink/app/main/config/routes.rb +8 -1
  63. data/spec/apps/kitchen_sink/app/main/controllers/main_controller.rb +8 -0
  64. data/spec/apps/kitchen_sink/app/main/views/main/bindings.html +73 -0
  65. data/spec/apps/kitchen_sink/app/main/views/main/index.html +6 -1
  66. data/spec/apps/kitchen_sink/app/main/views/main/main.html +26 -6
  67. data/spec/apps/kitchen_sink/app/main/views/main/store.html +6 -0
  68. data/spec/controllers/reactive_accessors_spec.rb +13 -15
  69. data/spec/integration/bindings_spec.rb +159 -0
  70. data/spec/integration/templates_spec.rb +15 -0
  71. data/spec/models/model_spec.rb +130 -228
  72. data/spec/reactive/computation_spec.rb +63 -0
  73. data/spec/reactive/dependency_spec.rb +5 -0
  74. data/spec/reactive/eventable_spec.rb +48 -0
  75. data/spec/reactive/reactive_array_spec.rb +97 -0
  76. data/spec/router/routes_spec.rb +26 -27
  77. data/spec/server/html_parser/view_parser_spec.rb +3 -21
  78. data/spec/server/rack/asset_files_spec.rb +1 -1
  79. data/templates/project/app/main/views/main/main.html +2 -2
  80. metadata +29 -41
  81. data/lib/volt/extra_core/time.rb +0 -16
  82. data/lib/volt/page/draw_cycle.rb +0 -31
  83. data/lib/volt/page/memory_test.rb +0 -26
  84. data/lib/volt/page/reactive_template.rb +0 -32
  85. data/lib/volt/reactive/array_extensions.rb +0 -12
  86. data/lib/volt/reactive/destructive_methods.rb +0 -19
  87. data/lib/volt/reactive/event_chain.rb +0 -125
  88. data/lib/volt/reactive/events.rb +0 -216
  89. data/lib/volt/reactive/object_tracking.rb +0 -14
  90. data/lib/volt/reactive/reactive_block.rb +0 -88
  91. data/lib/volt/reactive/reactive_generator.rb +0 -44
  92. data/lib/volt/reactive/reactive_tags.rb +0 -71
  93. data/lib/volt/reactive/reactive_value.rb +0 -427
  94. data/lib/volt/reactive/string_extensions.rb +0 -31
  95. data/spec/integration/test_integration_spec.rb +0 -14
  96. data/spec/models/event_chain_spec.rb +0 -150
  97. data/spec/models/model_buffers_spec.rb +0 -9
  98. data/spec/models/old_model_spec.rb +0 -67
  99. data/spec/models/reactive_array_spec.rb +0 -364
  100. data/spec/models/reactive_block_spec.rb +0 -13
  101. data/spec/models/reactive_call_times_spec.rb +0 -28
  102. data/spec/models/reactive_generator_spec.rb +0 -58
  103. data/spec/models/reactive_tags_spec.rb +0 -35
  104. data/spec/models/reactive_value_spec.rb +0 -370
  105. data/spec/models/store_spec.rb +0 -16
  106. data/spec/models/string_extensions_spec.rb +0 -57
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe Computation do
4
+ it 'should trigger again when a dependent changes' do
5
+ a = ReactiveHash.new
6
+
7
+ values = []
8
+
9
+ -> { values << a[0] }.watch!
10
+
11
+ expect(values).to eq([nil])
12
+
13
+ a[0] = 'one'
14
+ Computation.flush!
15
+ expect(values).to eq([nil, 'one'])
16
+
17
+ a[0] = 'two'
18
+ Computation.flush!
19
+ expect(values).to eq([nil, 'one', 'two'])
20
+ end
21
+
22
+ it 'should not trigger after the computation is stopped' do
23
+ a = ReactiveHash.new
24
+
25
+ values = []
26
+ computation = -> { values << a[0] }.watch!
27
+
28
+ expect(values).to eq([nil])
29
+
30
+ a[0] = 'one'
31
+ Computation.flush!
32
+ expect(values).to eq([nil, 'one'])
33
+
34
+ computation.stop
35
+
36
+ a[0] = 'two'
37
+ Computation.flush!
38
+ expect(values).to eq([nil, 'one'])
39
+ end
40
+
41
+ it 'should support nested watches' do
42
+ a = ReactiveHash.new
43
+
44
+ values = []
45
+ -> do
46
+ values << a[0]
47
+
48
+ -> do
49
+ values << a[1]
50
+ end.watch!
51
+ end.watch!
52
+
53
+ expect(values).to eq([nil,nil])
54
+
55
+ a[1] = 'inner'
56
+ Computation.flush!
57
+ expect(values).to eq([nil,nil,'inner'])
58
+
59
+ a[0] = 'outer'
60
+ Computation.flush!
61
+ expect(values).to eq([nil,nil,'inner','outer','inner'])
62
+ end
63
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Dependency do
4
+
5
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'volt/reactive/eventable'
3
+
4
+ class TestEventable
5
+ include Eventable
6
+
7
+ def trigger_works_event!
8
+ trigger!('works', 20)
9
+ end
10
+ end
11
+
12
+ describe Eventable do
13
+ it 'should allow events to be bound with on' do
14
+ test_eventable = TestEventable.new
15
+
16
+ count = 0
17
+ test_eventable.on('works') do |val|
18
+ count += 1
19
+ expect(val).to eq(20)
20
+ end
21
+
22
+ expect(count).to eq(0)
23
+ test_eventable.trigger_works_event!
24
+ expect(count).to eq(1)
25
+ end
26
+
27
+ it 'should allow events to be removed with .remove' do
28
+ test_eventable = TestEventable.new
29
+
30
+ count = 0
31
+ listener = test_eventable.on('works') do
32
+ count += 1
33
+ end
34
+
35
+ expect(listener.class).to eq(Listener)
36
+
37
+ expect(count).to eq(0)
38
+ test_eventable.trigger_works_event!
39
+ expect(count).to eq(1)
40
+
41
+ test_eventable.trigger_works_event!
42
+ expect(count).to eq(2)
43
+
44
+ listener.remove
45
+ test_eventable.trigger_works_event!
46
+ expect(count).to eq(2)
47
+ end
48
+ end
@@ -0,0 +1,97 @@
1
+ require 'spec_helper'
2
+ require 'volt/reactive/reactive_array'
3
+
4
+ describe ReactiveArray do
5
+ describe "cells" do
6
+ it 'should track dependencies for cells' do
7
+ a = ReactiveArray.new
8
+
9
+ count = 0
10
+ values = []
11
+ -> { values << a[0] ; count += 1 }.watch!
12
+
13
+ a[0] = 5
14
+
15
+ Computation.flush!
16
+
17
+ a[0] = 10
18
+ expect(count).to eq(2)
19
+ expect(values).to eq([nil, 5])
20
+
21
+ Computation.flush!
22
+ expect(count).to eq(3)
23
+ expect(values).to eq([nil, 5, 10])
24
+ end
25
+
26
+ it 'should trigger changed on the last cell when appending' do
27
+ a = ReactiveArray.new([1,2,3])
28
+
29
+ values = []
30
+ -> { values << a[3] }.watch!
31
+
32
+ expect(values).to eq([nil])
33
+
34
+ a << 4
35
+ expect(values).to eq([nil])
36
+
37
+ Computation.flush!
38
+ expect(values).to eq([nil, 4])
39
+ end
40
+
41
+ it 'should trigger changes for each cell after index after insert' do
42
+ a = ReactiveArray.new([1,2,3])
43
+
44
+ values_at_2 = []
45
+ values_at_3 = []
46
+ values_at_4 = []
47
+ -> { values_at_2 << a[2] }.watch!
48
+ -> { values_at_3 << a[3] }.watch!
49
+ -> { values_at_4 << a[4] }.watch!
50
+
51
+ expect(values_at_2).to eq([3])
52
+ expect(values_at_3).to eq([nil])
53
+ expect(values_at_4).to eq([nil])
54
+
55
+ a.insert(2,1.3,1.7)
56
+
57
+ Computation.flush!
58
+
59
+ expect(values_at_2).to eq([3,1.3])
60
+ expect(values_at_3).to eq([nil,1.7])
61
+ expect(values_at_4).to eq([nil,3])
62
+
63
+ end
64
+ end
65
+
66
+ describe "size dependencies" do
67
+ it 'pushing should trigger changed for size' do
68
+ array = ReactiveArray.new
69
+ count = 0
70
+
71
+ size_values = []
72
+ -> { size_values << array.size }.watch!
73
+
74
+ expect(size_values).to eq([0])
75
+
76
+ array << 5
77
+
78
+ Computation.flush!
79
+ expect(size_values).to eq([0,1])
80
+ end
81
+
82
+ it 'should trigger a size change when deleting' do
83
+ array = ReactiveArray.new([1,2,3])
84
+
85
+ size_values = []
86
+ -> { size_values << array.size }.watch!
87
+
88
+ expect(size_values).to eq([3])
89
+
90
+ array.delete_at(2)
91
+
92
+ expect(size_values).to eq([3])
93
+ Computation.flush!
94
+ expect(size_values).to eq([3,2])
95
+ end
96
+ end
97
+ end
@@ -142,31 +142,30 @@ describe Routes do
142
142
 
143
143
  end
144
144
 
145
- # it "should match routes" do
146
- # params = Model.new({}, persistor: Persistors::Params)
147
- # params._controller = 'blog'
148
- # params._index = '5'
149
- #
150
- # routes do
151
- # get '/', _controller: 'index'
152
- # get '/blog', _controller: 'blog'
153
- # end
154
- #
155
- # path, cleaned_params = @routes.params_to_url(params)
156
- # expect(path).to eq('/blog')
157
- # expect(cleaned_params).to eq({_index: '5'})
158
- # end
159
- #
160
- # it "should handle routes with bindings in them" do
161
- # params = Model.new({}, persistor: Persistors::Params)
162
- #
163
- # routes do
164
- # get '/', _controller: 'index'
165
- # get '/blog/{_id}', _controller: 'blog'
166
- # end
167
- #
168
- # params = @routes.url_to_params('/blog/20')
169
- # puts params.inspect
170
- #
171
- # end
145
+ it "should match routes" do
146
+ params = Model.new({}, persistor: Persistors::Params)
147
+ params._controller = 'blog'
148
+ params._index = '5'
149
+
150
+ routes do
151
+ get '/', _controller: 'index'
152
+ get '/blog', _controller: 'blog'
153
+ end
154
+
155
+ path, cleaned_params = @routes.params_to_url(params)
156
+ expect(path).to eq('/blog')
157
+ expect(cleaned_params).to eq({_index: '5'})
158
+ end
159
+
160
+ it "should handle routes with bindings in them" do
161
+ params = Model.new({}, persistor: Persistors::Params)
162
+
163
+ routes do
164
+ get '/', _controller: 'index'
165
+ get '/blog/{_id}', _controller: 'blog'
166
+ end
167
+
168
+ params = @routes.url_to_params('/blog/20')
169
+
170
+ end
172
171
  end
@@ -143,16 +143,7 @@ describe ViewParser do
143
143
 
144
144
  view = ViewParser.new(html, "main/main/main")
145
145
 
146
- expect(view.templates).to eq({
147
- "main/main/main/body" => {
148
- "html" => " <div id=\"id0\">\n </div>\n",
149
- "bindings" => {
150
- "id0" => [
151
- "lambda { |__p, __t, __c, __id| AttributeBinding.new(__p, __t, __c, __id, \"class\", Proc.new { main_class }) }"
152
- ]
153
- }
154
- }
155
- })
146
+ expect(view.templates).to eq({"main/main/main/body"=>{"html"=>" <div id=\"id0\">\n </div>\n", "bindings"=>{"id0"=>["lambda { |__p, __t, __c, __id| AttributeBinding.new(__p, __t, __c, __id, \"class\", Proc.new { main_class }, Proc.new { |val| self.main_class=(val) }) }"]}}})
156
147
  end
157
148
 
158
149
  it "should parse multiple attribute bindings in a single attribute" do
@@ -179,7 +170,7 @@ describe ViewParser do
179
170
  "html" => " <div id=\"id0\">\n </div>\n",
180
171
  "bindings" => {
181
172
  "id0" => [
182
- "lambda { |__p, __t, __c, __id| AttributeBinding.new(__p, __t, __c, __id, \"class\", Proc.new { ReactiveTemplate.new(__p, __c, \"main/main/main/body/_rv1\") }) }"
173
+ "lambda { |__p, __t, __c, __id| AttributeBinding.new(__p, __t, __c, __id, \"class\", Proc.new { StringTemplateRender.new(__p, __c, \"main/main/main/body/_rv1\") }) }"
183
174
  ]
184
175
  }
185
176
  }
@@ -273,16 +264,7 @@ describe ViewParser do
273
264
 
274
265
  view = ViewParser.new(html, "main/main/main")
275
266
 
276
- expect(view.templates).to eq({
277
- "main/main/main/body" => {
278
- "html" => " <textarea name=\"cool\" id=\"id1\"></textarea>\n",
279
- "bindings" => {
280
- "id1" => [
281
- "lambda { |__p, __t, __c, __id| AttributeBinding.new(__p, __t, __c, __id, \"value\", Proc.new { awesome }) }"
282
- ]
283
- }
284
- }
285
- })
267
+ expect(view.templates).to eq({"main/main/main/body"=>{"html"=>" <textarea name=\"cool\" id=\"id1\"></textarea>\n", "bindings"=>{"id1"=>["lambda { |__p, __t, __c, __id| AttributeBinding.new(__p, __t, __c, __id, \"value\", Proc.new { awesome }, Proc.new { |val| self.awesome=(val) }) }"]}}})
286
268
  end
287
269
 
288
270
  end
@@ -19,7 +19,7 @@ if RUBY_PLATFORM != 'opal'
19
19
  it "should list all JS files" do
20
20
  main = AssetFiles.new("main", @component_paths)
21
21
 
22
- expect(main.javascript_files(nil)).to eq(["/assets/js/jquery-2.0.3.js", "/assets/js/sockjs-0.3.4.min.js", "/assets/js/vertxbus.js", "/assets/js/bootstrap.js", "/assets/js/test2.js", "/assets/js/test3.js", "/assets/js/test1.js", "/assets/volt/page/page.js", "/components/main.js"])
22
+ expect(main.javascript_files(nil)).to eq(["/assets/js/jquery-2.0.3.js", "/assets/js/setImmediate.js", "/assets/js/sockjs-0.3.4.min.js", "/assets/js/vertxbus.js", "/assets/js/bootstrap.js", "/assets/js/test2.js", "/assets/js/test3.js", "/assets/js/test1.js", "/assets/volt/page/page.js", "/components/main.js"])
23
23
  end
24
24
  end
25
25
  end
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
 
24
24
  <:Nav>
25
- <li class="{#if url.path.split('/')[1] == @href.split('/')[1]}active{/}">
26
- <a href="{@href}">{@text}</a>
25
+ <li class="{#if url.path.split('/')[1] == data.href.split('/')[1]}active{/}">
26
+ <a href="{data.href}">{data.text}</a>
27
27
  </li>
28
28
 
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.7.23
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Stout
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-28 00:00:00.000000000 Z
11
+ date: 2014-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -344,6 +344,7 @@ files:
344
344
  - ".rspec"
345
345
  - ".ruby-version"
346
346
  - ".travis.yml"
347
+ - CHANGELOG.md
347
348
  - Gemfile
348
349
  - Guardfile
349
350
  - LICENSE.txt
@@ -352,6 +353,7 @@ files:
352
353
  - VERSION
353
354
  - app/volt/assets/css/notices.css.scss
354
355
  - app/volt/assets/js/jquery-2.0.3.js
356
+ - app/volt/assets/js/setImmediate.js
355
357
  - app/volt/assets/js/sockjs-0.3.4.min.js
356
358
  - app/volt/assets/js/vertxbus.js
357
359
  - app/volt/config/dependencies.rb
@@ -377,7 +379,6 @@ files:
377
379
  - lib/volt/cli/new_gem.rb
378
380
  - lib/volt/console.rb
379
381
  - lib/volt/controllers/model_controller.rb
380
- - lib/volt/controllers/reactive_accessors.rb
381
382
  - lib/volt/extra_core/array.rb
382
383
  - lib/volt/extra_core/blank.rb
383
384
  - lib/volt/extra_core/extra_core.rb
@@ -393,7 +394,6 @@ files:
393
394
  - lib/volt/extra_core/string.rb
394
395
  - lib/volt/extra_core/stringify_keys.rb
395
396
  - lib/volt/extra_core/symbol.rb
396
- - lib/volt/extra_core/time.rb
397
397
  - lib/volt/extra_core/true_false.rb
398
398
  - lib/volt/extra_core/try.rb
399
399
  - lib/volt/models.rb
@@ -433,10 +433,8 @@ files:
433
433
  - lib/volt/page/channel_stub.rb
434
434
  - lib/volt/page/document.rb
435
435
  - lib/volt/page/document_events.rb
436
- - lib/volt/page/draw_cycle.rb
437
- - lib/volt/page/memory_test.rb
438
436
  - lib/volt/page/page.rb
439
- - lib/volt/page/reactive_template.rb
437
+ - lib/volt/page/string_template_renderer.rb
440
438
  - lib/volt/page/sub_context.rb
441
439
  - lib/volt/page/targets/attribute_section.rb
442
440
  - lib/volt/page/targets/attribute_target.rb
@@ -451,17 +449,13 @@ files:
451
449
  - lib/volt/page/tasks.rb
452
450
  - lib/volt/page/template_renderer.rb
453
451
  - lib/volt/page/url_tracker.rb
454
- - lib/volt/reactive/array_extensions.rb
455
- - lib/volt/reactive/destructive_methods.rb
456
- - lib/volt/reactive/event_chain.rb
457
- - lib/volt/reactive/events.rb
458
- - lib/volt/reactive/object_tracking.rb
452
+ - lib/volt/reactive/computation.rb
453
+ - lib/volt/reactive/dependency.rb
454
+ - lib/volt/reactive/eventable.rb
455
+ - lib/volt/reactive/hash_dependency.rb
456
+ - lib/volt/reactive/reactive_accessors.rb
459
457
  - lib/volt/reactive/reactive_array.rb
460
- - lib/volt/reactive/reactive_block.rb
461
- - lib/volt/reactive/reactive_generator.rb
462
- - lib/volt/reactive/reactive_tags.rb
463
- - lib/volt/reactive/reactive_value.rb
464
- - lib/volt/reactive/string_extensions.rb
458
+ - lib/volt/reactive/reactive_hash.rb
465
459
  - lib/volt/router/routes.rb
466
460
  - lib/volt/server.rb
467
461
  - lib/volt/server/banner.txt
@@ -500,33 +494,30 @@ files:
500
494
  - spec/apps/file_loading/app/slideshow/assets/js/test3.js
501
495
  - spec/apps/kitchen_sink/.gitignore
502
496
  - spec/apps/kitchen_sink/Gemfile
497
+ - spec/apps/kitchen_sink/app/main/config/dependencies.rb
503
498
  - spec/apps/kitchen_sink/app/main/config/routes.rb
504
499
  - spec/apps/kitchen_sink/app/main/controllers/main_controller.rb
500
+ - spec/apps/kitchen_sink/app/main/views/main/bindings.html
505
501
  - spec/apps/kitchen_sink/app/main/views/main/index.html
506
502
  - spec/apps/kitchen_sink/app/main/views/main/main.html
503
+ - spec/apps/kitchen_sink/app/main/views/main/store.html
507
504
  - spec/apps/kitchen_sink/config.ru
508
505
  - spec/apps/kitchen_sink/public/index.html
509
506
  - spec/controllers/reactive_accessors_spec.rb
510
507
  - spec/extra_core/inflector_spec.rb
511
- - spec/integration/test_integration_spec.rb
512
- - spec/models/event_chain_spec.rb
513
- - spec/models/model_buffers_spec.rb
508
+ - spec/integration/bindings_spec.rb
509
+ - spec/integration/templates_spec.rb
514
510
  - spec/models/model_spec.rb
515
- - spec/models/old_model_spec.rb
516
511
  - spec/models/persistors/params_spec.rb
517
512
  - spec/models/persistors/store_spec.rb
518
- - spec/models/reactive_array_spec.rb
519
- - spec/models/reactive_block_spec.rb
520
- - spec/models/reactive_call_times_spec.rb
521
- - spec/models/reactive_generator_spec.rb
522
- - spec/models/reactive_tags_spec.rb
523
- - spec/models/reactive_value_spec.rb
524
- - spec/models/store_spec.rb
525
- - spec/models/string_extensions_spec.rb
526
513
  - spec/models/validations_spec.rb
527
514
  - spec/page/bindings/content_binding_spec.rb
528
515
  - spec/page/bindings/template_binding_spec.rb
529
516
  - spec/page/sub_context_spec.rb
517
+ - spec/reactive/computation_spec.rb
518
+ - spec/reactive/dependency_spec.rb
519
+ - spec/reactive/eventable_spec.rb
520
+ - spec/reactive/reactive_array_spec.rb
530
521
  - spec/router/routes_spec.rb
531
522
  - spec/server/html_parser/sample_page.html
532
523
  - spec/server/html_parser/sandlebars_parser_spec.rb
@@ -617,33 +608,30 @@ test_files:
617
608
  - spec/apps/file_loading/app/slideshow/assets/js/test3.js
618
609
  - spec/apps/kitchen_sink/.gitignore
619
610
  - spec/apps/kitchen_sink/Gemfile
611
+ - spec/apps/kitchen_sink/app/main/config/dependencies.rb
620
612
  - spec/apps/kitchen_sink/app/main/config/routes.rb
621
613
  - spec/apps/kitchen_sink/app/main/controllers/main_controller.rb
614
+ - spec/apps/kitchen_sink/app/main/views/main/bindings.html
622
615
  - spec/apps/kitchen_sink/app/main/views/main/index.html
623
616
  - spec/apps/kitchen_sink/app/main/views/main/main.html
617
+ - spec/apps/kitchen_sink/app/main/views/main/store.html
624
618
  - spec/apps/kitchen_sink/config.ru
625
619
  - spec/apps/kitchen_sink/public/index.html
626
620
  - spec/controllers/reactive_accessors_spec.rb
627
621
  - spec/extra_core/inflector_spec.rb
628
- - spec/integration/test_integration_spec.rb
629
- - spec/models/event_chain_spec.rb
630
- - spec/models/model_buffers_spec.rb
622
+ - spec/integration/bindings_spec.rb
623
+ - spec/integration/templates_spec.rb
631
624
  - spec/models/model_spec.rb
632
- - spec/models/old_model_spec.rb
633
625
  - spec/models/persistors/params_spec.rb
634
626
  - spec/models/persistors/store_spec.rb
635
- - spec/models/reactive_array_spec.rb
636
- - spec/models/reactive_block_spec.rb
637
- - spec/models/reactive_call_times_spec.rb
638
- - spec/models/reactive_generator_spec.rb
639
- - spec/models/reactive_tags_spec.rb
640
- - spec/models/reactive_value_spec.rb
641
- - spec/models/store_spec.rb
642
- - spec/models/string_extensions_spec.rb
643
627
  - spec/models/validations_spec.rb
644
628
  - spec/page/bindings/content_binding_spec.rb
645
629
  - spec/page/bindings/template_binding_spec.rb
646
630
  - spec/page/sub_context_spec.rb
631
+ - spec/reactive/computation_spec.rb
632
+ - spec/reactive/dependency_spec.rb
633
+ - spec/reactive/eventable_spec.rb
634
+ - spec/reactive/reactive_array_spec.rb
647
635
  - spec/router/routes_spec.rb
648
636
  - spec/server/html_parser/sample_page.html
649
637
  - spec/server/html_parser/sandlebars_parser_spec.rb