xstreamly 0.5.0.pre

Sign up to get free protection for your applications and to get access to all the features.
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
+