waffle_api 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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