volabit 0.0.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9a71b4413e6a7ac810053fed69ecf87a25b4fce
4
- data.tar.gz: 9005664fb9dce17445a91d8225dc1be9dfbc16e4
3
+ metadata.gz: 3a051bef9491dd7c9dd9e355908101508ecee078
4
+ data.tar.gz: 4fe851e275af21008e9366687ed9ae2e4d5dfc76
5
5
  SHA512:
6
- metadata.gz: 7bd51e4164682cb2c830f68b3e8476b7b002ae9ad5c22370ae9e7c9d9607103bab525a08f5b649d8d48532376889996b884977215f108d64d605e1e52fff300e
7
- data.tar.gz: e8243667a39375eda24d7000a832a8ac9541c9914526e111ab5d9de94820991c7543b2f70c66c75d3cd1bbe9beb5fc0eaf7cb47afcb8f43f25ca6b80036a877a
6
+ metadata.gz: b54d6f318b4bc0bb1988c8cf8042e2e94443734564dfe587fc65837a1c79a4211ed1b796bd8d53c8940cc55499efc9ff7aed915e08297822820d75ee442ac9e4
7
+ data.tar.gz: 09a5e247a2ac8ca02790d418a769376492d00124a519d8eed2cfb47d8e3e8cb10d4e7e1852e022776a41572af19814ff7e1bd33a035d9512b478e57f9ceeb413
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
+ [![Gem Version](https://badge.fury.io/rb/volabit.svg)](http://badge.fury.io/rb/volabit)
2
+
1
3
  # Volabit
2
4
 
3
- Volabit's API library. Integrate the Volabit services in your apps with ease.
5
+ Volabit's API Ruby library. Integrate the Volabit services in your apps with ease.
4
6
 
5
7
  You can see the available methods on the [project wiki][wiki]. Details of the API use can be found on the [official page][api-docs].
6
8
 
@@ -36,7 +38,7 @@ callback = 'The registered callback URL for your APP'
36
38
  volabit_client = Volabit::Client.new(app_id, secret, callback)
37
39
  ```
38
40
 
39
- Note that the by default the Volabit client uses the **production** environment. If you want to use the **test** environment, set the sandbox flag to `true` before requesting the authorization code.
41
+ Note that by default the Volabit client uses the **production** environment. If you want to use the **test** environment, set the sandbox flag to `true` before requesting the authorization code.
40
42
 
41
43
  ```ruby
42
44
  volabit_client.sandbox true
@@ -54,11 +56,16 @@ auth_url = volabit_client.authorize
54
56
  volabit_client.get_token 'The given authorization code.'
55
57
  ```
56
58
 
57
- 4) With these tokens, you'll be ready to call the services. The methods will return a response object. The contend can be retrieved with the `body` property and will be in the JSON format.
59
+ 4) If you already have a `token` and a `refresh_token` you can use:
60
+
61
+ ```ruby
62
+ volabit_client.use_token 'token', 'refresh_token'
63
+ ```
64
+
65
+ 5) You're ready to use our API. Just call any method listed [here][wiki].
58
66
 
59
67
  ```ruby
60
- response = volabit_client.tickers
61
- response.body
68
+ tickers = volabit_client.tickers
62
69
  # => {
63
70
  # "btc_usd_buy":"226.06",
64
71
  # "btc_usd_sell":"226.56",
@@ -10,18 +10,28 @@ module Volabit
10
10
 
11
11
  # Request a resource using the GET method.
12
12
  def get_resource(resource, params = nil)
13
+ raise no_token_error unless @token
13
14
  @token.refresh if @token.expired?
14
- @token.get(resource, params: params)
15
+ response = @token.get(resource, params: params)
16
+ JSON.parse response.body, :symbolize_names => true
15
17
  end
16
18
 
17
19
  def post_to_resource(resource, params)
20
+ raise no_token_error unless @token
18
21
  @token.refresh if @token.expired?
19
- @token.post(resource, params: params)
22
+ response = @token.post(resource, params: params)
23
+ JSON.parse response.body, :symbolize_names => true
20
24
  end
21
25
 
22
26
  def delete_resource(resource)
27
+ raise no_token_error unless @token
23
28
  @token.refresh if @token.expired?
24
- @token.delete(resource)
29
+ response = @token.delete(resource)
30
+ JSON.parse response.body, :symbolize_names => true
31
+ end
32
+
33
+ def no_token_error
34
+ 'Error: you have to run get_token or set_token before use this method.'
25
35
  end
26
36
  end
27
37
  end
@@ -27,6 +27,26 @@ module Volabit
27
27
  # access the API and the methods to renew itself.
28
28
  def get_token(auth_code)
29
29
  @token = @oauth_client.auth_code.get_token auth_code, redirect_uri: @url
30
+ {
31
+ :token => @token.token,
32
+ :refresh_token => @token.refresh_token,
33
+ :expires_in => @token.expires_in,
34
+ :expires_at => @token.expires_at,
35
+ :options => @token.options
36
+ }
37
+ end
38
+
39
+ def use_token(token, refresh_token)
40
+ token = OAuth2::AccessToken.new @oauth_client, token, { :refresh_token => refresh_token }
41
+ token_info = JSON.parse token.get('/oauth/token/info').body
42
+ expires_in = token_info['expires_in_seconds']
43
+ @token = OAuth2::AccessToken.new @oauth_client, token, {
44
+ :refresh_token => refresh_token,
45
+ :expires_in => expires_in,
46
+ :mode => :header,
47
+ :header_format => 'Bearer %s',
48
+ :param_name => 'access_token'
49
+ }
30
50
  end
31
51
 
32
52
  # Toggles the test environment with a boolean value.
@@ -1,3 +1,3 @@
1
1
  module Volabit
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: volabit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Volabit Team & Contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-06 00:00:00.000000000 Z
11
+ date: 2015-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
159
  version: '0'
160
160
  requirements: []
161
161
  rubyforge_project:
162
- rubygems_version: 2.4.5
162
+ rubygems_version: 2.2.2
163
163
  signing_key:
164
164
  specification_version: 4
165
165
  summary: Library for the Volabit API.