peatio_client 0.0.1 → 0.0.2
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 +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:
|