volt 0.9.3.pre2 → 0.9.3.pre3
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 +12 -0
- data/app/volt/tasks/query_tasks.rb +0 -7
- data/app/volt/tasks/store_tasks.rb +0 -6
- data/docs/UPGRADE_GUIDE.md +2 -0
- data/lib/volt/cli/asset_compile.rb +2 -2
- data/lib/volt/cli/console.rb +21 -0
- data/lib/volt/config.rb +0 -10
- data/lib/volt/controllers/collection_helpers.rb +18 -0
- data/lib/volt/controllers/model_controller.rb +2 -12
- data/lib/volt/extra_core/object.rb +19 -0
- data/lib/volt/models.rb +14 -9
- data/lib/volt/models/array_model.rb +62 -22
- data/lib/volt/models/associations.rb +16 -1
- data/lib/volt/models/model.rb +27 -15
- data/lib/volt/models/model_helpers/model_helpers.rb +29 -0
- data/lib/volt/models/permissions.rb +15 -4
- data/lib/volt/models/persistors/array_store.rb +40 -0
- data/lib/volt/models/persistors/model_store.rb +2 -2
- data/lib/volt/models/persistors/query/query_listener.rb +3 -1
- data/lib/volt/models/persistors/store.rb +2 -1
- data/lib/volt/models/root_models/root_models.rb +31 -0
- data/lib/volt/models/root_models/store_root.rb +36 -0
- data/lib/volt/models/validators/unique_validator.rb +1 -1
- data/lib/volt/page/bindings/each_binding.rb +56 -47
- data/lib/volt/page/page.rb +5 -5
- data/lib/volt/reactive/reactive_array.rb +9 -6
- data/lib/volt/server.rb +2 -2
- data/lib/volt/server/component_templates.rb +7 -4
- data/lib/volt/server/message_bus/message_encoder.rb +9 -1
- data/lib/volt/server/rack/component_code.rb +8 -1
- data/lib/volt/server/rack/index_files.rb +5 -2
- data/lib/volt/tasks/{task_handler.rb → task.rb} +6 -6
- data/lib/volt/utils/promise.rb +429 -0
- data/lib/volt/utils/promise_extensions.rb +79 -0
- data/lib/volt/version.rb +1 -1
- data/lib/volt/volt/app.rb +5 -2
- data/lib/volt/volt/server_setup/app.rb +28 -7
- data/spec/apps/kitchen_sink/app/main/controllers/server/simple_http_controller.rb +1 -1
- data/spec/apps/kitchen_sink/app/main/views/main/store.html +3 -0
- data/spec/extra_core/object_spec.rb +13 -0
- data/spec/integration/store_spec.rb +10 -0
- data/spec/models/associations_spec.rb +48 -26
- data/spec/models/model_spec.rb +23 -7
- data/spec/models/persistors/store_spec.rb +28 -0
- data/spec/models/validators/unique_validator_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -1
- data/spec/utils/promise_extensions_spec.rb +42 -0
- data/templates/component/config/initializers/boot.rb +10 -0
- data/templates/{project/app → component/config/initializers/client}/.empty_directory +0 -0
- data/templates/component/config/initializers/server/.empty_directory +0 -0
- data/templates/newgem/app/newgem/config/initializers/client/.empty_directory +0 -0
- data/templates/newgem/app/newgem/config/initializers/server/.empty_directory +0 -0
- data/templates/project/Gemfile.tt +6 -2
- data/templates/project/app/main/config/initializers/boot.rb +10 -0
- data/templates/project/app/main/config/initializers/client/.empty_directory +0 -0
- data/templates/project/app/main/config/initializers/server/.empty_directory +0 -0
- data/templates/project/config/app.rb.tt +3 -0
- data/templates/project/config/initializers/client/.empty_directory +0 -0
- data/templates/project/config/initializers/server/.empty_directory +0 -0
- metadata +22 -5
- data/lib/volt/utils/promise_patch.rb +0 -70
@@ -0,0 +1,10 @@
|
|
1
|
+
# Place any code you want to run when the component is included on the client
|
2
|
+
# or server.
|
3
|
+
|
4
|
+
# To include code only on the client use:
|
5
|
+
# if RUBY_PLATFORM == 'opal'
|
6
|
+
#
|
7
|
+
# To include code only on the server, use:
|
8
|
+
# unless RUBY_PLATFORM == 'opal'
|
9
|
+
# ^^ this will not send compile in code in the conditional to the client.
|
10
|
+
# ^^ this include code required in the conditional.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -20,8 +20,12 @@ gem 'volt-mailer', '~> 0.1.0'
|
|
20
20
|
|
21
21
|
# Use rbnacl for message bus encrpytion
|
22
22
|
# (optional, if you don't need encryption, disable in app.rb and remove)
|
23
|
-
|
24
|
-
|
23
|
+
#
|
24
|
+
# Message Bus encryption is not supported on Windows at the moment.
|
25
|
+
platform :ruby, :jruby do
|
26
|
+
gem 'rbnacl', require: false
|
27
|
+
gem 'rbnacl-libsodium', require: false
|
28
|
+
end
|
25
29
|
|
26
30
|
# Asset compilation gems, they will be required when needed.
|
27
31
|
gem 'csso-rails', '~> 0.3.4', require: false
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Place any code you want to run when the component is included on the client
|
2
|
+
# or server.
|
3
|
+
|
4
|
+
# To include code only on the client use:
|
5
|
+
# if RUBY_PLATFORM == 'opal'
|
6
|
+
#
|
7
|
+
# To include code only on the server, use:
|
8
|
+
# unless RUBY_PLATFORM == 'opal'
|
9
|
+
# ^^ this will not send compile in code in the conditional to the client.
|
10
|
+
# ^^ this include code required in the conditional.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.3.
|
4
|
+
version: 0.9.3.pre3
|
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-05-
|
11
|
+
date: 2015-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -410,6 +410,7 @@ files:
|
|
410
410
|
- lib/volt/cli/runner.rb
|
411
411
|
- lib/volt/config.rb
|
412
412
|
- lib/volt/controllers/actions.rb
|
413
|
+
- lib/volt/controllers/collection_helpers.rb
|
413
414
|
- lib/volt/controllers/http_controller.rb
|
414
415
|
- lib/volt/controllers/model_controller.rb
|
415
416
|
- lib/volt/controllers/template_helpers.rb
|
@@ -461,6 +462,8 @@ files:
|
|
461
462
|
- lib/volt/models/persistors/store.rb
|
462
463
|
- lib/volt/models/persistors/store_factory.rb
|
463
464
|
- lib/volt/models/persistors/store_state.rb
|
465
|
+
- lib/volt/models/root_models/root_models.rb
|
466
|
+
- lib/volt/models/root_models/store_root.rb
|
464
467
|
- lib/volt/models/state_helpers.rb
|
465
468
|
- lib/volt/models/state_manager.rb
|
466
469
|
- lib/volt/models/url.rb
|
@@ -561,7 +564,7 @@ files:
|
|
561
564
|
- lib/volt/spec/setup.rb
|
562
565
|
- lib/volt/store/mongo.rb
|
563
566
|
- lib/volt/tasks/dispatcher.rb
|
564
|
-
- lib/volt/tasks/
|
567
|
+
- lib/volt/tasks/task.rb
|
565
568
|
- lib/volt/utils/boolean_patch.rb
|
566
569
|
- lib/volt/utils/csso_patch.rb
|
567
570
|
- lib/volt/utils/ejson.rb
|
@@ -573,7 +576,8 @@ files:
|
|
573
576
|
- lib/volt/utils/logging/task_logger.rb
|
574
577
|
- lib/volt/utils/modes.rb
|
575
578
|
- lib/volt/utils/parsing.rb
|
576
|
-
- lib/volt/utils/
|
579
|
+
- lib/volt/utils/promise.rb
|
580
|
+
- lib/volt/utils/promise_extensions.rb
|
577
581
|
- lib/volt/utils/read_write_lock.rb
|
578
582
|
- lib/volt/utils/tilt_patch.rb
|
579
583
|
- lib/volt/utils/timers.rb
|
@@ -644,6 +648,7 @@ files:
|
|
644
648
|
- spec/integration/list_spec.rb
|
645
649
|
- spec/integration/missing_spec.rb
|
646
650
|
- spec/integration/raw_html_binding.rb
|
651
|
+
- spec/integration/store_spec.rb
|
647
652
|
- spec/integration/templates_spec.rb
|
648
653
|
- spec/integration/todos_spec.rb
|
649
654
|
- spec/integration/url_spec.rb
|
@@ -713,12 +718,16 @@ files:
|
|
713
718
|
- spec/utils/generic_counting_pool_spec.rb
|
714
719
|
- spec/utils/generic_pool_spec.rb
|
715
720
|
- spec/utils/parsing_spec.rb
|
721
|
+
- spec/utils/promise_extensions_spec.rb
|
716
722
|
- spec/utils/task_argument_filtererer_spec.rb
|
717
723
|
- templates/.gitignore
|
718
724
|
- templates/component/assets/css/.empty_directory
|
719
725
|
- templates/component/assets/images/.empty_directory
|
720
726
|
- templates/component/assets/js/.empty_directory
|
721
727
|
- templates/component/config/dependencies.rb
|
728
|
+
- templates/component/config/initializers/boot.rb
|
729
|
+
- templates/component/config/initializers/client/.empty_directory
|
730
|
+
- templates/component/config/initializers/server/.empty_directory
|
722
731
|
- templates/component/config/routes.rb
|
723
732
|
- templates/component/controllers/main_controller.rb.tt
|
724
733
|
- templates/component/controllers/server/.empty_directory
|
@@ -744,6 +753,8 @@ files:
|
|
744
753
|
- templates/newgem/app/newgem/assets/js/.empty_directory
|
745
754
|
- templates/newgem/app/newgem/config/dependencies.rb
|
746
755
|
- templates/newgem/app/newgem/config/initializers/boot.rb
|
756
|
+
- templates/newgem/app/newgem/config/initializers/client/.empty_directory
|
757
|
+
- templates/newgem/app/newgem/config/initializers/server/.empty_directory
|
747
758
|
- templates/newgem/app/newgem/config/routes.rb
|
748
759
|
- templates/newgem/app/newgem/controllers/main_controller.rb.tt
|
749
760
|
- templates/newgem/app/newgem/controllers/server/.empty_directory
|
@@ -763,12 +774,14 @@ files:
|
|
763
774
|
- templates/project/.gitignore
|
764
775
|
- templates/project/Gemfile.tt
|
765
776
|
- templates/project/README.md.tt
|
766
|
-
- templates/project/app/.empty_directory
|
767
777
|
- templates/project/app/main/assets/css/.empty_directory
|
768
778
|
- templates/project/app/main/assets/css/app.css.scss
|
769
779
|
- templates/project/app/main/assets/images/.empty_directory
|
770
780
|
- templates/project/app/main/assets/js/.empty_directory
|
771
781
|
- templates/project/app/main/config/dependencies.rb
|
782
|
+
- templates/project/app/main/config/initializers/boot.rb
|
783
|
+
- templates/project/app/main/config/initializers/client/.empty_directory
|
784
|
+
- templates/project/app/main/config/initializers/server/.empty_directory
|
772
785
|
- templates/project/app/main/config/routes.rb
|
773
786
|
- templates/project/app/main/controllers/main_controller.rb
|
774
787
|
- templates/project/app/main/lib/.empty_directory
|
@@ -782,6 +795,8 @@ files:
|
|
782
795
|
- templates/project/config/app.rb.tt
|
783
796
|
- templates/project/config/base/index.html
|
784
797
|
- templates/project/config/initializers/.empty_directory
|
798
|
+
- templates/project/config/initializers/client/.empty_directory
|
799
|
+
- templates/project/config/initializers/server/.empty_directory
|
785
800
|
- templates/project/spec/app/main/controllers/server/sample_http_controller_spec.rb
|
786
801
|
- templates/project/spec/app/main/integration/sample_integration_spec.rb
|
787
802
|
- templates/project/spec/app/main/models/sample_model_spec.rb
|
@@ -876,6 +891,7 @@ test_files:
|
|
876
891
|
- spec/integration/list_spec.rb
|
877
892
|
- spec/integration/missing_spec.rb
|
878
893
|
- spec/integration/raw_html_binding.rb
|
894
|
+
- spec/integration/store_spec.rb
|
879
895
|
- spec/integration/templates_spec.rb
|
880
896
|
- spec/integration/todos_spec.rb
|
881
897
|
- spec/integration/url_spec.rb
|
@@ -945,5 +961,6 @@ test_files:
|
|
945
961
|
- spec/utils/generic_counting_pool_spec.rb
|
946
962
|
- spec/utils/generic_pool_spec.rb
|
947
963
|
- spec/utils/parsing_spec.rb
|
964
|
+
- spec/utils/promise_extensions_spec.rb
|
948
965
|
- spec/utils/task_argument_filtererer_spec.rb
|
949
966
|
has_rdoc:
|
@@ -1,70 +0,0 @@
|
|
1
|
-
# A temp patch for promises until https://github.com/opal/opal/pull/725 is released.
|
2
|
-
class Promise
|
3
|
-
def initialize(success = nil, failure = nil)
|
4
|
-
@success = success
|
5
|
-
@failure = failure
|
6
|
-
|
7
|
-
@realized = nil
|
8
|
-
@exception = false
|
9
|
-
@value = nil
|
10
|
-
@error = nil
|
11
|
-
@delayed = false
|
12
|
-
|
13
|
-
@prev = nil
|
14
|
-
@next = nil
|
15
|
-
end
|
16
|
-
|
17
|
-
def >>(promise)
|
18
|
-
@next = promise
|
19
|
-
|
20
|
-
if exception?
|
21
|
-
promise.reject(@delayed[0])
|
22
|
-
elsif resolved?
|
23
|
-
promise.resolve(@delayed ? @delayed[0] : value)
|
24
|
-
elsif rejected? && (!@failure || Promise === (@delayed ? @delayed[0] : @error))
|
25
|
-
promise.reject(@delayed ? @delayed[0] : error)
|
26
|
-
end
|
27
|
-
|
28
|
-
self
|
29
|
-
end
|
30
|
-
|
31
|
-
def resolve!(value)
|
32
|
-
if @next
|
33
|
-
@next.resolve(value)
|
34
|
-
else
|
35
|
-
@delayed = [value]
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def reject!(value)
|
40
|
-
if @next
|
41
|
-
@next.reject(value)
|
42
|
-
else
|
43
|
-
@delayed = [value]
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
# Waits for the promise to resolve (assuming it is blocking on
|
48
|
-
# the server) and returns the result.
|
49
|
-
def sync
|
50
|
-
raise ".sync can only be used on the client" if Volt.client?
|
51
|
-
|
52
|
-
result = nil
|
53
|
-
error = nil
|
54
|
-
|
55
|
-
self.then do |val|
|
56
|
-
result = val
|
57
|
-
end.fail do |err|
|
58
|
-
error = err
|
59
|
-
end
|
60
|
-
|
61
|
-
if error
|
62
|
-
err_str = "Exception in Promise at .sync: #{error.inspect}"
|
63
|
-
err_str += error.backtrace.join("\n")
|
64
|
-
Volt.logger.error(err_str)
|
65
|
-
fail error
|
66
|
-
else
|
67
|
-
return result
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|