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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/client_sdk.rb +17 -0
  3. data/lib/sdk.rb +34 -0
  4. 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: []