reactivehub_sdk 0.0.1
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 +7 -0
- data/lib/client_sdk.rb +17 -0
- data/lib/sdk.rb +34 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a63555bd3c571d584ae2f493b94ad115f29c053a57ad869ca6b97625e9d7180c
|
4
|
+
data.tar.gz: f121ec5218d3aca0d2e36c5c5f274a1d4f9c4e22c0298d5c551ad0e52a02c2d2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d80c0346fcc4149ee624beed961d7657db7c5ef5d7ff439e987ffa5af6d3121def751a98daea0271706c5a6f73e01db5a8bdaebc84d69ec577fbaf86c2f4d933
|
7
|
+
data.tar.gz: a55615612715a704d44a05798d26f72bdca72378c30abc609d4a1de24a5c4ee9d03a422afcc26b0fe49aafec762db4df4c522c9cc79d256e7e5e6597329b9acb
|
data/lib/client_sdk.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
class ClientSDK
|
2
|
+
attr_accessor :client_key, :client_secret, :team_name
|
3
|
+
|
4
|
+
def initialize(team_name, client_key, client_secret)
|
5
|
+
raise ArgumentError, 'Team Name is not valid' unless !team_name.empty?
|
6
|
+
raise ArgumentError, 'Client Key is not valid' unless !client_key.empty?
|
7
|
+
raise ArgumentError, 'Client Secret is not valid' unless !client_secret.empty?
|
8
|
+
|
9
|
+
@team_name = team_name
|
10
|
+
@client_key = client_key
|
11
|
+
@client_secret = client_secret
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_s
|
15
|
+
"{ team_name: #{@team_name}, client_key: #{@client_key}, client_secret: #{@client_secret} }"
|
16
|
+
end
|
17
|
+
end
|
data/lib/sdk.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'eventmachine'
|
2
|
+
require 'em-http'
|
3
|
+
require 'fiber'
|
4
|
+
require './client_sdk'
|
5
|
+
|
6
|
+
def async_post(url, payload)
|
7
|
+
f = Fiber.current
|
8
|
+
http = EventMachine::HttpRequest.new(url).post :body => payload
|
9
|
+
http.callback { f.resume(http) }
|
10
|
+
http.errback { f.resume(http) }
|
11
|
+
|
12
|
+
return Fiber.yield
|
13
|
+
end
|
14
|
+
|
15
|
+
module ReactivehubSDK
|
16
|
+
def build_client(team_name, client_key, client_secret)
|
17
|
+
ClientSDK.new(team_name, client_key, client_secret)
|
18
|
+
end
|
19
|
+
|
20
|
+
def publish_event(client, event_name, payload)
|
21
|
+
url = "https://#{client.team_name}.reactivehub.io/#{event_name}"
|
22
|
+
|
23
|
+
EventMachine.run do
|
24
|
+
Fiber.new{
|
25
|
+
puts "Send HTTP request to POST: #{url}"
|
26
|
+
data = async_post(url, payload)
|
27
|
+
|
28
|
+
EventMachine.stop
|
29
|
+
}.resume
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
module_function :build_client, :send_event
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: reactivehub_sdk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- reactivehub.io
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-10-28 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description:
|
14
|
+
email:
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/client_sdk.rb
|
20
|
+
- lib/sdk.rb
|
21
|
+
homepage:
|
22
|
+
licenses: []
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.7.8
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: reactivehub_sdk is the reactivebub SDK
|
44
|
+
test_files: []
|