nutella_framework 0.4.32 → 0.5.0

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: be135400997f7f94dfce9f9d0184d2b25d02ae23
4
- data.tar.gz: 0ba0e88dfe8106b071684562dfe4790d4955afd8
3
+ metadata.gz: 2ef5bfa3f250eb7387b0c0aa1b645a29e9269ec2
4
+ data.tar.gz: 8c5a6aac1655df59b14bfb8a8eb756c2811351b7
5
5
  SHA512:
6
- metadata.gz: 70844abe9533e6549ab92b4f976b0d4b11bfc588863e1b40ac498f747881c98f9250722c3c8bc4989a5bb379b07967dd73d085310e84543192b88f6561647416
7
- data.tar.gz: faea3dbf863456f1e38c11c19ccb7c8717506adc78ce1b46df7855f4c9992f8659c6fc0cd966674b5cd8a69df881c6f6621d74c719e4293419d9f055440c8b85
6
+ metadata.gz: 604a3233a279edc399a524fde062ed92159f21ee476a1537ec7b805788b1dde9aa99a857324aec8721b499bae811f3f2346dc76b32f4aef035eaeef75e6f1574
7
+ data.tar.gz: ab5eacb5ed237a5e52fd1b2ebfedb1397f6fc652f9a3417b92f76079239259c8c603eea3ff113b15bf8caee56b74fa155916c6b2b5a99564e0cbe0398733d5d0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.32
1
+ 0.5.0
@@ -64,7 +64,10 @@ $("#request_frm").submit(function(e) {
64
64
  e.preventDefault();
65
65
  var inputs = $('#request_frm :input');
66
66
  nutella.net.request(inputs[0].value, inputs[1].value, function(res){
67
- $("#response").text(res);
67
+ if (typeof res === 'object')
68
+ $("#response").text(JSON.stringify(res));
69
+ else
70
+ $("#response").text(res);
68
71
  });
69
72
  });
70
73
 
@@ -25,7 +25,7 @@ RoomPlacesSimulator.prototype.start = function() {
25
25
  if(Math.random()>0.93) {
26
26
  e.l = hotspots[Math.floor(Math.random()*hotspots.length)];
27
27
  e.d = this.distance -0.1 + Math.random()*0.2;
28
- console.log(e.b + " moved to " + e.l);
28
+ //console.log(e.b + " moved to " + e.l);
29
29
  }
30
30
  if (e.l != 'none')
31
31
  this.publishLocation(e);
@@ -46,6 +46,7 @@ RoomPlacesSimulator.prototype.setHotspots = function(hotspots) {
46
46
  };
47
47
 
48
48
  RoomPlacesSimulator.prototype.setBeacons = function(beacons) {
49
+ this.beacons = [];
49
50
  beacons.forEach((function(e){
50
51
  this.beacons.push({b: e, l: 'none'});
51
52
  }).bind(this));
@@ -14,7 +14,12 @@ nutella.f.init(Nutella.config['broker'], 'room_places_bot')
14
14
  # Buffer object that caches all the updates
15
15
  class RoomPlacesCachePublish
16
16
 
17
- def initialize
17
+ @@cache_list = {}
18
+
19
+ def initialize(app_id, run_id)
20
+ @app_id = app_id
21
+ @run_id = run_id
22
+
18
23
  @resource_updated = {}
19
24
  @resource_added = []
20
25
  @resource_removed = []
@@ -72,54 +77,59 @@ class RoomPlacesCachePublish
72
77
  }
73
78
  end
74
79
 
75
- def publish_update(app_id, run_id)
80
+ def publish_update()
76
81
  @s6.synchronize {
77
82
  if @resource_updated.length > 0
78
- nutella.f.net.publish_to_run(app_id, run_id, 'location/resources/updated', {:resources => @resource_updated.values})
83
+ nutella.f.net.publish_to_run(@app_id, @run_id, 'location/resources/updated', {:resources => @resource_updated.values})
79
84
  @resource_updated = {}
80
85
  end
81
86
  }
82
87
  end
83
88
 
84
- def publish_add(app_id, run_id)
89
+ def publish_add()
85
90
  @s7.synchronize {
86
91
  if @resource_added.length > 0
87
- nutella.f.net.publish_to_run(app_id, run_id, 'location/resources/added', {:resources => @resource_added})
92
+ nutella.f.net.publish_to_run(@app_id, @run_id, 'location/resources/added', {:resources => @resource_added})
88
93
  @resource_added = []
89
94
  end
90
95
  }
91
96
  end
92
97
 
93
- def publish_remove(app_id, run_id)
98
+ def publish_remove()
94
99
  @s8.synchronize {
95
100
  if @resource_removed.length > 0
96
- nutella.f.net.publish_to_run(app_id, run_id, 'location/resources/removed', {:resources => @resource_removed})
101
+ nutella.f.net.publish_to_run(@app_id, @run_id, 'location/resources/removed', {:resources => @resource_removed})
97
102
  @resource_removed = []
98
103
  end
99
104
  }
100
105
  end
101
106
 
102
- def publish_enter(app_id, run_id)
107
+ def publish_enter()
103
108
  @s9.synchronize {
104
109
  @resource_entered.each do |baseStationRid, resources|
105
- nutella.f.net.publish_to_run(app_id, run_id, "location/resource/static/#{baseStationRid}/enter", {'resources' => resources})
110
+ nutella.f.net.publish_to_run(@app_id, @run_id, "location/resource/static/#{baseStationRid}/enter", {'resources' => resources})
106
111
  end
107
112
  @resource_entered = {}
108
113
  }
109
114
  end
110
115
 
111
- def publish_exit(app_id, run_id)
116
+ def publish_exit()
112
117
  @s10.synchronize {
113
118
  @resource_exited.each do |baseStationRid, resources|
114
- nutella.f.net.publish_to_run(app_id, run_id, "location/resource/static/#{baseStationRid}/exit", {'resources' => resources})
119
+ nutella.f.net.publish_to_run(@app_id, @run_id, "location/resource/static/#{baseStationRid}/exit", {'resources' => resources})
115
120
  end
116
121
  @resource_exited = {}
117
122
  }
118
123
  end
119
124
 
120
- end
125
+ def self.get_cache(app_id, run_id)
126
+ unless @@cache_list.has_key? [app_id, run_id]
127
+ @@cache_list[[app_id, run_id]] = RoomPlacesCachePublish.new(app_id, run_id)
128
+ end
129
+ @@cache_list[[app_id, run_id]]
130
+ end
121
131
 
122
- $cache = RoomPlacesCachePublish.new
132
+ end
123
133
 
124
134
  puts 'Room places initialization'
125
135
 
@@ -134,6 +144,9 @@ nutella.f.net.subscribe_to_all_runs('location/resource/add', lambda do |message,
134
144
  # Persistent data
135
145
  resources = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'resources')
136
146
 
147
+ # Cache
148
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
149
+
137
150
  rid = message['rid']
138
151
  type = message['type']
139
152
  model = message['model']
@@ -159,8 +172,8 @@ nutella.f.net.subscribe_to_all_runs('location/resource/add', lambda do |message,
159
172
  :parameters => {}
160
173
  }
161
174
  end
162
- publishResourceAdd(resources[rid])
163
- $cache.publish_add(app_id, run_id)
175
+ publishResourceAdd(app_id, run_id, resources[rid])
176
+ cache.publish_add
164
177
  puts('Added resource')
165
178
  end
166
179
 
@@ -169,15 +182,19 @@ end)
169
182
 
170
183
  # Remove resource
171
184
  nutella.f.net.subscribe_to_all_runs('location/resource/remove', lambda do |message, app_id, run_id, from|
185
+ # Persistent data
172
186
  resources = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'resources')
173
187
 
188
+ # Cache
189
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
190
+
174
191
  rid = message['rid']
175
192
  if rid != nil
176
193
 
177
194
  resourceCopy = resources[rid]
178
195
  resources.delete(rid)
179
- publishResourceRemove(resourceCopy)
180
- $cache.publish_remove(app_id, run_id)
196
+ publishResourceRemove(app_id, run_id, resourceCopy)
197
+ cache.publish_remove
181
198
  puts('Removed resource')
182
199
 
183
200
  end
@@ -186,28 +203,35 @@ end)
186
203
 
187
204
  # Update the location of the resources
188
205
  nutella.f.net.subscribe_to_all_runs('location/resource/update', lambda do |message, app_id, run_id, from|
206
+ # Cache
207
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
208
+
189
209
  updateResource(app_id, run_id, message)
190
210
 
191
- $cache.publish_update(app_id, run_id)
192
- $cache.publish_exit(app_id, run_id)
193
- $cache.publish_enter(app_id, run_id)
211
+ cache.publish_update(app_id, run_id)
212
+ cache.publish_exit(app_id, run_id)
213
+ cache.publish_enter(app_id, run_id)
194
214
  end)
195
215
 
196
216
  # Update the location of the resources
197
217
  nutella.f.net.subscribe_to_all_runs('location/resources/update', lambda do |message, app_id, run_id, from|
198
- resources = message['resources']
199
- if resources != nil
200
- resources.each do |resource|
201
- updateResource(app_id, run_id, resource)
202
- end
218
+ # Cache
219
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
220
+
221
+ resources = message['resources']
222
+ if resources != nil
223
+ resources.each do |resource|
224
+ updateResource(app_id, run_id, resource)
203
225
  end
226
+ end
204
227
 
205
- $cache.publish_update(app_id, run_id)
206
- $cache.publish_exit(app_id, run_id)
207
- $cache.publish_enter(app_id, run_id)
208
- end)
228
+ cache.publish_update
229
+ cache.publish_exit
230
+ cache.publish_enter
231
+ end)
209
232
 
210
233
  def updateResource(app_id, run_id, updatedResource)
234
+ # Persistent data
211
235
  resources = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'resources')
212
236
  room = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'room')
213
237
  discrete_tracking = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'discrete_tracking')
@@ -254,8 +278,8 @@ def updateResource(app_id, run_id, updatedResource)
254
278
  if resource['proximity']['rid'] != proximity['rid']
255
279
  resource['proximity'] = proximity
256
280
  resource['proximity']['timestamp'] = Time.now.to_f
257
- publishResourceExit(resource, oldBaseStationRid)
258
- publishResourceEnter(resource, resource['proximity']['rid'])
281
+ publishResourceExit(app_id, run_id, resource, oldBaseStationRid)
282
+ publishResourceEnter(app_id, run_id, resource, resource['proximity']['rid'])
259
283
  else
260
284
  resource['proximity'] = proximity
261
285
  resource['proximity']['timestamp'] = Time.now.to_f
@@ -264,7 +288,7 @@ def updateResource(app_id, run_id, updatedResource)
264
288
  else
265
289
  resource['proximity'] = proximity
266
290
  resource['proximity']['timestamp'] = Time.now.to_f
267
- publishResourceEnter(resource, resource['proximity']['rid'])
291
+ publishResourceEnter(app_id, run_id, resource, resource['proximity']['rid'])
268
292
  end
269
293
  end
270
294
  end
@@ -390,6 +414,7 @@ end
390
414
 
391
415
  # Request the position of a single resource
392
416
  nutella.f.net.handle_requests_on_all_runs('location/resources', lambda do |request, app_id, run_id, from|
417
+ # Persistent data
393
418
  resources = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'resources')
394
419
  groups = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'groups')
395
420
 
@@ -436,11 +461,11 @@ end)
436
461
 
437
462
  # Update the room size
438
463
  nutella.f.net.subscribe_to_all_runs('location/room/update', lambda do |message, app_id, run_id, from|
464
+ # Persistent data
439
465
  room = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'room')
440
466
 
441
467
  x = message['x']
442
468
  y = message['y']
443
- z = message['z']
444
469
 
445
470
  if x != nil && y != nil
446
471
  r = {}
@@ -450,11 +475,6 @@ nutella.f.net.subscribe_to_all_runs('location/room/update', lambda do |message,
450
475
  room['y'] = y
451
476
  r['y'] = y
452
477
 
453
- if z != nil
454
- room['z'] = z
455
- r['z'] = z
456
- end
457
-
458
478
  publishRoomUpdate(app_id, run_id, r)
459
479
  puts 'Room updated'
460
480
  end
@@ -464,8 +484,6 @@ end)
464
484
  def computeResourceUpdate(app_id, run_id, rid)
465
485
  resources = nutella.f.persist.get_run_mongo_object_store(app_id, run_id, 'resources')
466
486
 
467
- resource = nil
468
-
469
487
  resource = resources[rid]
470
488
 
471
489
  if resource != nil
@@ -474,7 +492,6 @@ def computeResourceUpdate(app_id, run_id, rid)
474
492
 
475
493
  if resource['proximity']['rid'] != nil
476
494
  puts 'Search for base station ' + resource['proximity']['rid']
477
- baseStation = nil
478
495
  baseStation = resources[resource['proximity']['rid']]
479
496
 
480
497
  if baseStation != nil && baseStation['continuous'] != nil
@@ -521,7 +538,7 @@ def computeResourceUpdate(app_id, run_id, rid)
521
538
  end
522
539
 
523
540
  # Send update
524
- publishResourceUpdate(resource)
541
+ publishResourceUpdate(app_id, run_id, resource)
525
542
  puts 'Sent update'
526
543
 
527
544
  end
@@ -584,20 +601,29 @@ end)
584
601
 
585
602
 
586
603
  # Publish an added resource
587
- def publishResourceAdd(resource)
588
- $cache.resources_add([resource])
604
+ def publishResourceAdd(app_id, run_id, resource)
605
+ # Cache
606
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
607
+
608
+ cache.resources_add([resource])
589
609
  #nutella.net.publish('location/resources/added', {:resources => [resource]})
590
610
  end
591
611
 
592
612
  # Publish a removed resource
593
- def publishResourceRemove(resource)
594
- $cache.resources_remove([resource])
613
+ def publishResourceRemove(app_id, run_id, resource)
614
+ # Cache
615
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
616
+
617
+ cache.resources_remove([resource])
595
618
  #nutella.net.publish('location/resources/removed', {:resources => [resource]})
596
619
  end
597
620
 
598
621
  # Publish an updated resource
599
- def publishResourceUpdate(resource)
600
- $cache.resources_update([resource])
622
+ def publishResourceUpdate(app_id, run_id, resource)
623
+ # Cache
624
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
625
+
626
+ cache.resources_update([resource])
601
627
  #nutella.net.publish('location/resources/updated', {:resources => [resource]})
602
628
  end
603
629
 
@@ -607,27 +633,29 @@ def publishRoomUpdate(app_id, run_id, room)
607
633
  end
608
634
 
609
635
  # Publish resources enter base station proximity area
610
- def publishResourcesEnter(resources, baseStationRid)
611
- #message = {:resources => resources}
612
- #nutella.net.publish("location/resource/static/#{baseStationRid}/enter", message)
613
- $cache.resources_enter(resources, baseStationRid)
636
+ def publishResourcesEnter(app_id, run_id, resources, baseStationRid)
637
+ # Cache
638
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
639
+
640
+ cache.resources_enter(resources, baseStationRid)
614
641
  end
615
642
 
616
643
  # Publish resources exit base station proximity area
617
- def publishResourcesExit(resources, baseStationRid)
618
- #message = {:resources => resources}
619
- #nutella.net.publish("location/resource/static/#{baseStationRid}/exit", message)
620
- $cache.resources_exit(resources, baseStationRid)
644
+ def publishResourcesExit(app_id, run_id, resources, baseStationRid)
645
+ # Cache
646
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
647
+
648
+ cache.resources_exit(resources, baseStationRid)
621
649
  end
622
650
 
623
651
  # Publish resource enter base station proximity area
624
- def publishResourceEnter(resource, baseStationRid)
625
- publishResourcesEnter([resource], baseStationRid)
652
+ def publishResourceEnter(app_id, run_id, resource, baseStationRid)
653
+ publishResourcesEnter(app_id, run_id, [resource], baseStationRid)
626
654
  end
627
655
 
628
656
  # Publish resource enter base station proximity area
629
- def publishResourceExit(resource, baseStationRid)
630
- publishResourcesExit([resource], baseStationRid)
657
+ def publishResourceExit(app_id, run_id, resource, baseStationRid)
658
+ publishResourcesExit(app_id, run_id, [resource], baseStationRid)
631
659
  end
632
660
 
633
661
  # Publish tracking system update
@@ -743,12 +771,12 @@ while sleep 0.5
743
771
  if Time.now.to_f - resource['proximity']['timestamp'] > 3.0
744
772
  if resource['proximity']['rid'] != nil
745
773
  baseStations.push(resource['proximity']['rid'])
746
- publishResourceExit(resource, resource['proximity']['rid'])
774
+ publishResourceExit(app_id, run_id, resource, resource['proximity']['rid'])
747
775
  end
748
776
  resource['proximity'] = {}
749
777
  resources[resource['rid']] = resource
750
778
  puts 'Delete proximity resource'
751
- publishResourceUpdate(resource)
779
+ publishResourceUpdate(app_id, run_id, resource)
752
780
  end
753
781
  end
754
782
  end
@@ -758,9 +786,12 @@ while sleep 0.5
758
786
  computeResourceUpdate(app_id, run_id, baseStation)
759
787
  end
760
788
 
761
- $cache.publish_update(app_id, run_id)
762
- $cache.publish_exit(app_id, run_id)
763
- $cache.publish_enter(app_id, run_id)
789
+ # Cache
790
+ cache = RoomPlacesCachePublish.get_cache(app_id, run_id)
791
+
792
+ cache.publish_update
793
+ cache.publish_exit
794
+ cache.publish_enter
764
795
  end
765
796
  end
766
797
 
@@ -2,11 +2,11 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: nutella_framework 0.4.31 ruby lib
5
+ # stub: nutella_framework 0.5.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "nutella_framework"
9
- s.version = "0.4.31"
9
+ s.version = "0.5.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
@@ -27,7 +27,6 @@ Gem::Specification.new do |s|
27
27
  "README.md",
28
28
  "Rakefile",
29
29
  "VERSION",
30
- "VERSION.orig",
31
30
  "bin/nutella",
32
31
  "data/index.html",
33
32
  "data/startup",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutella_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.32
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Gnoli