nutella_lib 0.4.5 → 0.4.6

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: 7f6e22dc80f2fa1a04b13c6285c5ab2eba470713
4
- data.tar.gz: a8a46742e94c7e8bbe15a52071c42fb5904f0cba
3
+ metadata.gz: 0a37285fe9851480adc9356e0285aa2e9ca57883
4
+ data.tar.gz: ad97877f32158f978be2603415914f25751bc337
5
5
  SHA512:
6
- metadata.gz: 5f4fc82775d70c1a5eb35f53d1b8e415f91da7c74f94541ed3e1cdd29f75ed7a123be54fc0addadaf265615fdfaba78ec3275c50aee06c2a56f0f271c30db530
7
- data.tar.gz: a5834403b96d5946f571aeb35085470f788d0709f516aaff128f0509ba46dc6d820fbbff3de30e2ec51af572b33cd92cf39b1e8f84013412f6a91a0790d9818c
6
+ metadata.gz: cceac4ec18ade4696c255edeb4913dd6da90b224abca8813e19d4fe680c5b796dee65f2e72b4592fb7d31bf513359e648529861718cc5f8a79dc611ec7753cd7
7
+ data.tar.gz: 5bf8c9ab76626a94c9fbac613f0aec7e000c48443f4546b9b324bb65f57c627aa6ec8f07f9af18e38b93b9e9a82344833d18702b9829ef15eeda035673dacb9f
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'mqtt', '~> 0.3', '>= 0.3'
4
4
  gem 'ansi', '~> 1.5', '>= 1.4'
5
- gem 'mongo','~> 2.0.0.rc', '>= 2.0.0.rc'
5
+ gem 'mongo','~> 2.0.1', '>= 2.0.1'
6
6
 
7
7
  group :development do
8
8
  gem 'shoulda', '~> 3', '>= 3'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.5
1
+ 0.4.6
@@ -12,6 +12,8 @@ module Nutella
12
12
  Nutella.resource_id = nil
13
13
  Nutella.mongo_host = broker_hostname
14
14
  Nutella.mqtt = SimpleMQTTClient.new broker_hostname
15
+ # Start pinging
16
+ Nutella.net.start_pinging
15
17
  # Fetch the `run_id`s list for this application and subscribe to its updates
16
18
  net.async_request('app_runs_list', lambda { |res| Nutella.app.app_runs_list = res })
17
19
  self.net.subscribe('app_runs_list', lambda {|message, _| Nutella.app.app_runs_list = message })
@@ -182,6 +182,8 @@ module Nutella
182
182
  Nutella::Net.subscriptions.push padded_channel
183
183
  Nutella::Net.callbacks.push mqtt_cb
184
184
  Nutella.mqtt.subscribe( padded_channel, mqtt_cb )
185
+ # Notify subscriptions bot
186
+ Nutella::Net.publish_to('subscriptions', {'channel' => padded_channel}, Nutella.app_id, nil)
185
187
  end
186
188
 
187
189
 
@@ -13,6 +13,8 @@ module Nutella
13
13
  @resource_id = nil
14
14
  @mongo_host = broker_hostname
15
15
  @mqtt = SimpleMQTTClient.new broker_hostname
16
+ # Start pinging
17
+ Nutella.net.start_pinging
16
18
  end
17
19
 
18
20
 
@@ -20,6 +22,7 @@ module Nutella
20
22
  def self.app_id; @app_id end
21
23
  def self.run_id; @run_id end
22
24
  def self.resource_id; @resource_id end
25
+ def self.ping_thread; @ping_thread end
23
26
  def self.component_id;
24
27
  raise 'Nutella has not been initialized: you need to call the proper init method before you can start using nutella' if @component_id.nil?
25
28
  @component_id
@@ -40,6 +43,7 @@ module Nutella
40
43
  def self.component_id=(val); @component_id=val; end
41
44
  def self.mongo_host=(val); @mongo_host=val; end
42
45
  def self.mqtt=(val); @mqtt=val; end
46
+ def self.ping_thread=(val); @ping_thread=val; end
43
47
 
44
48
 
45
49
  # Accessors for sub-modules
@@ -80,15 +80,18 @@ module Nutella
80
80
  end
81
81
 
82
82
 
83
- # Listens for incoming messages. All this function
84
- # does is to put the thread to sleep and wait for something to
85
- # happen over the network to wake up.
86
- def self.listen
87
- begin
88
- sleep
89
- rescue Interrupt
90
- # Simply returns once interrupted
83
+ # Sends a ping every 5 seconds to pings channel of
84
+ # the proper level
85
+ #
86
+ def self.start_pinging
87
+ Nutella.ping_thread = Thread.new do
88
+ loop do
89
+ publish_to('pings', 'ping', Nutella.app_id, Nutella.run_id)
90
+ sleep(5)
91
+ end
91
92
  end
93
+ Signal.trap('INT') { exit }
94
+ Nutella.ping_thread.join
92
95
  end
93
96
 
94
97
 
@@ -209,6 +212,8 @@ module Nutella
209
212
  @subscriptions.push padded_channel
210
213
  @callbacks.push mqtt_cb
211
214
  Nutella.mqtt.subscribe( padded_channel, mqtt_cb )
215
+ # Notify subscriptions bot
216
+ publish_to('subscriptions', {'channel' => padded_channel}, app_id, run_id)
212
217
  end
213
218
 
214
219
 
data/nutella_lib.gemspec CHANGED
@@ -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_lib 0.4.5 ruby lib
5
+ # stub: nutella_lib 0.4.6 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "nutella_lib"
9
- s.version = "0.4.5"
9
+ s.version = "0.4.6"
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"]
@@ -62,7 +62,7 @@ Gem::Specification.new do |s|
62
62
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
63
  s.add_runtime_dependency(%q<mqtt>, [">= 0.3", "~> 0.3"])
64
64
  s.add_runtime_dependency(%q<ansi>, [">= 1.4", "~> 1.5"])
65
- s.add_runtime_dependency(%q<mongo>, [">= 2.0.0.rc", "~> 2.0.0.rc"])
65
+ s.add_runtime_dependency(%q<mongo>, [">= 2.0.1", "~> 2.0.1"])
66
66
  s.add_development_dependency(%q<shoulda>, [">= 3", "~> 3"])
67
67
  s.add_development_dependency(%q<minitest>, [">= 5", "~> 5.4"])
68
68
  s.add_development_dependency(%q<yard>, [">= 0.8.7", "~> 0.8"])
@@ -73,7 +73,7 @@ Gem::Specification.new do |s|
73
73
  else
74
74
  s.add_dependency(%q<mqtt>, [">= 0.3", "~> 0.3"])
75
75
  s.add_dependency(%q<ansi>, [">= 1.4", "~> 1.5"])
76
- s.add_dependency(%q<mongo>, [">= 2.0.0.rc", "~> 2.0.0.rc"])
76
+ s.add_dependency(%q<mongo>, [">= 2.0.1", "~> 2.0.1"])
77
77
  s.add_dependency(%q<shoulda>, [">= 3", "~> 3"])
78
78
  s.add_dependency(%q<minitest>, [">= 5", "~> 5.4"])
79
79
  s.add_dependency(%q<yard>, [">= 0.8.7", "~> 0.8"])
@@ -85,7 +85,7 @@ Gem::Specification.new do |s|
85
85
  else
86
86
  s.add_dependency(%q<mqtt>, [">= 0.3", "~> 0.3"])
87
87
  s.add_dependency(%q<ansi>, [">= 1.4", "~> 1.5"])
88
- s.add_dependency(%q<mongo>, [">= 2.0.0.rc", "~> 2.0.0.rc"])
88
+ s.add_dependency(%q<mongo>, [">= 2.0.1", "~> 2.0.1"])
89
89
  s.add_dependency(%q<shoulda>, [">= 3", "~> 3"])
90
90
  s.add_dependency(%q<minitest>, [">= 5", "~> 5.4"])
91
91
  s.add_dependency(%q<yard>, [">= 0.8.7", "~> 0.8"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutella_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Gnoli
@@ -56,20 +56,20 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 2.0.0.rc
59
+ version: 2.0.1
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: 2.0.0.rc
62
+ version: 2.0.1
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 2.0.0.rc
69
+ version: 2.0.1
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: 2.0.0.rc
72
+ version: 2.0.1
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: shoulda
75
75
  requirement: !ruby/object:Gem::Requirement