cryptomarket-sdk 1.0.0
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/LICENSE.md +201 -0
- data/README.md +177 -0
- data/lib/cryptomarket/HttpManager.rb +71 -0
- data/lib/cryptomarket/client.rb +732 -0
- data/lib/cryptomarket/exceptions.rb +24 -0
- data/lib/cryptomarket/utils.rb +57 -0
- data/lib/cryptomarket/websocket/accountClient.rb +110 -0
- data/lib/cryptomarket/websocket/authClient.rb +53 -0
- data/lib/cryptomarket/websocket/callbackCache.rb +51 -0
- data/lib/cryptomarket/websocket/methods.rb +56 -0
- data/lib/cryptomarket/websocket/orderbookCache.rb +123 -0
- data/lib/cryptomarket/websocket/publicClient.rb +239 -0
- data/lib/cryptomarket/websocket/tradingClient.rb +123 -0
- data/lib/cryptomarket/websocket/wsClientBase.rb +157 -0
- data/lib/cryptomarket/websocket/wsManager.rb +59 -0
- metadata +91 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'faye/websocket'
|
3
|
+
require 'eventmachine'
|
4
|
+
|
5
|
+
require_relative '../exceptions'
|
6
|
+
|
7
|
+
module Cryptomarket
|
8
|
+
module Websocket
|
9
|
+
class WSManager
|
10
|
+
def initialize(handler, url:)
|
11
|
+
@url = url
|
12
|
+
@handler = handler
|
13
|
+
@connected = false
|
14
|
+
end
|
15
|
+
|
16
|
+
def connected?
|
17
|
+
return @connected
|
18
|
+
end
|
19
|
+
|
20
|
+
def connect()
|
21
|
+
@thread = Thread.new do
|
22
|
+
EM.run {
|
23
|
+
@ws = Faye::WebSocket::Client.new(@url)
|
24
|
+
|
25
|
+
@ws.onopen = lambda do |event|
|
26
|
+
@connected = true
|
27
|
+
@handler.on_open()
|
28
|
+
end
|
29
|
+
|
30
|
+
@ws.onclose = lambda do |close|
|
31
|
+
@handler.onclose()
|
32
|
+
EM.stop
|
33
|
+
end
|
34
|
+
|
35
|
+
@ws.onerror = lambda do |error|
|
36
|
+
@handler.onerror(error)
|
37
|
+
end
|
38
|
+
|
39
|
+
@ws.onmessage = lambda do |message|
|
40
|
+
@handler.handle(JSON.parse(message.data.to_s))
|
41
|
+
end
|
42
|
+
}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def close
|
47
|
+
@ws.close
|
48
|
+
@connected = false
|
49
|
+
end
|
50
|
+
|
51
|
+
def send hash
|
52
|
+
if not @connected
|
53
|
+
raise Cryptomarket::SDKException.new, "connection closed"
|
54
|
+
end
|
55
|
+
@ws.send hash.to_json
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cryptomarket-sdk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- T. Ismael Verdugo
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-06-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faye-websocket
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.11.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.11.0
|
41
|
+
description: Cryptomarket sdk for rest connection and websocket connection for the
|
42
|
+
ruby language
|
43
|
+
email:
|
44
|
+
- ismael@dysopsis.com
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files:
|
48
|
+
- README.md
|
49
|
+
files:
|
50
|
+
- LICENSE.md
|
51
|
+
- README.md
|
52
|
+
- lib/cryptomarket/HttpManager.rb
|
53
|
+
- lib/cryptomarket/client.rb
|
54
|
+
- lib/cryptomarket/exceptions.rb
|
55
|
+
- lib/cryptomarket/utils.rb
|
56
|
+
- lib/cryptomarket/websocket/accountClient.rb
|
57
|
+
- lib/cryptomarket/websocket/authClient.rb
|
58
|
+
- lib/cryptomarket/websocket/callbackCache.rb
|
59
|
+
- lib/cryptomarket/websocket/methods.rb
|
60
|
+
- lib/cryptomarket/websocket/orderbookCache.rb
|
61
|
+
- lib/cryptomarket/websocket/publicClient.rb
|
62
|
+
- lib/cryptomarket/websocket/tradingClient.rb
|
63
|
+
- lib/cryptomarket/websocket/wsClientBase.rb
|
64
|
+
- lib/cryptomarket/websocket/wsManager.rb
|
65
|
+
homepage: https://github.com/cryptomkt/cryptomkt-ruby
|
66
|
+
licenses: []
|
67
|
+
metadata: {}
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options:
|
70
|
+
- "--main"
|
71
|
+
- README.md
|
72
|
+
- "--markup"
|
73
|
+
- markdown
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
requirements: []
|
87
|
+
rubygems_version: 3.1.2
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: Cryptomarket sdk for ruby
|
91
|
+
test_files: []
|