motion 0.1.1 → 0.3.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.
- checksums.yaml +4 -4
- data/lib/generators/motion/component_generator.rb +34 -0
- data/lib/generators/motion/install_generator.rb +10 -3
- data/lib/generators/motion/templates/motion.js +37 -0
- data/lib/generators/motion/templates/motion.rb +54 -15
- data/lib/motion.rb +5 -0
- data/lib/motion/action_cable_extentions.rb +6 -0
- data/lib/motion/action_cable_extentions/declarative_notifications.rb +101 -0
- data/lib/motion/action_cable_extentions/declarative_streams.rb +12 -45
- data/lib/motion/action_cable_extentions/synchronization.rb +34 -0
- data/lib/motion/channel.rb +12 -4
- data/lib/motion/component.rb +2 -0
- data/lib/motion/component/broadcasts.rb +40 -26
- data/lib/motion/component/lifecycle.rb +91 -9
- data/lib/motion/component/motions.rb +26 -16
- data/lib/motion/component/periodic_timers.rb +68 -0
- data/lib/motion/component/rendering.rb +11 -14
- data/lib/motion/component_connection.rb +18 -2
- data/lib/motion/configuration.rb +18 -11
- data/lib/motion/errors.rb +102 -71
- data/lib/motion/event.rb +9 -1
- data/lib/motion/log_helper.rb +2 -0
- data/lib/motion/markup_transformer.rb +6 -21
- data/lib/motion/railtie.rb +1 -0
- data/lib/motion/revision_calculator.rb +48 -0
- data/lib/motion/serializer.rb +4 -0
- data/lib/motion/version.rb +1 -1
- metadata +12 -7
- data/lib/generators/motion/templates/motion_controller.js +0 -28
data/lib/motion/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alec Larsen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-07-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -40,8 +40,8 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '5.2'
|
42
42
|
description: |
|
43
|
-
Motion extends Github's `view_component`
|
44
|
-
|
43
|
+
Motion extends Github's `view_component` to allow you to build reactive,
|
44
|
+
real-time frontend UI components in your Rails application using pure Ruby.
|
45
45
|
email:
|
46
46
|
- alec@unabridgedsoftware.com
|
47
47
|
- drew@unabridgedsoftware.com
|
@@ -49,18 +49,22 @@ executables: []
|
|
49
49
|
extensions: []
|
50
50
|
extra_rdoc_files: []
|
51
51
|
files:
|
52
|
+
- lib/generators/motion/component_generator.rb
|
52
53
|
- lib/generators/motion/install_generator.rb
|
54
|
+
- lib/generators/motion/templates/motion.js
|
53
55
|
- lib/generators/motion/templates/motion.rb
|
54
|
-
- lib/generators/motion/templates/motion_controller.js
|
55
56
|
- lib/motion.rb
|
56
57
|
- lib/motion/action_cable_extentions.rb
|
58
|
+
- lib/motion/action_cable_extentions/declarative_notifications.rb
|
57
59
|
- lib/motion/action_cable_extentions/declarative_streams.rb
|
58
60
|
- lib/motion/action_cable_extentions/log_suppression.rb
|
61
|
+
- lib/motion/action_cable_extentions/synchronization.rb
|
59
62
|
- lib/motion/channel.rb
|
60
63
|
- lib/motion/component.rb
|
61
64
|
- lib/motion/component/broadcasts.rb
|
62
65
|
- lib/motion/component/lifecycle.rb
|
63
66
|
- lib/motion/component/motions.rb
|
67
|
+
- lib/motion/component/periodic_timers.rb
|
64
68
|
- lib/motion/component/rendering.rb
|
65
69
|
- lib/motion/component_connection.rb
|
66
70
|
- lib/motion/configuration.rb
|
@@ -70,6 +74,7 @@ files:
|
|
70
74
|
- lib/motion/log_helper.rb
|
71
75
|
- lib/motion/markup_transformer.rb
|
72
76
|
- lib/motion/railtie.rb
|
77
|
+
- lib/motion/revision_calculator.rb
|
73
78
|
- lib/motion/serializer.rb
|
74
79
|
- lib/motion/test_helpers.rb
|
75
80
|
- lib/motion/version.rb
|
@@ -81,7 +86,7 @@ metadata:
|
|
81
86
|
source_code_uri: https://github.com/unabridged/motion
|
82
87
|
post_install_message: |
|
83
88
|
Friendly reminder: When updating the motion gem, don't forget to update the
|
84
|
-
NPM package as well (`bin/yarn add '@unabridged/motion@0.
|
89
|
+
NPM package as well (`bin/yarn add '@unabridged/motion@0.3.0'`).
|
85
90
|
rdoc_options: []
|
86
91
|
require_paths:
|
87
92
|
- lib
|
@@ -99,5 +104,5 @@ requirements: []
|
|
99
104
|
rubygems_version: 3.0.3
|
100
105
|
signing_key:
|
101
106
|
specification_version: 4
|
102
|
-
summary: Reactive
|
107
|
+
summary: Reactive frontend UI components for Rails in pure Ruby.
|
103
108
|
test_files: []
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { Controller } from "@unabridged/motion";
|
2
|
-
import consumer from "../channels/consumer";
|
3
|
-
|
4
|
-
// If you change the name of this controller (determined by the file name),
|
5
|
-
// make sure to update `Motion.config.stimulus_controller_identifier`.
|
6
|
-
export default class extends Controller {
|
7
|
-
// To avoid creating a second websocket, make sure to reuse the application's
|
8
|
-
// ActionCable consumer.
|
9
|
-
getConsumer() {
|
10
|
-
return consumer;
|
11
|
-
}
|
12
|
-
|
13
|
-
// It is possible to additionally customize the behavior of the client by
|
14
|
-
// overriding these properties and methods:
|
15
|
-
|
16
|
-
// getExtraDataForEvent(event) {} // `Motion::Event#extra_data`
|
17
|
-
|
18
|
-
// keyAttribute = "data-motion-key"; // `Motion.config.key_attribute`
|
19
|
-
// stateAttribute = "data-motion-state"; // `Motion.config.state_attribute`
|
20
|
-
// motionAttribute = "data-motion"; // `Motion.config.motion_attribute`
|
21
|
-
|
22
|
-
// beforeConnect() { /* by default, dispatches `motion:before-connect` */ }
|
23
|
-
// connected() { /* by default, dispatches `motion:connected` */ }
|
24
|
-
// connectFailed() { /* by default, dispatches `motion:connect-failed` */ }
|
25
|
-
// disconnected() { /* by default, dispatches `motion:disconnected` */ }
|
26
|
-
// beforeRender() { /* by default, dispatches `motion:before-render` */ }
|
27
|
-
// rendered() { /* by default, dispatches `motion:rendered` */ }
|
28
|
-
}
|