peatio_client 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.markdown +14 -1
- data/lib/peatio_api/auth.rb +5 -0
- data/lib/peatio_api/client.rb +1 -5
- data/lib/peatio_api/client/version.rb +1 -1
- data/lib/peatio_api/streaming_client.rb +50 -0
- data/lib/peatio_client.rb +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98c2291071d88410d4cd20b5259fc61f4c7b7b16
|
4
|
+
data.tar.gz: ad9a146bd8bc4692236a79804bb8690c1a9fbd35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94b49dc941ab5de47c65140c55152a5779fc0b3f25e76c8e5f5281085119164f0d37afc6eddedc33572f5b8099fa67e76db30743c4f4e81049b628354da07ae3
|
7
|
+
data.tar.gz: 14098e0252d281539a9f090679fc625396f6203f5fa88899090aa443c76c0a35e43a9bb37c50ce95c2b986a6ea3ac6f82dc386d9f841a963ca12a065fad8df67
|
data/README.markdown
CHANGED
@@ -20,7 +20,7 @@ Ruby client for Peatio API
|
|
20
20
|
|
21
21
|
TBD
|
22
22
|
|
23
|
-
####
|
23
|
+
#### REST API client ####
|
24
24
|
|
25
25
|
Use `#get` or `#post` to access API after you created a `PeatioAPI::Client`:
|
26
26
|
|
@@ -45,6 +45,19 @@ Use `#get` or `#post` to access API after you created a `PeatioAPI::Client`:
|
|
45
45
|
|
46
46
|
Check [Peatio API v2 Documents](https://peatio.com/documents/api_v2) for details on Peatio API.
|
47
47
|
|
48
|
+
### Streaming API client ###
|
49
|
+
|
50
|
+
Streaming API client is built upon eventmachine, it will start an endless loop to accept updates from server side, you only need to provide a callback block:
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
require 'peatio_client'
|
54
|
+
|
55
|
+
client = PeatioAPI::StreamingClient.new access_key: 'your_access_key', secret_key: 'your_secret_key', endpoint: 'wss://peatio.com:8080'
|
56
|
+
client.run do |message|
|
57
|
+
# do whatever you want with message
|
58
|
+
end
|
59
|
+
```
|
60
|
+
|
48
61
|
### License ###
|
49
62
|
|
50
63
|
`peatio-client-ruby` is released under MIT license. See [http://peatio.mit-license.org](http://peatio.mit-license.org) for more information.
|
data/lib/peatio_api/auth.rb
CHANGED
@@ -6,6 +6,11 @@ module PeatioAPI
|
|
6
6
|
@secret_key = secret_key
|
7
7
|
end
|
8
8
|
|
9
|
+
def signed_challenge(challenge)
|
10
|
+
signature = OpenSSL::HMAC.hexdigest 'SHA256', @secret_key, "#{@access_key}#{challenge}"
|
11
|
+
{auth: {access_key: @access_key, answer: signature}}
|
12
|
+
end
|
13
|
+
|
9
14
|
def signed_params(verb, path, params={})
|
10
15
|
params = format_params params
|
11
16
|
signature = sign verb, path, URI.unescape(params.to_query)
|
data/lib/peatio_api/client.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'websocket-eventmachine-client'
|
4
|
+
|
5
|
+
module PeatioAPI
|
6
|
+
class StreamingClient < Client
|
7
|
+
|
8
|
+
def initialize(options={})
|
9
|
+
super
|
10
|
+
@endpoint = options[:endpoint] || 'wss://peatio.com:8080'
|
11
|
+
@logger = options[:logger] || Logger.new(STDOUT)
|
12
|
+
end
|
13
|
+
|
14
|
+
def run(&callback)
|
15
|
+
EM.run do
|
16
|
+
ws = WebSocket::EventMachine::Client.connect(uri: @endpoint)
|
17
|
+
|
18
|
+
ws.onopen do
|
19
|
+
@logger.info "Connected."
|
20
|
+
end
|
21
|
+
|
22
|
+
ws.onmessage do |payload, type|
|
23
|
+
msg = JSON.parse(payload)
|
24
|
+
|
25
|
+
key = msg.keys.first
|
26
|
+
data = msg[key]
|
27
|
+
case key
|
28
|
+
when 'challenge'
|
29
|
+
ws.send JSON.dump(@auth.signed_challenge(data))
|
30
|
+
else
|
31
|
+
begin
|
32
|
+
callback.call msg
|
33
|
+
rescue
|
34
|
+
@logger.error "Failed to process message: #{payload}"
|
35
|
+
@logger.error $!
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
ws.onclose do
|
41
|
+
@logger.info "Closed."
|
42
|
+
EM.stop
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
data/lib/peatio_client.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: peatio_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peatio Opensource
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: websocket-eventmachine-client
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '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'
|
27
41
|
description: A ruby client which can access all Peatio's API.
|
28
42
|
email:
|
29
43
|
- community@peatio.com
|
@@ -36,6 +50,7 @@ files:
|
|
36
50
|
- lib/peatio_api/client.rb
|
37
51
|
- lib/peatio_api/client/version.rb
|
38
52
|
- lib/peatio_api/config.rb
|
53
|
+
- lib/peatio_api/streaming_client.rb
|
39
54
|
- lib/peatio_client.rb
|
40
55
|
homepage: https://github.com/peatio/peatio-client-ruby
|
41
56
|
licenses:
|