volt 0.6.5 → 0.7.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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/Readme.md +47 -40
  3. data/VERSION +1 -1
  4. data/app/volt/controllers/notices_controller.rb +3 -3
  5. data/app/volt/tasks/live_query/data_store.rb +2 -2
  6. data/app/volt/tasks/live_query/live_query.rb +20 -20
  7. data/app/volt/tasks/live_query/live_query_pool.rb +6 -6
  8. data/app/volt/tasks/live_query/query_tracker.rb +15 -15
  9. data/app/volt/tasks/query_tasks.rb +13 -13
  10. data/app/volt/tasks/store_tasks.rb +7 -7
  11. data/app/volt/views/notices/index.html +17 -18
  12. data/lib/volt/assets/test.rb +2 -2
  13. data/lib/volt/benchmark/benchmark.rb +25 -23
  14. data/lib/volt/cli/asset_compile.rb +11 -0
  15. data/lib/volt/cli/new_gem.rb +16 -16
  16. data/lib/volt/cli.rb +14 -12
  17. data/lib/volt/console.rb +5 -6
  18. data/lib/volt/controllers/model_controller.rb +18 -18
  19. data/lib/volt/extra_core/array.rb +4 -4
  20. data/lib/volt/extra_core/hash.rb +3 -3
  21. data/lib/volt/extra_core/object.rb +6 -6
  22. data/lib/volt/extra_core/string.rb +6 -6
  23. data/lib/volt/extra_core/symbol.rb +5 -5
  24. data/lib/volt/extra_core/time.rb +4 -4
  25. data/lib/volt/extra_core/true_false.rb +6 -6
  26. data/lib/volt/extra_core/try.rb +9 -9
  27. data/lib/volt/models/array_model.rb +26 -26
  28. data/lib/volt/models/model.rb +35 -35
  29. data/lib/volt/models/model_hash_behaviour.rb +15 -15
  30. data/lib/volt/models/model_helpers.rb +8 -8
  31. data/lib/volt/models/model_wrapper.rb +6 -6
  32. data/lib/volt/models/persistors/array_store.rb +36 -36
  33. data/lib/volt/models/persistors/base.rb +6 -6
  34. data/lib/volt/models/persistors/flash.rb +5 -5
  35. data/lib/volt/models/persistors/model_identity_map.rb +2 -2
  36. data/lib/volt/models/persistors/model_store.rb +22 -22
  37. data/lib/volt/models/persistors/params.rb +3 -3
  38. data/lib/volt/models/persistors/query/query_listener.rb +14 -14
  39. data/lib/volt/models/persistors/query/query_listener_pool.rb +2 -2
  40. data/lib/volt/models/persistors/store.rb +8 -8
  41. data/lib/volt/models/persistors/store_factory.rb +2 -2
  42. data/lib/volt/models/url.rb +37 -37
  43. data/lib/volt/page/bindings/attribute_binding.rb +14 -14
  44. data/lib/volt/page/bindings/base_binding.rb +9 -9
  45. data/lib/volt/page/bindings/component_binding.rb +7 -7
  46. data/lib/volt/page/bindings/content_binding.rb +3 -3
  47. data/lib/volt/page/bindings/each_binding.rb +13 -13
  48. data/lib/volt/page/bindings/event_binding.rb +4 -4
  49. data/lib/volt/page/bindings/if_binding.rb +12 -12
  50. data/lib/volt/page/bindings/template_binding.rb +30 -30
  51. data/lib/volt/page/channel.rb +19 -19
  52. data/lib/volt/page/channel_stub.rb +6 -6
  53. data/lib/volt/page/document.rb +2 -2
  54. data/lib/volt/page/document_events.rb +4 -4
  55. data/lib/volt/page/draw_cycle.rb +3 -3
  56. data/lib/volt/page/memory_test.rb +6 -6
  57. data/lib/volt/page/page.rb +19 -19
  58. data/lib/volt/page/reactive_template.rb +9 -9
  59. data/lib/volt/page/sub_context.rb +5 -5
  60. data/lib/volt/page/targets/attribute_section.rb +9 -9
  61. data/lib/volt/page/targets/attribute_target.rb +3 -3
  62. data/lib/volt/page/targets/base_section.rb +2 -2
  63. data/lib/volt/page/targets/binding_document/component_node.rb +23 -23
  64. data/lib/volt/page/targets/binding_document/html_node.rb +2 -2
  65. data/lib/volt/page/targets/dom_section.rb +40 -38
  66. data/lib/volt/page/targets/dom_target.rb +2 -2
  67. data/lib/volt/page/tasks.rb +12 -12
  68. data/lib/volt/page/template_renderer.rb +4 -4
  69. data/lib/volt/page/url_tracker.rb +6 -6
  70. data/lib/volt/reactive/array_extensions.rb +2 -2
  71. data/lib/volt/reactive/destructive_methods.rb +5 -5
  72. data/lib/volt/reactive/event_chain.rb +25 -25
  73. data/lib/volt/reactive/events.rb +33 -33
  74. data/lib/volt/reactive/object_tracker.rb +21 -21
  75. data/lib/volt/reactive/object_tracking.rb +2 -2
  76. data/lib/volt/reactive/reactive_array.rb +57 -57
  77. data/lib/volt/reactive/reactive_tags.rb +16 -16
  78. data/lib/volt/reactive/reactive_value.rb +72 -72
  79. data/lib/volt/reactive/string_extensions.rb +3 -3
  80. data/lib/volt/router/routes.rb +22 -23
  81. data/lib/volt/server/component_handler.rb +5 -5
  82. data/lib/volt/server/component_templates.rb +14 -11
  83. data/lib/volt/server/html_parser/attribute_scope.rb +116 -0
  84. data/lib/volt/server/html_parser/each_scope.rb +18 -0
  85. data/lib/volt/server/html_parser/if_view_scope.rb +71 -0
  86. data/lib/volt/server/html_parser/sandlebars_parser.rb +219 -0
  87. data/lib/volt/server/html_parser/textarea_scope.rb +31 -0
  88. data/lib/volt/server/html_parser/view_handler.rb +82 -0
  89. data/lib/volt/server/html_parser/view_parser.rb +23 -0
  90. data/lib/volt/server/html_parser/view_scope.rb +145 -0
  91. data/lib/volt/server/rack/asset_files.rb +17 -17
  92. data/lib/volt/server/rack/component_paths.rb +18 -18
  93. data/lib/volt/server/rack/index_files.rb +8 -8
  94. data/lib/volt/server/rack/opal_files.rb +11 -11
  95. data/lib/volt/server/socket_connection_handler.rb +13 -13
  96. data/lib/volt/server/socket_connection_handler_stub.rb +2 -2
  97. data/lib/volt/server.rb +18 -18
  98. data/lib/volt/tasks/dispatcher.rb +5 -5
  99. data/lib/volt/utils/ejson.rb +2 -2
  100. data/lib/volt/utils/generic_counting_pool.rb +8 -8
  101. data/lib/volt/utils/generic_pool.rb +16 -16
  102. data/lib/volt/volt/environment.rb +4 -4
  103. data/lib/volt.rb +6 -6
  104. data/spec/integration/test_integration_spec.rb +2 -2
  105. data/spec/models/event_chain_spec.rb +38 -38
  106. data/spec/models/model_spec.rb +128 -128
  107. data/spec/models/old_model_spec.rb +17 -17
  108. data/spec/models/persistors/params_spec.rb +3 -3
  109. data/spec/models/persistors/store_spec.rb +7 -7
  110. data/spec/models/reactive_array_spec.rb +82 -82
  111. data/spec/models/reactive_generator_spec.rb +11 -11
  112. data/spec/models/reactive_tags_spec.rb +6 -6
  113. data/spec/models/reactive_value_spec.rb +70 -70
  114. data/spec/models/store_spec.rb +4 -4
  115. data/spec/models/string_extensions_spec.rb +13 -13
  116. data/spec/page/bindings/content_binding_spec.rb +6 -6
  117. data/spec/page/sub_context_spec.rb +1 -1
  118. data/spec/router/routes_spec.rb +3 -3
  119. data/spec/server/html_parser/sample_page.html +595 -0
  120. data/spec/server/html_parser/sandlebars_parser_spec.rb +192 -0
  121. data/spec/server/html_parser/view_parser_spec.rb +286 -0
  122. data/spec/server/rack/asset_files_spec.rb +6 -6
  123. data/spec/server/rack/component_paths_spec.rb +5 -5
  124. data/spec/spec_helper.rb +4 -5
  125. data/spec/store/mongo_spec.rb +3 -3
  126. data/spec/tasks/live_query_spec.rb +6 -6
  127. data/spec/tasks/query_tasks.rb +4 -4
  128. data/spec/tasks/query_tracker_spec.rb +20 -20
  129. data/spec/templates/targets/binding_document/component_node_spec.rb +4 -4
  130. data/spec/templates/template_binding_spec.rb +28 -28
  131. data/spec/utils/generic_counting_pool_spec.rb +5 -5
  132. data/spec/utils/generic_pool_spec.rb +14 -14
  133. data/templates/newgem/app/newgem/views/index/index.html +1 -2
  134. data/templates/project/app/home/config/dependencies.rb +1 -1
  135. data/templates/project/app/home/controllers/index_controller.rb +1 -1
  136. data/templates/project/app/home/views/index/about.html +4 -6
  137. data/templates/project/app/home/views/index/home.html +4 -5
  138. data/templates/project/app/home/views/index/index.html +8 -9
  139. data/templates/project/spec/spec_helper.rb +1 -1
  140. metadata +17 -8
  141. data/lib/volt/server/binding_setup.rb +0 -2
  142. data/lib/volt/server/if_binding_setup.rb +0 -31
  143. data/lib/volt/server/scope.rb +0 -43
  144. data/lib/volt/server/template_parser.rb +0 -453
  145. data/spec/server/template_parser_spec.rb +0 -50
@@ -10,25 +10,25 @@ class TestYield
10
10
  end
11
11
  class SampleClass
12
12
  include ReactiveTags
13
-
13
+
14
14
  tag_method(:break_stuff) do
15
15
  destructive!
16
16
  end
17
17
  def break_stuff
18
18
  5
19
19
  end
20
-
20
+
21
21
  tag_method(:receive_reactive?) do
22
22
  pass_reactive!
23
23
  end
24
24
  def receive_reactive?(arg1)
25
25
  return arg1.reactive?
26
26
  end
27
-
27
+
28
28
  def receive_non_reactive?(arg1)
29
29
  return arg1.reactive?
30
30
  end
31
-
31
+
32
32
  tag_method(:destructive_receive_non_reactive?) do
33
33
  destructive!
34
34
  end
@@ -40,7 +40,7 @@ end
40
40
 
41
41
  class SampleTriggerClass
42
42
  include ReactiveTags
43
-
43
+
44
44
  tag_method(:method_that_triggers) { destructive! }
45
45
  def method_that_triggers
46
46
  trigger!('changed')
@@ -49,16 +49,16 @@ end
49
49
 
50
50
  class SampleNonTriggerClass
51
51
  include ReactiveTags
52
-
52
+
53
53
  tag_method(:method_that_triggers) { destructive! }
54
54
  def method_that_triggers
55
55
  # does not trigger
56
- end
56
+ end
57
57
  end
58
58
 
59
59
  class SampleTriggerClass2
60
60
  include ReactiveTags
61
-
61
+
62
62
  tag_method(:method_that_triggers) { destructive! }
63
63
  def method_that_triggers
64
64
  trigger!('other')
@@ -73,32 +73,32 @@ describe ReactiveValue do
73
73
  b = a.with { |a| a + 1 }
74
74
  expect(a.cur).to eq(1)
75
75
  expect(b.cur).to eq(2)
76
-
76
+
77
77
  a.cur = 5
78
78
  expect(b.cur).to eq(6)
79
79
  end
80
-
80
+
81
81
  it "should say its reactive" do
82
82
  a = 1
83
83
  b = ReactiveValue.new(a)
84
-
84
+
85
85
  expect(a.reactive?).to eq(false)
86
86
  expect(b.reactive?).to eq(true)
87
87
  end
88
-
88
+
89
89
  it "should return a reactive value from any method call" do
90
90
  a = ReactiveValue.new(5)
91
91
  b = 10
92
-
92
+
93
93
  c = a + b
94
94
  d = b + a
95
95
  e = c + d
96
-
96
+
97
97
  expect(c.reactive?).to eq(true)
98
98
  expect(d.reactive?).to eq(true)
99
99
  expect(e.reactive?).to eq(true)
100
100
  end
101
-
101
+
102
102
  it "should work with objects not just numbers" do
103
103
  a = ReactiveValue.new([1,2,3])
104
104
  b = [4]
@@ -111,37 +111,37 @@ describe ReactiveValue do
111
111
  expect(d.reactive?).to eq(true)
112
112
  expect(e.reactive?).to eq(true)
113
113
  end
114
-
114
+
115
115
  it "should return different listeners" do
116
116
  a = ReactiveValue.new(1)
117
-
117
+
118
118
  count = 0
119
119
  listener1 = a.on('changed') { count += 1 }
120
120
  listener2 = a.on('changed') { count += 1 }
121
-
121
+
122
122
  expect(listener1).not_to eq(listener2)
123
123
  end
124
-
124
+
125
125
  it "should return a reactive on .is_a?" do
126
126
  a = ReactiveValue.new(1)
127
127
  b = a.is_a?(Fixnum)
128
-
128
+
129
129
  expect(b.reactive?).to eq(true)
130
130
  expect(b.cur).to eq(true)
131
131
  end
132
-
132
+
133
133
  it "should return true for a nil? on a nil value" do
134
134
  a = ReactiveValue.new(nil)
135
135
  b = a.nil?
136
136
  expect(b.reactive?).to eq(true)
137
137
  expect(a.cur).to eq(nil)
138
-
138
+
139
139
  a = ReactiveValue.new(1)
140
140
  b = a.nil?
141
141
  expect(b.reactive?).to eq(true)
142
142
  expect(a.cur).not_to eq(nil)
143
143
  end
144
-
144
+
145
145
  it "should only chain one event up" do
146
146
  a = ReactiveValue.new('1')
147
147
  b = a.to_i
@@ -149,34 +149,34 @@ describe ReactiveValue do
149
149
  count = 0
150
150
  b.on('changed') { count += 1 }
151
151
  b.on('changed') { count += 1 }
152
-
152
+
153
153
  expect(a.reactive_manager.listeners[:changed].size).to eq(1)
154
154
  end
155
155
  end
156
-
156
+
157
157
  describe "events" do
158
158
  it "should bind and trigger" do
159
159
  a = ReactiveValue.new(1)
160
160
  count = 0
161
161
  a.on('changed') { count += 1 }
162
162
  expect(count).to eq(0)
163
-
163
+
164
164
  a.trigger!('changed')
165
165
  expect(count).to eq(1)
166
166
  end
167
-
167
+
168
168
  it "should bind and trigger on children" do
169
169
  a = ReactiveValue.new(1)
170
170
  b = a + 10
171
-
171
+
172
172
  count = 0
173
173
  b.on('changed') { count += 1 }
174
174
  expect(count).to eq(0)
175
-
175
+
176
176
  a.trigger!('changed')
177
177
  expect(count).to eq(1)
178
178
  end
179
-
179
+
180
180
  it "should handle events, even when triggered from the parent" do
181
181
  a = ReactiveValue.new(5)
182
182
  b = ReactiveValue.new(20)
@@ -189,144 +189,144 @@ describe ReactiveValue do
189
189
 
190
190
  a.trigger!('changed')
191
191
  expect(@called).to eq(true)
192
-
192
+
193
193
  @called = false
194
-
194
+
195
195
  b.trigger!('changed')
196
196
  expect(@called).to eq(true)
197
-
197
+
198
198
  end
199
199
  end
200
-
200
+
201
201
  describe "arrays" do
202
202
  it "should add wrapped arrays" do
203
203
  a = ReactiveValue.new([1,2])
204
204
  b = ReactiveValue.new([3,4])
205
-
205
+
206
206
  c = a + b
207
207
  expect(c.size.cur).to eq(4)
208
208
  end
209
209
  end
210
-
210
+
211
211
  describe "tagged methods" do
212
-
212
+
213
213
  it "should let a class specify methods as destructive" do
214
214
  a = ReactiveValue.new(SampleClass.new)
215
215
  result = a.break_stuff
216
216
  expect(result).to eq(5)
217
217
  expect(result.reactive?).to eq(false)
218
218
  end
219
-
219
+
220
220
  it "should pass reactive values when asked" do
221
221
  a = ReactiveValue.new(SampleClass.new)
222
222
  expect(a.receive_reactive?(ReactiveValue.new(1)).cur).to eq(true)
223
223
  end
224
-
224
+
225
225
  it "should not pass reactive when not asked" do
226
226
  a = ReactiveValue.new(SampleClass.new)
227
227
  expect(a.receive_non_reactive?(ReactiveValue.new(1)).cur).to eq(false)
228
228
  end
229
-
229
+
230
230
  it "should not pass a reactive value to a destructive method unless it asked for it" do
231
231
  a = ReactiveValue.new(SampleClass.new)
232
232
  expect(a.destructive_receive_non_reactive?(ReactiveValue.new(1)).cur).to eq(false)
233
233
  end
234
234
  end
235
-
235
+
236
236
  describe "triggers from methods" do
237
-
237
+
238
238
  it "should trigger on any ReactiveValue's that are wrapping it" do
239
239
  a = ReactiveValue.new(SampleTriggerClass.new)
240
-
240
+
241
241
  count = 0
242
- a.on('changed') { count += 1 }
242
+ a.on('changed') { count += 1 }
243
243
  expect(count).to eq(0)
244
-
244
+
245
245
  a.method_that_triggers
246
246
  expect(count).to eq(1)
247
247
  end
248
-
248
+
249
249
  it "should trigger on any ReactiveValue's that are wrapping it" do
250
250
  a = ReactiveValue.new(SampleNonTriggerClass.new)
251
-
251
+
252
252
  count = 0
253
253
  a.on('changed') { count += 1 }
254
254
  expect(count).to eq(0)
255
-
255
+
256
256
  a.method_that_triggers
257
257
  expect(count).to eq(0)
258
-
258
+
259
259
  a.cur = SampleTriggerClass.new
260
260
  expect(count).to eq(1)
261
-
261
+
262
262
  a.method_that_triggers
263
263
  expect(count).to eq(2)
264
264
  end
265
-
265
+
266
266
  it "should trigger the correct event" do
267
267
  a = ReactiveValue.new(SampleNonTriggerClass.new)
268
-
268
+
269
269
  count = 0
270
270
  other_count = 0
271
271
  a.on('changed') { count += 1 }
272
272
  a.on('other') { other_count += 1 }
273
273
  expect(count).to eq(0)
274
-
274
+
275
275
  a.method_that_triggers
276
276
  expect(count).to eq(0)
277
-
277
+
278
278
  a.cur = SampleTriggerClass.new
279
279
  expect(count).to eq(1)
280
-
280
+
281
281
  a.method_that_triggers
282
282
  expect(count).to eq(2)
283
283
 
284
284
  # Note: .cur= triggers changed
285
285
  a.cur = SampleTriggerClass2.new
286
286
  expect(other_count).to eq(0)
287
-
287
+
288
288
  a.method_that_triggers
289
289
  expect(count).to eq(3)
290
290
  expect(other_count).to eq(1)
291
291
  end
292
-
293
- it "should trigger through two different paths" do
292
+
293
+ it "should trigger through two different paths" do
294
294
  source = SampleTriggerClass.new
295
295
  a = ReactiveValue.new(source)
296
296
  b = ReactiveValue.new(source)
297
-
297
+
298
298
  count = 0
299
299
  count2 = 0
300
300
  a.on('changed') { count += 1 }
301
301
  b.on('changed') { count2 += 1 }
302
-
302
+
303
303
  expect(count).to eq(0)
304
304
  expect(count2).to eq(0)
305
-
305
+
306
306
  a.method_that_triggers
307
-
307
+
308
308
  expect(count).to eq(1)
309
309
  expect(count2).to eq(1)
310
310
  end
311
311
  end
312
-
312
+
313
313
  it "should setup a ReactiveManager" do
314
314
  a = ReactiveValue.new(1)
315
315
  expect(a.reactive_manager.class).to eq(ReactiveManager)
316
316
  end
317
-
317
+
318
318
  describe "similar to base object" do
319
319
  it "should return a reactive comparator" do
320
320
  a = ReactiveValue.new(1)
321
321
  b = ReactiveValue.new(2)
322
-
322
+
323
323
  compare = (a == b)
324
324
  expect(compare.cur).to eq(false)
325
325
  b.cur = 1
326
326
  expect(compare.cur).to eq(true)
327
327
  end
328
328
  end
329
-
329
+
330
330
  describe "blocks" do
331
331
  before do
332
332
 
@@ -340,14 +340,14 @@ describe ReactiveValue do
340
340
  # value.reactive?.should == true
341
341
  # value.even?
342
342
  end.cur
343
-
343
+
344
344
  expect(count).to eq(2)
345
345
  end
346
346
  end
347
-
347
+
348
348
  it "should give you back the object without any ReactiveValue's if you call .deep_cur on it." do
349
349
  a = ReactiveValue.new({_names: [ReactiveValue.new('bob'), ReactiveValue.new('jim')]})
350
-
350
+
351
351
  expect(a.deep_cur).to eq({_names: ['bob', 'jim']})
352
352
  end
353
- end
353
+ end
@@ -1,14 +1,14 @@
1
1
  # require 'volt/models'
2
- #
2
+ #
3
3
  # describe Store do
4
4
  # # it "should stay as store classes when used" do
5
5
  # # a = Store.new
6
6
  # # expect(a._test.class).to eq(Store)
7
- # #
7
+ # #
8
8
  # # expect(a._test._cool.class).to eq(Store)
9
- # #
9
+ # #
10
10
  # # a._items << {_name: 'Test'}
11
- # #
11
+ # #
12
12
  # # expect(a._items.class).to eq(StoreArray)
13
13
  # # expect(a._items[0].class).to eq(Store)
14
14
  # # expect(a._items[0]._name.class).to eq(String)
@@ -4,45 +4,45 @@ describe ReactiveValue do
4
4
  it "should concat reactive strings" do
5
5
  a = ReactiveValue.new('cool')
6
6
  b = ReactiveValue.new('beans')
7
-
7
+
8
8
  c = a + b
9
9
  expect(c.cur).to eq('coolbeans')
10
10
  expect(c.reactive?).to eq(true)
11
11
  end
12
-
12
+
13
13
  it "should concat reactive and non-reactive" do
14
14
  a = ReactiveValue.new('cool')
15
15
  b = 'beans'
16
-
16
+
17
17
  c = a + b
18
18
  expect(c.cur).to eq('coolbeans')
19
- expect(c.reactive?).to eq(true)
19
+ expect(c.reactive?).to eq(true)
20
20
  end
21
-
21
+
22
22
  it "should concat non-reactive and reactive" do
23
23
  a = 'cool'
24
24
  b = ReactiveValue.new('beans')
25
-
25
+
26
26
  c = a + b
27
27
  expect(c.cur).to eq('coolbeans')
28
- expect(c.reactive?).to eq(true)
28
+ expect(c.reactive?).to eq(true)
29
29
  end
30
-
30
+
31
31
  if RUBY_PLATFORM != 'opal'
32
32
  it "should append reactive to reactive" do
33
33
  a = ReactiveValue.new('cool')
34
34
  b = ReactiveValue.new('beans')
35
-
35
+
36
36
  a << b
37
37
  expect(a.cur).to eq('coolbeans')
38
38
  expect(a.reactive?).to eq(true)
39
39
  end
40
40
  end
41
-
41
+
42
42
  it "should raise an exception when appending non-reactive and reactive" do
43
43
  a = 'cool'
44
44
  b = ReactiveValue.new('beans')
45
-
45
+
46
46
  exception_count = 0
47
47
  begin
48
48
  a << b
@@ -50,8 +50,8 @@ describe ReactiveValue do
50
50
  expect(e.message[/Cannot append a reactive/].cur.true?).to eq(true)
51
51
  exception_count += 1
52
52
  end
53
-
53
+
54
54
  expect(exception_count).to eq(1)
55
55
  end
56
56
 
57
- end
57
+ end
@@ -4,15 +4,15 @@ require 'volt/page/targets/attribute_target'
4
4
  require 'volt/page/template_renderer'
5
5
 
6
6
 
7
- describe ContentBinding do
7
+ describe ContentBinding do
8
8
  it "should render the content in a content binding" do
9
9
  dom = AttributeTarget.new(0)
10
10
  context = {:name => 'jimmy'}
11
11
  binding = ContentBinding.new(nil, dom, context, 0, Proc.new { self[:name] })
12
-
12
+
13
13
  expect(dom.to_html).to eq('jimmy')
14
14
  end
15
-
15
+
16
16
  it "should render with a template" do
17
17
  context = {:name => 'jimmy'}
18
18
  binding = lambda {|page, target, context, id| ContentBinding.new(page, target, context, id, Proc.new { self[:name] }) }
@@ -28,9 +28,9 @@ describe ContentBinding do
28
28
  expect(page).to receive(:templates).and_return(templates)
29
29
 
30
30
  dom = AttributeTarget.new(0)
31
-
31
+
32
32
  TemplateRenderer.new(page, dom, context, 'main', 'home/index')
33
-
33
+
34
34
  expect(dom.to_html).to eq('hello jimmy')
35
35
  end
36
- end
36
+ end
@@ -3,7 +3,7 @@ require 'volt/page/sub_context'
3
3
  describe SubContext do
4
4
  it "should respond_to correctly on locals" do
5
5
  sub_context = SubContext.new({:name => 'Name'})
6
-
6
+
7
7
  expect(sub_context.respond_to?(:name)).to eq(true)
8
8
  expect(sub_context.respond_to?(:missing)).to eq(false)
9
9
  end
@@ -11,14 +11,14 @@ describe Routes do
11
11
  params = Model.new({}, persistor: Persistors::Params)
12
12
  params._controller = 'blog'
13
13
  params._index = '5'
14
-
14
+
15
15
  routes do
16
16
  get '/', _controller: 'index'
17
17
  get '/blog', _controller: 'blog'
18
18
  end
19
-
19
+
20
20
  path, cleaned_params = @routes.url_for_params(params)
21
21
  expect(path).to eq('/blog')
22
22
  expect(cleaned_params).to eq({_index: '5'})
23
23
  end
24
- end
24
+ end