material_raingular-websocket 0.0.2.alpha → 0.0.2.1.alpha
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfd037fd6b47347d5d9174f8a6bf50aa57d3d260
|
4
|
+
data.tar.gz: cdd9dcacbb089770552450143d5845f1d1a0ad8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c76b1ce4c88b55da645c9404dd6a8afa83d6339dbeffdfe3bb9914ed8a27221d00d1a9cb5de3890cbb6c381223d663dbc694e64fee17cda9a983c3686570eac8
|
7
|
+
data.tar.gz: 063c3bbe662fc9c4e9331dfa3b0ce32b41285db115fbe918902c0c11bb98c5ca60cde9a7790f8c736c25d158c0303ef19be30692a0ad063fc834bdf1215d3098
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# //= require dateparser
|
3
3
|
|
4
4
|
angular.module('WebSocket', [])
|
5
|
-
.directive 'webSocket', ($routeParams) ->
|
5
|
+
.directive 'webSocket', ($routeParams, $filter) ->
|
6
6
|
restrict: 'A'
|
7
7
|
require: 'ngModel'
|
8
8
|
link: (scope, element, attributes, modelCtrl) ->
|
@@ -17,13 +17,28 @@ angular.module('WebSocket', [])
|
|
17
17
|
equiv = (left,right) ->
|
18
18
|
return true if left == right
|
19
19
|
return !left && !right
|
20
|
+
singleton_process = (data) ->
|
21
|
+
for key,value of data
|
22
|
+
parent[key] = value unless equiv(parent[key],value) || key == modelName
|
23
|
+
modelCtrl.$setViewValue(data[modelName])
|
24
|
+
modelCtrl.$render()
|
25
|
+
array_process = (data) ->
|
26
|
+
ids = $filter('pluck')(parent[modelName], 'id')
|
27
|
+
for item in (data[modelName] || [])
|
28
|
+
parent[modelName].push(item) unless ids.includes(item.id)
|
29
|
+
ids = $filter('pluck')(data[modelName], 'id')
|
30
|
+
for item in (parent[modelName] || [])
|
31
|
+
parent[modelName].drop(instance) unless ids.includes(item.id)
|
32
|
+
window.dispatchEvent(new Event('resize'))
|
33
|
+
parent.adjustHeight() if parent.adjustHeight
|
34
|
+
scope.$parent.creating = false
|
20
35
|
contentLoaded = scope.$watch parent_name, (newVal) ->
|
21
36
|
if newVal
|
22
37
|
contentLoaded()
|
23
38
|
parent = scope.$eval(parent_name)
|
24
|
-
angular.dispatcher.
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
39
|
+
channel = angular.dispatcher.subscribe parent_name + '_' + parent.id
|
40
|
+
channel.bind 'change', (data) ->
|
41
|
+
scope.$apply ->
|
42
|
+
new DateParser(data).to_s()
|
43
|
+
array_process(data) if attributes.webSocket == 'array'
|
44
|
+
singleton_process(data) unless attributes.webSocket == 'array'
|
@@ -7,7 +7,7 @@ module EmittableExtension
|
|
7
7
|
def emittable
|
8
8
|
@emittable = true
|
9
9
|
after_save :emit_changes
|
10
|
-
define_method(:emit_changes)
|
10
|
+
define_method(:emit_changes) {WebsocketRails[websocket_namespace].trigger(:change, websocket_message) if WebsocketRails[websocket_namespace].subscribers.present?}
|
11
11
|
define_method(:websocket_message) {self.as_json}
|
12
12
|
define_method(:websocket_namespace) {"#{self.class.name.underscore}_#{self.id}".to_sym}
|
13
13
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: material_raingular-websocket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.2.alpha
|
4
|
+
version: 0.0.2.1.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Moody
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|