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: d5c7891b966ef5acc7d22c774bd4e098bc1b16ff
4
- data.tar.gz: 72cd322a7cb62a90fecc2ac9fb3f33bf121c6609
3
+ metadata.gz: dfd037fd6b47347d5d9174f8a6bf50aa57d3d260
4
+ data.tar.gz: cdd9dcacbb089770552450143d5845f1d1a0ad8a
5
5
  SHA512:
6
- metadata.gz: cae677433d4248bde5e77d366521fd55ebd9a275d27e225f59607c93316ec50efc1e2620282f92d45a5abe1ba0f0bea5963a94adce0c4c3409d09b5af9605e1d
7
- data.tar.gz: 6181eb3a7aa3952d4c464a46008e05f452baef7cddcb750470d3cc7446f6e2b7de4153adb9e3b0f0df4f3bb19fad7d580eeb9cb69c76828578538958291c2862
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.bind parent_name + '_' + parent.id + '.change', (data) ->
25
- new DateParser(data).to_s()
26
- for key,value of data
27
- parent[key] = value unless equiv(parent[key],value) || key == modelName
28
- modelCtrl.$setViewValue(data[modelName])
29
- modelCtrl.$render()
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) {WebsocketRails.users.each{|user| user.send_message :change, websocket_message, namespace: websocket_namespace}}
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
@@ -1,5 +1,5 @@
1
1
  module MaterialRaingular
2
2
  module Websocket
3
- VERSION = "0.0.2.alpha"
3
+ VERSION = "0.0.2.1.alpha"
4
4
  end
5
5
  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-06 00:00:00.000000000 Z
11
+ date: 2015-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails