xstreamly 0.5.0.pre

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.
Files changed (2) hide show
  1. data/lib/xstreamly.rb +75 -0
  2. metadata +82 -0
data/lib/xstreamly.rb ADDED
@@ -0,0 +1,75 @@
1
+ require 'json' #gem install json
2
+ require 'net/https' unless defined?(Net::HTTPS)
3
+ require 'net/http' unless defined?(Net::HTTP)
4
+
5
+ module XStreamly
6
+ class Client
7
+ def initialize(appKey,email,password)
8
+ @appKey = appKey
9
+ @email = email
10
+ @password = password
11
+ @http = Net::HTTP.new('x-stream.ly', 80)
12
+ @http.use_ssl = true
13
+
14
+ end
15
+
16
+ def send(channel, eventName, data)
17
+ req = Net::HTTP::Post.new(URI.encode('/apps/'+@appKey+'/channels/'+channel+'/events/'+eventName), initheader = {'Content-Type' =>'application/json'})
18
+ req.basic_auth @email, @password
19
+
20
+ req.body = data
21
+ response = @http.request(req)
22
+ case response.code.to_i
23
+ when 202
24
+ return true
25
+ else
26
+ raise RuntimeError, "Unknown error (status code #{response.code} ): #{response.body}"
27
+ end
28
+ end
29
+
30
+ def setCallback(channel,endPoint,secret,eventName)
31
+ req = Net::HTTP::Post.new(URI.encode('/apps/'+@appKey+'/subscriptions'), initheader = {'Content-Type' =>'application/json'})
32
+ req.basic_auth @email, @password
33
+
34
+ req.body = '{"channel":"'+channel+'","endpoint":"'+endPoint+'", "secret":"'+secret+'"}'
35
+ response = @http.request(req)
36
+ case response.code.to_i
37
+ when 200
38
+ return true
39
+ else
40
+ raise RuntimeError, "Unknown error (status code #{response.code} ): #{response.body}"
41
+ end
42
+
43
+ end
44
+
45
+ def removeCallback(index)
46
+ req = Net::HTTP::Delete.new(URI.encode('/apps/'+@appKey+'/subscriptions/'+index.to_s), initheader = {'Content-Type' =>'application/json'})
47
+ req.basic_auth @email, @password
48
+ response = @http.request(req)
49
+
50
+ case response.code.to_i
51
+ when 202
52
+ return true
53
+ else
54
+ raise RuntimeError, "Unknown error (status code #{response.code} ): #{response.body}"
55
+ end
56
+ end
57
+
58
+ def getCallbacks()
59
+ req = Net::HTTP::Get.new(URI.encode('/apps/'+@appKey+'/subscriptions'), initheader = {'Content-Type' =>'application/json'})
60
+ req.basic_auth @email, @password
61
+ response = @http.request(req)
62
+
63
+ case response.code.to_i
64
+ when 200
65
+ return JSON(response.body)
66
+ else
67
+ raise RuntimeError, "Unknown error (status code #{response.code} ): #{response.body}"
68
+ end
69
+ end
70
+
71
+ def setLocalCallback(channel,eventName)
72
+
73
+ end
74
+ end
75
+ end
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xstreamly
3
+ version: !ruby/object:Gem::Version
4
+ hash: 961916012
5
+ prerelease: 6
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 0
10
+ - pre
11
+ version: 0.5.0.pre
12
+ platform: ruby
13
+ authors:
14
+ - Brian Willard
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2011-11-01 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: json
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 1
32
+ - 6
33
+ version: "1.6"
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ description: Send X-Stream.ly messages and manage callbacks
37
+ email: bwillard@x-stream.ly
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - lib/xstreamly.rb
46
+ homepage: http://x-stream.ly
47
+ licenses: []
48
+
49
+ post_install_message:
50
+ rdoc_options: []
51
+
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">"
67
+ - !ruby/object:Gem::Version
68
+ hash: 25
69
+ segments:
70
+ - 1
71
+ - 3
72
+ - 1
73
+ version: 1.3.1
74
+ requirements: []
75
+
76
+ rubyforge_project:
77
+ rubygems_version: 1.7.2
78
+ signing_key:
79
+ specification_version: 3
80
+ summary: X-Stream.ly Client
81
+ test_files: []
82
+