volt 0.7.23 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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