btc_ticker 1.0.2 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6a20c3fcc960db06c648f3d6f21942aa0e5f415
4
- data.tar.gz: c04f9ec250bcfb054cd64917b8c71e99fda1d317
3
+ metadata.gz: 38749fbb568ae9dc661c98edde94052368f4c356
4
+ data.tar.gz: 479a502190503cd9f2717fc77cdc8912b744ab38
5
5
  SHA512:
6
- metadata.gz: ce4f9e97c90f39952622b59a09dfffddfe34506bebb6c40ec996d978dbed60a73a59fa214fc464bd64c197b93b47ee6172416e5a8b82095f3a79673713e9e8f4
7
- data.tar.gz: 104a4a426cbbdbecb8bc2bcb5de2290f4b07e86692acfd594fadc802a21656958a99a2596085fd6f57eb6192cc0d2133f27c86c4affee1a862ecd1edf9d23239
6
+ metadata.gz: f3ec692574c504ee7f7f20f704a205ca815f786e8a913f7fe0b614ca33faf0c114fc2a7323caeb3c41d19621433eb0eaee989a63f794565ab3e84e5af91dd208
7
+ data.tar.gz: 0aa9287ca28b458901cc731d00c1b01d6d630b5f86bdde4b781fd1249a36d75e56b1f9e719b427a454a041e6f29353ecb9ca0dc1ba80f2bfb3f3921c9ae8eb8f
data/.gitignore CHANGED
@@ -10,3 +10,13 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+
14
+ # Ignore SublimeText files
15
+ /*.sublime-project
16
+ /*.sublime-workspace
17
+
18
+ # Ignore Coveralls config file (it should be kept secret)
19
+ /.coveralls.yml
20
+
21
+ # Ignore built gems
22
+ /*.gem
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
3
4
  - 2.4.0
4
- before_install: gem install bundler
5
+ before_install: gem update bundler
@@ -1,5 +1,6 @@
1
1
  ## Changelog
2
2
 
3
+ * 1.1.0: Replace httparty with rest-client and refactor Bitstamp module. Improve HTTP error handling code.
3
4
  * 1.0.2: Refactor the modules and specs
4
5
  * 1.0.1: Add Coveralls support
5
6
  * 1.0.0: Initial release (Working gem)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # BTCTicker v1.0.2
1
+ # BTCTicker
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/btc_ticker.svg)](https://badge.fury.io/rb/btc_ticker)
4
4
  [![Build Status](https://travis-ci.org/ironbyte/btc_ticker.svg?branch=master)](https://travis-ci.org/ironbyte/btc_ticker)
@@ -7,20 +7,6 @@
7
7
 
8
8
  A Ruby wrapper for the Bitstamp Ticker API.
9
9
 
10
- #### Bitstamp Ticker API response
11
- Attribute | Description
12
- ------------|----------------------------------------------------
13
- last | Last BTC price.
14
- high | Last 24 hours price high.
15
- low | Last 24 hours price low.
16
- vwap | Last 24 hours volume weighted average price.
17
- volume | Last 24 hours volume.
18
- bid | Highest buy order.
19
- ask | Lowest sell order.
20
- timestamp | Unix timestamp date and time.
21
- open | First price of the day.
22
- ----------------------------------------------------------------
23
-
24
10
  ## Installation
25
11
 
26
12
  Add this line to your application's Gemfile:
@@ -50,8 +36,21 @@ p ticker.keys #=> ["high", "last", "timestamp", "bid", "vwap", "volume", "low",
50
36
 
51
37
  current_btc_usd_price = ticker["last"]
52
38
  ```
39
+ #### Bitstamp Ticker API response
40
+
41
+ Attribute | Description
42
+ ------------|----------------------------------------------------
43
+ last | Last BTC price.
44
+ high | Last 24 hours price high.
45
+ low | Last 24 hours price low.
46
+ vwap | Last 24 hours volume weighted average price.
47
+ volume | Last 24 hours volume.
48
+ bid | Highest buy order.
49
+ ask | Lowest sell order.
50
+ timestamp | Unix timestamp date and time.
51
+ open | First price of the day.
52
+ ----------------------------------------------------------------
53
53
 
54
54
  ## License
55
55
 
56
56
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
57
-
@@ -9,21 +9,22 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["ironbyte"]
10
10
  spec.email = ["illusivespectre@gmail.com"]
11
11
 
12
- spec.summary = %q{BTCTicker v1.0.2}
13
- spec.description = %q{A Ruby wrapper for the Bitstamp Ticker API}
12
+ spec.summary = %q{A Ruby wrapper for the Bitstamp Ticker API}
13
+ spec.description = spec.summary
14
14
  spec.homepage = "https://github.com/ironbyte/btc_ticker"
15
15
  spec.license = "MIT"
16
16
 
17
+ spec.required_ruby_version = '>= 2.0.0'
18
+
17
19
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
20
  f.match(%r{^(test|spec|features)/})
19
21
  end
20
22
  spec.executables = ["console"]
21
23
  spec.require_paths = ["lib"]
22
24
 
23
- spec.add_development_dependency "bundler", "~> 1.14"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.0"
26
- spec.add_development_dependency "webmock", "~> 2.3"
25
+ spec.add_runtime_dependency "rest-client", '~> 2.0'
27
26
 
28
- spec.add_runtime_dependency "httparty", "~> 0.14.0"
27
+ spec.add_development_dependency "rake", "~> 12.0"
28
+ spec.add_development_dependency "rspec", "~> 3.0"
29
+ spec.add_development_dependency "webmock", "~> 3.0"
29
30
  end
@@ -1,5 +1,7 @@
1
1
  require 'btc_ticker/bitstamp'
2
2
  require 'btc_ticker/version'
3
+ require 'btc_ticker/errors'
4
+ require 'btc_ticker/http_client'
3
5
 
4
6
  module BTCTicker
5
7
  end
@@ -1,31 +1,26 @@
1
- require 'httparty'
1
+ require 'json'
2
2
 
3
3
  module BTCTicker
4
4
  module Bitstamp
5
- class Ticker
6
- include HTTParty
7
-
8
- base_uri 'https://www.bitstamp.net/api'
9
- headers({"User-Agent"=>'BTCTicker-Ruby'})
5
+ APIBASE = 'https://www.bitstamp.net/api/v2'
10
6
 
7
+ class Ticker
11
8
  def self.get_info(pair)
12
9
  case pair
13
10
  when :btc_usd
14
- get_http_response('/v2/ticker/btcusd/')
11
+ json_response(pair)
15
12
  when :btc_eur
16
- get_http_response('/v2/ticker/btceur/')
13
+ json_response(pair)
17
14
  else
18
- raise ArgumentError, "Invalid pair. Please specify either :btc_usd or :btc_eur"
15
+ raise ArgumentError, "Please specify either :btc_usd or :btc_eur"
19
16
  end
20
17
  end
21
18
 
22
19
  private
23
-
24
- def self.get_http_response(uri)
25
- response = get(uri)
26
- raise HTTPError, 'response.code.to_s' unless response.code == 200
27
- response
20
+ def self.json_response(pair)
21
+ p = pair.id2name.gsub('_', '')
22
+ JSON.parse(HTTPClient.get_http_response("#{APIBASE}/ticker/#{p}/").body)
28
23
  end
29
24
  end
30
25
  end
31
- end
26
+ end
@@ -0,0 +1,6 @@
1
+ module BTCTicker
2
+ module Errors
3
+ class HTTPError < StandardError
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ require 'rest-client'
2
+
3
+ module BTCTicker
4
+ class HTTPClient
5
+ def self.get_http_response(uri)
6
+ begin
7
+ response = RestClient.get(uri, :user_agent => 'ruby-btc_ticker')
8
+ rescue RestClient::ExceptionWithResponse => err
9
+ raise Errors::HTTPError, "#{err.http_code}"
10
+ else
11
+ response
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module BTCTicker
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.1"
3
3
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: btc_ticker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ironbyte
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-01 00:00:00.000000000 Z
11
+ date: 2017-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.14'
20
- type: :development
19
+ version: '2.0'
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.14'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '12.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,28 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.3'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.3'
69
- - !ruby/object:Gem::Dependency
70
- name: httparty
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.14.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.14.0
68
+ version: '3.0'
83
69
  description: A Ruby wrapper for the Bitstamp Ticker API
84
70
  email:
85
71
  - illusivespectre@gmail.com
@@ -100,6 +86,8 @@ files:
100
86
  - btc_ticker.gemspec
101
87
  - lib/btc_ticker.rb
102
88
  - lib/btc_ticker/bitstamp.rb
89
+ - lib/btc_ticker/errors.rb
90
+ - lib/btc_ticker/http_client.rb
103
91
  - lib/btc_ticker/version.rb
104
92
  homepage: https://github.com/ironbyte/btc_ticker
105
93
  licenses:
@@ -113,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
101
  requirements:
114
102
  - - ">="
115
103
  - !ruby/object:Gem::Version
116
- version: '0'
104
+ version: 2.0.0
117
105
  required_rubygems_version: !ruby/object:Gem::Requirement
118
106
  requirements:
119
107
  - - ">="
@@ -121,8 +109,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
109
  version: '0'
122
110
  requirements: []
123
111
  rubyforge_project:
124
- rubygems_version: 2.6.11
112
+ rubygems_version: 2.6.12
125
113
  signing_key:
126
114
  specification_version: 4
127
- summary: BTCTicker v1.0.2
115
+ summary: A Ruby wrapper for the Bitstamp Ticker API
128
116
  test_files: []