beebotte 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.md +21 -0
- data/README.md +47 -4
- data/beebotte.gemspec +1 -1
- data/lib/beebotte.rb +6 -4
- data/lib/beebotte/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd37c393fe2779c46d062e6d63e5857aef14b607
|
4
|
+
data.tar.gz: 5042564e8a7228df947b303bfe34665d884c4b20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee1382b295f31a6440f925e2b2153c17212e29c76d03cba9d594f92c3cdadb7553c6dc5dd831c77e7d77612e3cbe44b414050ad73b70a1f65000cd405ff0e912
|
7
|
+
data.tar.gz: 6c0de50a52d1ba9764f91267366b07c1c98861edebdb177055134faef10317f95578ea2dde89173abc276ec288d5becba00329b71507ab76c35464f16149d312
|
data/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2009-2013 Michael S. Kazmier
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -2,10 +2,34 @@ Beebotte ruby gem
|
|
2
2
|
=================
|
3
3
|
|
4
4
|
|
5
|
-
THIS IS ALPHA SOFTWARE - USE AT YOUR OWN PERIL
|
5
|
+
**THIS IS ALPHA SOFTWARE - USE AT YOUR OWN PERIL**
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
Basic Usage
|
9
|
+
-----------
|
10
|
+
|
11
|
+
Install the gem: `gem install beebotte`
|
12
|
+
|
13
|
+
In your ruby code:
|
14
|
+
```
|
15
|
+
require 'beebotte'
|
16
|
+
```
|
17
|
+
|
18
|
+
|
19
|
+
There are two main classes: `Connector` and `Stream`. The Connector class
|
20
|
+
implements the REST API and the Stream class implements the MQTT connection
|
21
|
+
to Beebotte.
|
22
|
+
|
23
|
+
Please see the Beebotte document here: https://beebotte.com/overview for
|
24
|
+
more details on their implmentation.
|
25
|
+
|
26
|
+
**Currently the Connector class only works with API and Secret key, Token
|
27
|
+
authentication is not yet supported.**
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
Full api examples:
|
32
|
+
------------------------
|
9
33
|
```
|
10
34
|
b = Beebotte::Connector.new("<yourApiKey>", "<yourSecretKey>", 'api.beebotte.com', 443)
|
11
35
|
|
@@ -50,6 +74,21 @@ b.get_resources(resource_name) {|r, code| puts "(#{code}) #{r.inspect}"}
|
|
50
74
|
puts "\n\n---------\ndel_channel:"
|
51
75
|
b.del_channel(channel_name) {|r, code| puts "(#{code}) #{r.inspect}"}
|
52
76
|
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
s = Beebotte::Stream.new({token: "yourChannelToken"})
|
81
|
+
s.connect()
|
82
|
+
|
83
|
+
s.subscribe("#{channel_name}/#{resource_name}")
|
84
|
+
|
85
|
+
s.publish(channel_name, resource_name, {status: 456})
|
86
|
+
|
87
|
+
s.write(channel_name, resource_name, {status: 789})
|
88
|
+
|
89
|
+
s.get { |topic, message| puts "\n\nTopic: #{topic}\nMessage: #{message}" }
|
90
|
+
|
91
|
+
|
53
92
|
```
|
54
93
|
|
55
94
|
TODO:
|
@@ -58,4 +97,8 @@ TODO:
|
|
58
97
|
1. Testing
|
59
98
|
1. Token authentication for REST API
|
60
99
|
1. Bulk API
|
61
|
-
|
100
|
+
|
101
|
+
License
|
102
|
+
-------
|
103
|
+
|
104
|
+
The Beebotte ruby gem is licensed under the terms of the MIT license. See the file LICENSE for details.
|
data/beebotte.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_runtime_dependency 'openssl'
|
24
24
|
spec.add_runtime_dependency 'json'
|
25
|
-
spec.add_runtime_dependency 'rest-client', '>=
|
25
|
+
spec.add_runtime_dependency 'rest-client', '>= 1.8.0'
|
26
26
|
spec.add_runtime_dependency 'classy_hash'
|
27
27
|
spec.add_runtime_dependency 'mqtt'
|
28
28
|
spec.add_development_dependency "rspec"
|
data/lib/beebotte.rb
CHANGED
@@ -264,20 +264,19 @@ module Beebotte
|
|
264
264
|
|
265
265
|
class Stream
|
266
266
|
attr_accessor :token, :host, :port, :ssl
|
267
|
-
attr_reader :
|
267
|
+
attr_reader :subscriptions
|
268
268
|
|
269
269
|
class NotConnected < StandardError; end
|
270
270
|
class NoSubscriptions < StandardError; end
|
271
271
|
|
272
272
|
def initialize(opts = {})
|
273
273
|
@token = opts[:token]
|
274
|
-
@apiKey = opts[:api_key]
|
275
274
|
@secretKey = opts[:secret_key]
|
276
|
-
raise ArguementError, 'Must set token OR
|
275
|
+
raise ArguementError, 'Must set token OR secret_key in opts' if (@token.nil? && @secretKey.nil?)
|
277
276
|
@host = opts[:host] || "mqtt.beebotte.com"
|
278
277
|
@port = opts[:port] || 1883
|
279
278
|
@ssl = opts[:ssl] || false
|
280
|
-
@
|
279
|
+
@subscriptions = []
|
281
280
|
@client = MQTT::Client.new
|
282
281
|
end
|
283
282
|
|
@@ -290,6 +289,8 @@ module Beebotte
|
|
290
289
|
@subscriptions = []
|
291
290
|
if @token
|
292
291
|
@client.username = "token:#{@token}"
|
292
|
+
else
|
293
|
+
@client.username = @secretKey
|
293
294
|
end
|
294
295
|
@client.connect()
|
295
296
|
@client.connected?
|
@@ -298,6 +299,7 @@ module Beebotte
|
|
298
299
|
def disconnect
|
299
300
|
@subscriptions = []
|
300
301
|
@client.disconnect()
|
302
|
+
true
|
301
303
|
end
|
302
304
|
|
303
305
|
def connected?
|
data/lib/beebotte/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beebotte
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Kazmier
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.8.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.8.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: classy_hash
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -202,6 +202,7 @@ files:
|
|
202
202
|
- ".gitignore"
|
203
203
|
- Gemfile
|
204
204
|
- Guardfile
|
205
|
+
- LICENSE.md
|
205
206
|
- README.md
|
206
207
|
- Rakefile
|
207
208
|
- beebotte.gemspec
|