waffle_api 0.1.0 → 0.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: dc3f850365ea0b87271e5c6ff17619781fe21834
4
- data.tar.gz: 66d0b71214fbb07192d370848347d56a21d54d44
3
+ metadata.gz: f2b30166123afd1f59e7585120211af5da274c6e
4
+ data.tar.gz: 7a3acecf444ba8910aba86c014e9b77cd7fe618f
5
5
  SHA512:
6
- metadata.gz: 9d13db65aa6dbb6aa3672c0fbf79e8c20ef49c5b3989e95d0f6e5cfa054ee3e67356da7c277dc784f5e5e4f0c8bada3620303d801e80cf7eb8da694239832002
7
- data.tar.gz: 0e076e76958040a268e72766e6ea1a8af8fb571ca30da634fbc1254415de8d99bfc0562b64d948e227a0475989861b688eebe42a36e5a14a9dc35c5ddcda8b5b
6
+ metadata.gz: 536e904fbdd7d7d3b53cfd9be00dbcc6dfd525441774711874f9c9d82a07dd6936332cd66fb4ec077ce9880a1e7b37b48e469948c4d0b6e57ca230439a01d018
7
+ data.tar.gz: b9cf8fd05960c7b087870c8602f5259e31586419159c4505207765dbd7f714dc40a312e3f0e53739fcfe83cdf8cf891741bbd52102bc1fecb71ab74c75cffafa
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+ Gemfile.lock
15
+
16
+ # YARD artifacts
17
+ .yardoc
18
+ _yardoc
19
+ doc/
20
+ *.sqlite
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - 2.0.0
5
+ - 2.1.0
6
+ - 2.1.1
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
data/README.md CHANGED
@@ -9,7 +9,7 @@ _Waffle pool API gem_
9
9
 
10
10
  ## Installation
11
11
 
12
- ### Ruby 1.9.3+, 2+
12
+ ### Ruby 2+
13
13
 
14
14
  ```ruby
15
15
  gem install waffle_api
@@ -109,7 +109,7 @@ Will return a JSON array containing the last 10 payments
109
109
 
110
110
  Released under the MIT License. See the [LICENSE](https://github.com/Calyhre/waffle_api/blob/master/LICENSE.md) file for further details.
111
111
 
112
- [travis_img]: https://travis-ci.org/Calyhre/waffle_api.png?branch=master
112
+ [travis_img]: https://travis-ci.org/Calyhre/waffle_api.svg?branch=master
113
113
  [travis_url]: https://travis-ci.org/Calyhre/waffle_api
114
114
  [fury_img]: https://badge.fury.io/rb/waffle_api.png
115
115
  [fury_url]: http://badge.fury.io/rb/waffle_api
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task default: :spec
7
+ task test: :spec
@@ -1,3 +1,3 @@
1
1
  module WaffleAPI
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe WaffleAPI::Client do
4
+ describe 'without address' do
5
+ it 'raises an WaffleAPI::Error::EmptyAddress' do
6
+ expect do
7
+ WaffleAPI::Client.new
8
+ end.to raise_error(WaffleAPI::Error::EmptyAddress)
9
+ end
10
+ end
11
+
12
+ describe 'with a bad address' do
13
+ it 'raises an WaffleAPI::Error::BadAddress' do
14
+ expect do
15
+ WaffleAPI::Client.new address: 'some_bad_address'
16
+ end.to raise_error(WaffleAPI::Error::BadAddress)
17
+ end
18
+ end
19
+
20
+ describe 'with a valid address' do
21
+ subject do
22
+ WaffleAPI::Client.new address: '1Ju8U9Ukfc5kiMqzQrRgQBP1JvRkeSv94V'
23
+ end
24
+
25
+ describe 'asking for a non existing key' do
26
+ it 'raises an NoMethodError' do
27
+ stub_waffle Wafflepool::Success
28
+
29
+ expect do
30
+ subject.i_hope_this_key_will_never_exist
31
+ end.to raise_error(NoMethodError)
32
+ end
33
+ end
34
+
35
+ describe 'asking for an existing key' do
36
+ it 'just return it' do
37
+ stub_waffle Wafflepool::Success
38
+
39
+ expect(subject.hashrate).to eq 4_303_407
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,15 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'webmock/rspec'
5
+ require 'waffle_api'
6
+
7
+ Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
8
+
9
+ WebMock.disable_net_connect! allow_localhost: true
10
+
11
+ URL = 'http://wafflepool.com/tmp_api?address=1Ju8U9Ukfc5kiMqzQrRgQBP1JvRkeSv94V'
12
+
13
+ def stub_waffle(response_class)
14
+ stub_request(:any, URL).to_rack(response_class)
15
+ end
@@ -0,0 +1,3 @@
1
+ {
2
+ "error": "An error which I do not even suspect the existence"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "error": "Invalid BTC Address!"
3
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "hash_rate": 4303407,
3
+ "hash_rate_str": "4.30 MH\/s",
4
+ "worker_hashrates": [
5
+ {
6
+ "username": "1Ju8U9Ukfc5kiMqzQrRgQBP1JvRkeSv94V_calyhrerig1",
7
+ "hashrate": 2529705,
8
+ "stalerate": 3.33,
9
+ "last_seen": 1398022030,
10
+ "str": "2.53 MH\/s"
11
+ },
12
+ {
13
+ "username": "1Ju8U9Ukfc5kiMqzQrRgQBP1JvRkeSv94V_dqmsrig1",
14
+ "hashrate": 1773702,
15
+ "stalerate": 1.61,
16
+ "last_seen": 1398022030,
17
+ "str": "1.77 MH\/s"
18
+ }
19
+ ],
20
+ "balances": {
21
+ "sent": 1.61039009,
22
+ "confirmed": 0.00383488,
23
+ "unconverted": 0.011964213459441
24
+ },
25
+ "recent_payments": [
26
+ {
27
+ "amount": "0.01715311",
28
+ "time": "2014-04-20 16:03:24",
29
+ "txn": "8706e0a86042619c17fab11fc83c8ceb815bcbcf53a67863e60749050fb27660"
30
+ },
31
+ {
32
+ "amount": "0.01600557",
33
+ "time": "2014-04-20 04:36:01",
34
+ "txn": "258dda8330009d63aa78fef73cd9e079ece1f35ca7bd4d1f6426dba454a7dde1"
35
+ },
36
+ {
37
+ "amount": "0.03763282",
38
+ "time": "2014-04-19 16:07:02",
39
+ "txn": "3502be9939ab4b5e3478cded19b20946aa73af14b29e3697e8a321b82571e604"
40
+ },
41
+ {
42
+ "amount": "0.02660132",
43
+ "time": "2014-04-18 14:50:11",
44
+ "txn": "6cb1e2712945c859ff35d29cfe7171c96ef291fbcc22f3c2923903448eea588d"
45
+ },
46
+ {
47
+ "amount": "0.01660785",
48
+ "time": "2014-04-17 15:12:19",
49
+ "txn": "98b8f2c0b8bcb37c1d0bb22699460d332e6afdf6b73ae43fb5944d8ae16e87bc"
50
+ },
51
+ {
52
+ "amount": "0.02099343",
53
+ "time": "2014-04-16 19:59:53",
54
+ "txn": "bab1cd49c6b3e737a4c251e494bc65e524a85142f52c6e35051b1f13696527e6"
55
+ },
56
+ {
57
+ "amount": "0.02189502",
58
+ "time": "2014-04-15 20:40:48",
59
+ "txn": "8c89c55a9a3b5dc7c12cb0cad8aada7658d83fe8b3ba9a5d33f858f74afcfd03"
60
+ },
61
+ {
62
+ "amount": "0.02050877",
63
+ "time": "2014-04-14 19:19:21",
64
+ "txn": "35cbe9646810e59cd1747f380c019a6e43521c77e2f0537077be22877873dc12"
65
+ },
66
+ {
67
+ "amount": "0.01705158",
68
+ "time": "2014-04-13 15:19:52",
69
+ "txn": "63738d931504bca8aca6db6198ada4f3a96586ed2263866de38611edc4f462c6"
70
+ },
71
+ {
72
+ "amount": "0.01287918",
73
+ "time": "2014-04-12 15:50:52",
74
+ "txn": "78747c8cf856439b6d8d2ccb4595ab773ce0b1673c344bfb97a9dd0d2795ad50"
75
+ }
76
+ ],
77
+ "error": ""
78
+ }
@@ -0,0 +1,44 @@
1
+ require 'sinatra/base'
2
+
3
+ # Stub WafflePool reponses
4
+ module Wafflepool
5
+ # Provide json_reponse for all inherited class
6
+ class Base < Sinatra::Base
7
+ protected
8
+
9
+ def json_response(response_code, file_name)
10
+ content_type :json
11
+ status response_code
12
+ File.open(File.dirname(__FILE__) + '/fixtures/' + file_name, 'rb').read
13
+ end
14
+ end
15
+
16
+ # Stub success response from WafflePool
17
+ class Success < Base
18
+ get '/tmp_api' do
19
+ json_response 200, 'success.json'
20
+ end
21
+ end
22
+
23
+ # Stub unknown error response from WafflePool
24
+ class UnknownError < Base
25
+ get '/tmp_api' do
26
+ json_response 200, 'error.json'
27
+ end
28
+ end
29
+
30
+ # Stub address not found response from WafflePool
31
+ class AddressNotFound < Base
32
+ get '/tmp_api' do
33
+ json_response 200, 'not_found.json'
34
+ end
35
+ end
36
+
37
+ # Stub api endpoint moved
38
+ class EndPointMoved < Base
39
+ get '/tmp_api' do
40
+ status 404
41
+ body nil
42
+ end
43
+ end
44
+ end
data/waffle_api.gemspec CHANGED
@@ -7,8 +7,18 @@ Gem::Specification.new do |s|
7
7
  s.description = s.summary
8
8
  s.authors = ['Calyhre']
9
9
  s.email = ['contact@calyh.re']
10
- s.files = `git ls-files`.split("\n")
11
10
  s.require_path = 'lib'
12
- s.homepage = 'http://rubygems.org/gems/waffle_api'
11
+ s.homepage = 'http://github.com/Calyhre/waffle_api'
13
12
  s.license = 'MIT'
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+
17
+ s.required_ruby_version = '>= 2.0.0'
18
+
19
+ s.add_development_dependency 'rake'
20
+ s.add_development_dependency 'rspec'
21
+ s.add_development_dependency 'sinatra'
22
+ s.add_development_dependency 'webmock'
23
+ s.add_development_dependency 'coveralls'
14
24
  end
metadata CHANGED
@@ -1,15 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waffle_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Calyhre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-20 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2014-04-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sinatra
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
13
83
  description: Waffle pool API gem
14
84
  email:
15
85
  - contact@calyh.re
@@ -17,17 +87,27 @@ executables: []
17
87
  extensions: []
18
88
  extra_rdoc_files: []
19
89
  files:
90
+ - ".gitignore"
91
+ - ".travis.yml"
20
92
  - CONTRIBUTING.md
93
+ - Gemfile
21
94
  - LICENSE.md
22
95
  - README.md
96
+ - Rakefile
23
97
  - lib/waffle_api.rb
24
98
  - lib/waffle_api/address_validator.rb
25
99
  - lib/waffle_api/client.rb
26
100
  - lib/waffle_api/errors.rb
27
101
  - lib/waffle_api/helpers.rb
28
102
  - lib/waffle_api/version.rb
103
+ - spec/lib/waffle_api/client_spec.rb
104
+ - spec/spec_helper.rb
105
+ - spec/support/fixtures/error.json
106
+ - spec/support/fixtures/not_found.json
107
+ - spec/support/fixtures/success.json
108
+ - spec/support/wafflepool.rb
29
109
  - waffle_api.gemspec
30
- homepage: http://rubygems.org/gems/waffle_api
110
+ homepage: http://github.com/Calyhre/waffle_api
31
111
  licenses:
32
112
  - MIT
33
113
  metadata: {}
@@ -39,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
39
119
  requirements:
40
120
  - - ">="
41
121
  - !ruby/object:Gem::Version
42
- version: '0'
122
+ version: 2.0.0
43
123
  required_rubygems_version: !ruby/object:Gem::Requirement
44
124
  requirements:
45
125
  - - ">="
@@ -51,4 +131,10 @@ rubygems_version: 2.2.0
51
131
  signing_key:
52
132
  specification_version: 4
53
133
  summary: Waffle pool API gem
54
- test_files: []
134
+ test_files:
135
+ - spec/lib/waffle_api/client_spec.rb
136
+ - spec/spec_helper.rb
137
+ - spec/support/fixtures/error.json
138
+ - spec/support/fixtures/not_found.json
139
+ - spec/support/fixtures/success.json
140
+ - spec/support/wafflepool.rb