spacebunny 1.2.2 → 1.3.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: 892d8bf97ea06186b2d57513dbbd19af079af1a5
4
- data.tar.gz: 5588c10bc31b8506431961d45d9667754bb71edf
3
+ metadata.gz: '08d9ef7ec38cfdd4d17a454f00e39241c0b666f8'
4
+ data.tar.gz: 1b2a133fe1db7f8755129e2e71585041c5e9f260
5
5
  SHA512:
6
- metadata.gz: 36bd68143b81a475e91044c1e86fa29c986bbb8ad0059c971fe9f45584127f6cd160fb9a85b91cc27c537b9a6202316c28bc7f4c3f1e48116d846eff3dedbadb
7
- data.tar.gz: f71344d65f2e367a80b5992ebc60e3c10847137e746c1abf3cededdbd521f1cb28c39cbd0653dad77f1fa7a2ef206bdb8d21089732f9eb0ceb7f3b0560eec50b
6
+ metadata.gz: 4a5e0f306b81bdba7c1a92ae1e61330d8b28a8d73c0b71d99a45f4fe5a61d220d7d5f4d9c856bf8e9a494c38bb3d786a340069d2d7b685b6af309c7234791ef7
7
+ data.tar.gz: f3ae1e2148684817bd84c73e9e60fd8b9d3893fffccd5c50d0087cfcef13610beb93072bdd1eb77fd34139da49efd8075d2d2df0a8cfde5d275ca42e88075377
data/README.md CHANGED
@@ -12,7 +12,7 @@ monitor live streams and remotely control your devices. Easy to use, and ready t
12
12
  This is the source code repository for Ruby SDK.
13
13
  Please feel free to contribute!
14
14
 
15
- ### Installation
15
+ ## Installation
16
16
 
17
17
  Add this line to your application's Gemfile:
18
18
 
@@ -34,7 +34,7 @@ and a super rapid setup.
34
34
 
35
35
  This SDK provides Device and LiveStream clients and currently supports the AMQP protocol.
36
36
 
37
- ### Device - Basic usage
37
+ ## Device - Basic usage
38
38
 
39
39
  Pick a device, view its configurations and copy the Device Key. Instantiate a new `Spacebunny::Device` client,
40
40
  providing the Device Key:
@@ -50,7 +50,7 @@ connection configurations and required parameters. Nothing remains but to connec
50
50
  dev.connect
51
51
  ```
52
52
 
53
- ##### Publish
53
+ ### Publish
54
54
 
55
55
  Ok, all set up! Let's publish some message:
56
56
 
@@ -86,7 +86,7 @@ You'll see the graph of the `temp` parameter being rendered. If you want to plot
86
86
  just use a comma as separator e.g: temp, pressure, voltage
87
87
  On the **Messages** tab you'll see raw messages' payloads received on this channel.
88
88
 
89
- ##### Inbox
89
+ ### Inbox
90
90
 
91
91
  Waiting for and reading messages from the device's Inbox is trivial:
92
92
 
@@ -102,7 +102,7 @@ end
102
102
  for instance:
103
103
 
104
104
  ```ruby
105
- dev.inbox(block: true, ack: :manual) do |message|
105
+ dev.inbox(wait: true, ack: :manual) do |message|
106
106
  puts "Received: #{message.payload}"
107
107
  # Manually ack the message
108
108
  message.ack
@@ -110,7 +110,7 @@ end
110
110
  ```
111
111
  This permits to handle errors or other critical situations
112
112
 
113
- ### Live Stream - Basic usage
113
+ ## Live Stream - Basic usage
114
114
 
115
115
  For accessing a Live Stream a Live Stream Key's is required. On SpaceBunny's Web UI, go to the Streams section,
116
116
  click on "Live Stream Keys" and pick or create one.
@@ -126,7 +126,7 @@ endpoint, retrieving the connection configurations and required parameters. Noth
126
126
  live.connect
127
127
  ```
128
128
 
129
- ##### Reading live messages
129
+ ### Reading live messages
130
130
 
131
131
  Each LiveStream has its own cache that will keep always last 100 messages (FIFO, when there are more than 100 messages,
132
132
  the oldest ones get discarded). If you want to consume messages in a parallel way, you shoul use the cache and connect
@@ -153,7 +153,7 @@ end
153
153
 
154
154
  Every client subscribed to the LiveStream in this way will receive a copy of the message.
155
155
 
156
- ### TLS
156
+ ## TLS
157
157
 
158
158
  Instantiating a TLS-secured connection is trivial:
159
159
 
@@ -40,12 +40,19 @@ module Spacebunny
40
40
  @api_endpoint = options.deep_symbolize_keys
41
41
  end
42
42
 
43
+ # Retrieve configs from APIs endpoint
44
+ def auto_configs(force_reload = false)
45
+ if force_reload || !@auto_configs
46
+ @auto_configs = EndpointConnection.new(@api_endpoint.merge(key: @key, logger: logger)).configs
47
+ end
48
+ @auto_configs
49
+ end
50
+
43
51
  def connection_configs
44
52
  return @connection_configs if @connection_configs
45
53
  if auto_configure?
46
54
  # If key is specified, retrieve configs from APIs endpoint
47
- @auto_configs = EndpointConnection.new(@api_endpoint.merge(key: @key, logger: logger)).configs
48
- normalize_and_add_channels @auto_configs[:channels]
55
+ normalize_and_add_channels auto_configs[:channels]
49
56
  @auto_connection_configs = normalize_auto_connection_configs
50
57
  end
51
58
  # Build final connection_configs
@@ -220,13 +227,13 @@ module Spacebunny
220
227
  # Translate from auto configs given by APIs endpoint to a common format
221
228
  def normalize_auto_connection_configs
222
229
  {
223
- host: @auto_configs[:connection][:host],
224
- port: @auto_configs[:connection][:protocols][@protocol][:port],
225
- tls_port: @auto_configs[:connection][:protocols][@protocol][:tls_port],
226
- vhost: @auto_configs[:connection][:vhost],
227
- device_id: @auto_configs[:connection][:device_id],
228
- device_name: @auto_configs[:connection][:device_name],
229
- secret: @auto_configs[:connection][:secret]
230
+ host: auto_configs[:connection][:host],
231
+ port: auto_configs[:connection][:protocols][@protocol][:port],
232
+ tls_port: auto_configs[:connection][:protocols][@protocol][:tls_port],
233
+ vhost: auto_configs[:connection][:vhost],
234
+ device_id: auto_configs[:connection][:device_id],
235
+ device_name: auto_configs[:connection][:device_name],
236
+ secret: auto_configs[:connection][:secret]
230
237
  }
231
238
  end
232
239
 
@@ -40,15 +40,21 @@ module Spacebunny
40
40
  @api_endpoint = options.deep_symbolize_keys
41
41
  end
42
42
 
43
+ # Retrieve configs from APIs endpoint
44
+ def auto_configs(force_reload = false)
45
+ if force_reload || !@auto_configs
46
+ @auto_configs = EndpointConnection.new(
47
+ @api_endpoint.merge(client: @client, secret: @secret, logger: logger)
48
+ ).configs
49
+ end
50
+ @auto_configs
51
+ end
52
+
43
53
  def connection_configs
44
54
  return @connection_configs if @connection_configs
45
55
  if auto_configure?
46
56
  # If key is specified, retrieve configs from APIs endpoint
47
- @auto_configs = EndpointConnection.new(@api_endpoint.merge(
48
- client: @client,
49
- secret: @secret,
50
- logger: logger)).configs
51
- check_and_add_live_streams @auto_configs[:live_streams]
57
+ check_and_add_live_streams auto_configs[:live_streams]
52
58
  @auto_connection_configs = normalize_auto_connection_configs
53
59
  end
54
60
  # Build final connection_configs
@@ -185,12 +191,12 @@ module Spacebunny
185
191
  # Translate from auto configs given by APIs endpoint to a common format
186
192
  def normalize_auto_connection_configs
187
193
  {
188
- host: @auto_configs[:connection][:host],
189
- port: @auto_configs[:connection][:protocols][@protocol][:port],
190
- tls_port: @auto_configs[:connection][:protocols][@protocol][:tls_port],
191
- vhost: @auto_configs[:connection][:vhost],
192
- client: @auto_configs[:connection][:client],
193
- secret: @auto_configs[:connection][:secret]
194
+ host: auto_configs[:connection][:host],
195
+ port: auto_configs[:connection][:protocols][@protocol][:port],
196
+ tls_port: auto_configs[:connection][:protocols][@protocol][:tls_port],
197
+ vhost: auto_configs[:connection][:vhost],
198
+ client: auto_configs[:connection][:client],
199
+ secret: auto_configs[:connection][:secret]
194
200
  }
195
201
  end
196
202
 
@@ -1,3 +1,3 @@
1
1
  module Spacebunny
2
- VERSION = '1.2.2'
2
+ VERSION = '1.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spacebunny
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Verlato
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-30 00:00:00.000000000 Z
11
+ date: 2017-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  version: '0'
152
152
  requirements: []
153
153
  rubyforge_project:
154
- rubygems_version: 2.6.8
154
+ rubygems_version: 2.6.12
155
155
  signing_key:
156
156
  specification_version: 4
157
157
  summary: Space Bunny platform SDK