material_raingular-websocket 0.0.2.alpha → 0.0.2.1.alpha

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 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