bitcoinaverage 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,5 +1,8 @@
1
1
  Gemfile.lock
2
+ coverage
2
3
  coverage/*
4
+ /coverage/
5
+ coverage.data
3
6
  log/*
4
7
  *.gem
5
8
  mysession
data/.travis.yml CHANGED
@@ -2,5 +2,5 @@ bundler_args: --without development
2
2
  language: ruby
3
3
  rvm:
4
4
  - 1.9.3-p374
5
- - 2.0.0-rc1
5
+ - 2.0.0-p353
6
6
  - 2.1.0
data/Gemfile CHANGED
@@ -1,8 +1,10 @@
1
1
  # A sample Gemfile
2
- source "https://rubygems.org"
2
+ source 'https://rubygems.org'
3
3
 
4
+ gem 'rake'
4
5
  gem 'httparty'
5
6
  gem 'json'
7
+
6
8
  group :development do
7
9
  gem 'pry'
8
10
  gem 'pry-nav'
@@ -10,7 +12,7 @@ end
10
12
 
11
13
  group :test do
12
14
  gem 'rspec', '>= 2.14'
13
- gem 'coveralls', require: false
15
+ gem 'coveralls', :require => false
14
16
  gem 'webmock'
15
17
  gem 'simplecov'
16
18
  end
data/README.md CHANGED
@@ -1,15 +1,13 @@
1
1
  # Ruby wrapper for the BitcoinAverage API
2
2
 
3
- [![Gem Version]][gem]
3
+ [![Gem Version](https://badge.fury.io/rb/bitcoinaverage.png)](http://badge.fury.io/rb/bitcoinaverage)
4
4
  [![Coverage Status](https://coveralls.io/repos/git-toni/bitcoinaverage/badge.png)](https://coveralls.io/r/git-toni/bitcoinaverage)
5
- [gem]: https://rubygems.org/gems/bitcoinaverage
6
- [travis]: https://github.com/git-toni/bitcoinaverage
5
+ [![Build Status](https://travis-ci.org/git-toni/bitcoinaverage.png?branch=master)](https://travis-ci.org/git-toni/bitcoinaverage)
7
6
 
8
7
 
9
-
10
- Bitcoinaverage is an independent 'globally averaged bitcoin price' provider. They provide a **Global** price,
11
- based on the volume and price of BTC in all currencies, together with a **Market** price, which only takes into account
12
- the volume of BTC directly exchangeable through that specific currency.
8
+ Bitcoinaverage is an independent 'globally averaged bitcoin price' provider. They provide on one hand a **Global** price,
9
+ which is based on the volume and price of BTC in all currencies. And on the other hand they provide a **Market** price, which only takes into account
10
+ the volume of BTC directly exchangeable using the chosen specific currency.
13
11
  For more information on the methods BitcoinAverage uses to calculate the price, please refer to their website, in
14
12
  particular [this page](https://bitcoinaverage.com/explain.htm).
15
13
 
@@ -23,7 +21,7 @@ The development of this gem has been *deeply* inspired by Erik Michaels-Ober's g
23
21
  ## Documentation
24
22
  TODO
25
23
 
26
- ## Usage
24
+ ## Usage
27
25
  ```ruby
28
26
  require 'rubygems'
29
27
  require 'bitcoinaverage'
@@ -49,11 +47,11 @@ BitcoinAverage.global.volume_percent
49
47
  ```
50
48
 
51
49
  ## Tested Ruby Versions
52
- This library aims to support and is [tested against][travis] the following Ruby
50
+ This library aims to support and is [tested against](https://travis-ci.org/git-toni/bitcoinaverage) the following Ruby
53
51
  implementations:
54
52
 
55
53
  * ruby-1.9.3-p374
56
- * ruby-2.0.0-rc1
54
+ * ruby-2.0.0-p353
57
55
  * ruby-2.1.0
58
56
 
59
57
  ## Contributing
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :test => :spec
7
+ task :default => :spec
@@ -1,16 +1,16 @@
1
- $:.push File.expand_path("../lib", __FILE__)
1
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
2
2
  require 'bitcoinaverage/version'
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'bitcoinaverage'
6
6
  s.version = BitcoinAverage::VERSION
7
- s.summary = "Ruby Wrapper for the Bitcoinaverage API"
7
+ s.summary = 'Ruby Wrapper for the Bitcoinaverage API'
8
8
  s.description = "Ruby wrapper for the Bitcoinaverage API. Bitcoinaverage is an independent 'globally averaged bitcoin price' provider"
9
- s.author = ["Toni Urcola"]
9
+ s.author = ['Toni Urcola']
10
10
  s.email = 'unmail.toni@gmail.com'
11
11
  s.files = `git ls-files`.split("\n")
12
12
  s.test_files = `git ls-files -- {test,spec}/*`.split("\n")
13
- s.require_paths = ["lib"]
13
+ s.require_paths = ['lib']
14
14
  s.required_ruby_version = '>= 1.9.3'
15
15
  s.add_dependency 'httparty'
16
16
  s.add_dependency 'json'
@@ -2,10 +2,11 @@ require 'bitcoinaverage/market_ticker'
2
2
  require 'bitcoinaverage/global_ticker'
3
3
 
4
4
  module BitcoinAverage
5
- def self.global(currency="USD")
6
- GlobalTicker.instance.request_info currency
7
- end
8
- def self.market(currency="USD")
9
- MarketTicker.instance.request_info currency
10
- end
5
+ def self.global(currency = 'USD')
6
+ GlobalTicker.instance.request_info currency
7
+ end
8
+
9
+ def self.market(currency = 'USD')
10
+ MarketTicker.instance.request_info currency
11
+ end
11
12
  end
@@ -2,36 +2,22 @@ require 'httparty'
2
2
 
3
3
  module BitcoinAverage
4
4
  module Requester
5
- def sendrequest(average,currency='USD')
6
- raise "#{currency} is not a known currency" unless known_currency?(currency)
7
- base_url='https://api.bitcoinaverage.com/ticker/'
8
- avg_url= average == 'global'? average+'/' : ''
9
- ccy_url=currency
10
- final_url= base_url+avg_url+ccy_url
5
+ def get(average, currency = 'USD')
6
+ fail "#{currency} is not a known currency" unless known_currency?(currency)
7
+ base_url = 'https://api.bitcoinaverage.com/ticker/'
8
+ avg_url = average == 'global' ? average + '/' : ''
9
+ ccy_url = currency
10
+ final_url = base_url + avg_url + ccy_url
11
11
 
12
- response=HTTParty.get final_url
12
+ HTTParty.get(final_url)
13
13
  end
14
14
 
15
15
  def known_currency?(currency)
16
- av_currencies=File.open('lib/bitcoinaverage/available_currencies.csv','r')
17
- .read
18
- .parse_csv
19
- true unless !av_currencies.include? currency
16
+ available_currencies.include?(currency)
20
17
  end
21
18
 
22
- #Method to obtain all the available currencies
23
- #
24
- #Note: it's not run repeatedly, rather the result
25
- #was written to a file.
26
- #Note 2: "require 'csv' " is necessary for this method
27
- #
28
- #
29
- #def available_currencies
30
- # all_ccy=HTTParty.get 'https://api.bitcoinaverage.com/ticker/global/all'
31
- # all_ccy.map!{|k,v| k}
32
- # file= File.open 'currencies_file.csv','w'
33
- # file.write all_ccy[0..-2].to_csv
34
- # file.close
35
- #end
19
+ def available_currencies
20
+ @available_currencies ||= File.open('lib/bitcoinaverage/available_currencies.csv', 'r').read.parse_csv
21
+ end
36
22
  end
37
23
  end
@@ -6,20 +6,19 @@ module BitcoinAverage
6
6
  include BitcoinAverage::Requester
7
7
  attr_accessor :avg_24h, :ask, :bid, :last, :timestamp
8
8
 
9
- def request_info currency='USD'
10
- response= sendrequest self.avg_type, currency
9
+ def request_info(currency = 'USD')
10
+ response = get(avg_type, currency)
11
11
  if response.success?
12
- #Small patch since an attribute can't be named "24h_avg"
13
- response=JSON.load(response.to_s) unless response.is_a?(Hash)
14
- self.avg_24h = response["24h_avg"]
15
- response.delete("24h_avg")
16
- #binding.pry
17
- response.each do |key,value|
18
- send("#{key}=",value)
12
+ # Small patch since an attribute can't be named "24h_avg"
13
+ response = JSON.load(response.to_s) unless response.is_a?(Hash)
14
+ self.avg_24h = response['24h_avg']
15
+ response.delete('24h_avg')
16
+ response.each do |key, value|
17
+ send("#{key}=", value)
19
18
  end
20
19
  self
21
20
  else
22
- raise "Error receiving response"#<- to be extended
21
+ fail 'Error receiving response' # TODO: extended
23
22
  end
24
23
  end
25
24
  end
@@ -1,3 +1,3 @@
1
1
  module BitcoinAverage
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'
3
3
  end
@@ -5,48 +5,48 @@ SimpleCov.start
5
5
  describe BitcoinAverage do
6
6
  describe '.global ' do
7
7
  before do
8
- stub_request(:get, "https://api.bitcoinaverage.com/ticker/global/USD").
9
- to_return(status:200, body: fixture('global_USD.json'),headers:{})
10
- @response=BitcoinAverage.global
8
+ stub_request(:get, 'https://api.bitcoinaverage.com/ticker/global/USD').
9
+ to_return(:status => 200, :body => fixture('global_USD.json'), :headers => {})
10
+ @response = BitcoinAverage.global
11
11
  end
12
12
  it 'returns a GlobalTicker object properly filled' do
13
- #binding.pry
14
- #expect(BitcoinAverage.global).to be_a BitcoinAverage::GlobalTicker
13
+ # binding.pry
14
+ # expect(BitcoinAverage.global).to be_a BitcoinAverage::GlobalTicker
15
15
  expect(@response).to be_a BitcoinAverage::GlobalTicker
16
- @response.avg_24h.should == 568.44
17
- @response.ask.should == 566.15
18
- @response.bid.should == 563.83
19
- @response.last.should == 564.61
20
- @response.timestamp.should == 'Fri, 21 Feb 2014 16:22:17 -0000'
21
- @response.volume_btc.should == 100496.08
22
- @response.volume_percent.should == 79.49
16
+ expect(@response.avg_24h).to eq(568.44)
17
+ expect(@response.ask).to eq(566.15)
18
+ expect(@response.bid).to eq(563.83)
19
+ expect(@response.last).to eq(564.61)
20
+ expect(@response.timestamp).to eq('Fri, 21 Feb 2014 16:22:17 -0000')
21
+ expect(@response.volume_btc).to eq(100496.08)
22
+ expect(@response.volume_percent).to eq(79.49)
23
23
  end
24
24
  end
25
25
  describe '.market ' do
26
26
  before do
27
- stub_request(:get, "https://api.bitcoinaverage.com/ticker/USD").
28
- to_return(status:200, body: fixture('market_USD.json'),headers:{})
29
- @response=BitcoinAverage.market
27
+ stub_request(:get, 'https://api.bitcoinaverage.com/ticker/USD').
28
+ to_return(:status => 200, :body => fixture('market_USD.json'), :headers => {})
29
+ @response = BitcoinAverage.market
30
30
  end
31
31
  it 'returns a GlobalTicker object properly filled' do
32
- #binding.pry
33
- #expect(BitcoinAverage.global).to be_a BitcoinAverage::GlobalTicker
32
+ # binding.pry
33
+ # expect(BitcoinAverage.global).to be_a BitcoinAverage::GlobalTicker
34
34
  expect(@response).to be_a BitcoinAverage::MarketTicker
35
- @response.avg_24h.should == 565.89
36
- @response.ask.should == 562.54
37
- @response.bid.should == 559.7
38
- @response.last.should == 560.54
39
- @response.timestamp.should == 'Fri, 21 Feb 2014 16:24:27 -0000'
40
- @response.total_vol.should == 100667.13
35
+ expect(@response.avg_24h).to eq(565.89)
36
+ expect(@response.ask).to eq(562.54)
37
+ expect(@response.bid).to eq(559.7)
38
+ expect(@response.last).to eq(560.54)
39
+ expect(@response.timestamp).to eq('Fri, 21 Feb 2014 16:24:27 -0000')
40
+ expect(@response.total_vol).to eq(100667.13)
41
41
  end
42
42
  end
43
43
  describe 'unknown currency' do
44
44
  before do
45
- stub_request(:get, "https://api.bitcoinaverage.com/ticker/EEE").
46
- to_return(status:404, body:"", headers:{})
45
+ stub_request(:get, 'https://api.bitcoinaverage.com/ticker/EEE').
46
+ to_return(:status => 404, :body => '', :headers => {})
47
47
  end
48
48
  it 'raises an error' do
49
- expect{BitcoinAverage.market('EEE')}.to raise_error("EEE is not a known currency")
49
+ expect { BitcoinAverage.market('EEE') }.to raise_error('EEE is not a known currency')
50
50
  end
51
51
  end
52
52
  end
data/spec/spec_helper.rb CHANGED
@@ -1,23 +1,29 @@
1
- #require 'pry'
1
+ # require 'pry'
2
2
  require 'simplecov'
3
3
  require 'coveralls'
4
4
 
5
- SimpleCov.start
5
+ SimpleCov.start
6
6
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
7
7
  SimpleCov::Formatter::HTMLFormatter,
8
8
  Coveralls::SimpleCov::Formatter
9
9
  ]
10
- #Coveralls.wear!
10
+ # Coveralls.wear!
11
11
 
12
-
13
- require 'pry'
12
+ require 'rubygems'
14
13
  require 'rspec'
15
14
  require 'webmock/rspec'
16
- WebMock.disable_net_connect!(allow:'coverwalls.io',allow_localhost:true)
15
+ WebMock.disable_net_connect!(:allow => 'coverwalls.io', :allow_localhost => true)
16
+
17
+ RSpec.configure do |config|
18
+ config.expect_with :rspec do |c|
19
+ c.syntax = :expect
20
+ end
21
+ end
17
22
 
18
23
  def fixture_path
19
24
  File.expand_path('../fixtures', __FILE__)
20
25
  end
26
+
21
27
  def fixture(file)
22
28
  File.new(fixture_path + '/' + file)
23
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitcoinaverage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-23 00:00:00.000000000 Z
12
+ date: 2014-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -82,40 +82,13 @@ executables: []
82
82
  extensions: []
83
83
  extra_rdoc_files: []
84
84
  files:
85
- - .bitcoinaverage.gemspec.swp
86
85
  - .gitignore
87
86
  - .travis.yml
88
87
  - Gemfile
89
88
  - LICENSE
90
89
  - README.md
90
+ - Rakefile
91
91
  - bitcoinaverage.gemspec
92
- - coverage/.last_run.json
93
- - coverage/.resultset.json
94
- - coverage/assets/0.8.0/application.css
95
- - coverage/assets/0.8.0/application.js
96
- - coverage/assets/0.8.0/colorbox/border.png
97
- - coverage/assets/0.8.0/colorbox/controls.png
98
- - coverage/assets/0.8.0/colorbox/loading.gif
99
- - coverage/assets/0.8.0/colorbox/loading_background.png
100
- - coverage/assets/0.8.0/favicon_green.png
101
- - coverage/assets/0.8.0/favicon_red.png
102
- - coverage/assets/0.8.0/favicon_yellow.png
103
- - coverage/assets/0.8.0/loading.gif
104
- - coverage/assets/0.8.0/magnify.png
105
- - coverage/assets/0.8.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
106
- - coverage/assets/0.8.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
107
- - coverage/assets/0.8.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
108
- - coverage/assets/0.8.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
109
- - coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png
110
- - coverage/assets/0.8.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
111
- - coverage/assets/0.8.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
112
- - coverage/assets/0.8.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
113
- - coverage/assets/0.8.0/smoothness/images/ui-icons_222222_256x240.png
114
- - coverage/assets/0.8.0/smoothness/images/ui-icons_2e83ff_256x240.png
115
- - coverage/assets/0.8.0/smoothness/images/ui-icons_454545_256x240.png
116
- - coverage/assets/0.8.0/smoothness/images/ui-icons_888888_256x240.png
117
- - coverage/assets/0.8.0/smoothness/images/ui-icons_cd0a0a_256x240.png
118
- - coverage/index.html
119
92
  - lib/bitcoinaverage.rb
120
93
  - lib/bitcoinaverage/available_currencies.csv
121
94
  - lib/bitcoinaverage/global_ticker.rb
@@ -123,7 +96,6 @@ files:
123
96
  - lib/bitcoinaverage/requester.rb
124
97
  - lib/bitcoinaverage/ticker.rb
125
98
  - lib/bitcoinaverage/version.rb
126
- - mysession
127
99
  - spec/bitcoinaverage_spec.rb
128
100
  - spec/fixtures/global_EUR.json
129
101
  - spec/fixtures/global_USD.json
Binary file