bittrex 0.0.2 → 0.0.3

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: 3deff4d67afa6d177474b50f61c96555e01d4237
4
- data.tar.gz: 0a0b94bf9f4577c679da4a52a8c0c85d7c4064a1
3
+ metadata.gz: 8dad1b17f535502441708ef65e4c5b83b7d8d6cb
4
+ data.tar.gz: 2d7a5d84190b5b8778a70164335e623181121a7e
5
5
  SHA512:
6
- metadata.gz: 9139ad753901cc960de237d182ee302023fa37c0d4aabca9f3654d085012869fe9a5dd720952ab68163154e95361dbd7f70e159cf4e8a12abc4e724c6b9518aa
7
- data.tar.gz: 81491a2f5d641e957287ec4341b4adee5a2919f2b548da9f9cab0a18aa1028a131c8223f54329a479c2674e82fcbdb10545d3b0d05035ba19b8345d504ebfdb6
6
+ metadata.gz: 7a1b15f16822ebd7e88d089c212f5d4562a7cbb04528b8cc15074008c0c83c91fab631b38a7adee526c4576958d8854cbbb5352fb646b8a2ff1fa95b8708ecfa
7
+ data.tar.gz: 1bfb9206a91e60559a5f8362400529a6999be713e7f6617270fe73f679e8b0bcc5539b5dfb7e799c1f5208fc243932da056a321cad6ecf3b97135b4727beec45
@@ -0,0 +1,57 @@
1
+ # Ruby CircleCI 2.0 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
+ #
5
+ version: 2
6
+ jobs:
7
+ build:
8
+ docker:
9
+ # specify the version you desire here
10
+ - image: circleci/ruby:2.3.3-node-browsers
11
+
12
+ # Specify service dependencies here if necessary
13
+ # CircleCI maintains a library of pre-built images
14
+ # documented at https://circleci.com/docs/2.0/circleci-images/
15
+ # - image: circleci/postgres:9.4
16
+
17
+ working_directory: ~/repo
18
+
19
+ steps:
20
+ - checkout
21
+
22
+ # Download and cache dependencies
23
+ - restore_cache:
24
+ keys:
25
+ - v1-dependencies-{{ checksum "Gemfile.lock" }}
26
+ # fallback to using the latest cache if no exact match is found
27
+ - v1-dependencies-
28
+
29
+ - run:
30
+ name: install dependencies
31
+ command: |
32
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
33
+
34
+ - save_cache:
35
+ paths:
36
+ - ./vendor/bundle
37
+ key: v1-dependencies-{{ checksum "Gemfile.lock" }}
38
+
39
+ # run tests!
40
+ - run:
41
+ name: run tests
42
+ command: |
43
+ mkdir /tmp/test-results
44
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
45
+
46
+ bundle exec rspec --format progress \
47
+ --format RspecJunitFormatter \
48
+ --out /tmp/test-results/rspec.xml \
49
+ --format progress \
50
+ "${TEST_FILES}"
51
+
52
+ # collect reports
53
+ - store_test_results:
54
+ path: /tmp/test-results
55
+ - store_artifacts:
56
+ path: /tmp/test-results
57
+ destination: test-results
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.3
1
+ 2.3.4
data/bittrex.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.6"
24
24
  spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "rspec_junit_formatter"
26
27
  spec.add_development_dependency "simplecov"
27
28
  spec.add_development_dependency "mocha"
28
29
  spec.add_development_dependency "figaro"
data/lib/bittrex.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "bittrex/version"
2
2
 
3
3
  module Bittrex
4
+ autoload :Helpers, 'bittrex/helpers'
4
5
  autoload :Market, 'bittrex/market'
5
6
  autoload :Client, 'bittrex/client'
6
7
  autoload :Configuration, 'bittrex/configuration'
@@ -1,5 +1,7 @@
1
1
  module Bittrex
2
2
  class Deposit
3
+ include Helpers
4
+
3
5
  attr_reader :id, :transaction_id, :address, :quantity, :currency, :confirmations, :executed_at
4
6
 
5
7
  def initialize(attrs = {})
@@ -9,7 +11,7 @@ module Bittrex
9
11
  @quantity = attrs['Amount']
10
12
  @currency = attrs['Currency']
11
13
  @confirmations = attrs['Confirmations']
12
- @executed_at = Time.parse(attrs['LastUpdated'])
14
+ @executed_at = extract_timestamp(attrs['LastUpdated'])
13
15
  end
14
16
 
15
17
  def self.all
@@ -0,0 +1,8 @@
1
+ module Bittrex
2
+ module Helpers
3
+ def extract_timestamp(value)
4
+ return if value.nil? or value.strip.empty?
5
+ Time.parse value
6
+ end
7
+ end
8
+ end
@@ -2,6 +2,8 @@ require 'time'
2
2
 
3
3
  module Bittrex
4
4
  class Market
5
+ include Helpers
6
+
5
7
  attr_reader :name, :currency, :base, :currency_name, :base_name, :minimum_trade, :active, :created_at, :raw
6
8
 
7
9
  def initialize(attrs = {})
@@ -12,7 +14,7 @@ module Bittrex
12
14
  @base_name = attrs['BaseCurrencyLong']
13
15
  @minimum_trade = attrs['MinTradeSize']
14
16
  @active = attrs['IsActive']
15
- @created_at = Time.parse(attrs['Created'])
17
+ @created_at = extract_timestamp(attrs['Created'])
16
18
  @raw = attrs
17
19
  end
18
20
 
data/lib/bittrex/order.rb CHANGED
@@ -1,7 +1,9 @@
1
1
  module Bittrex
2
2
  class Order
3
- attr_reader :type, :id, :limit,
4
- :exchange, :price, :quantity, :remaining,
3
+ include Helpers
4
+
5
+ attr_reader :type, :id, :limit, :opened_at, :closed_at,
6
+ :exchange, :price, :quantity, :remaining, :commission,
5
7
  :total, :fill, :executed_at, :raw
6
8
 
7
9
  def initialize(attrs = {})
@@ -14,9 +16,11 @@ module Bittrex
14
16
  @total = attrs['Total']
15
17
  @fill = attrs['FillType']
16
18
  @limit = attrs['Limit']
17
- @commission = attrs['Commission']
19
+ @commission = (attrs['Commission'] || attrs['CommissionPaid']).to_f
18
20
  @raw = attrs
19
- @executed_at = Time.parse(attrs['TimeStamp'])
21
+ @opened_at = extract_timestamp(attrs['Opened'])
22
+ @executed_at = extract_timestamp(attrs['TimeStamp'])
23
+ @closed_at = extract_timestamp(attrs['Closed'])
20
24
  end
21
25
 
22
26
  def self.book(market, type, depth = 50)
data/lib/bittrex/quote.rb CHANGED
@@ -4,6 +4,7 @@ module Bittrex
4
4
 
5
5
  def initialize(market, attrs = {})
6
6
  @market = market
7
+ return if attrs.nil?
7
8
  @bid = attrs['Bid']
8
9
  @ask = attrs['Ask']
9
10
  @last = attrs['Last']
@@ -1,5 +1,7 @@
1
1
  module Bittrex
2
2
  class Summary
3
+ include Helpers
4
+
3
5
  attr_reader :name, :high, :low, :volume, :last, :base_volume, :raw, :created_at
4
6
 
5
7
  alias_method :vol, :volume
@@ -13,7 +15,7 @@ module Bittrex
13
15
  @last = attrs['Last']
14
16
  @base_volume = attrs['BaseVolume']
15
17
  @raw = attrs
16
- @created_at = Time.parse(attrs['TimeStamp'])
18
+ @created_at = extract_timestamp(attrs['TimeStamp'])
17
19
  end
18
20
 
19
21
  def self.all
@@ -1,3 +1,3 @@
1
1
  module Bittrex
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,5 +1,7 @@
1
1
  module Bittrex
2
2
  class Withdrawal
3
+ include Helpers
4
+
3
5
  attr_reader :id, :currency, :quantity, :address, :authorized,
4
6
  :pending, :canceled, :invalid_address,
5
7
  :transaction_cost, :transaction_id, :executed_at
@@ -15,7 +17,7 @@ module Bittrex
15
17
  @invalid_address = attrs['Canceled']
16
18
  @transaction_cost = attrs['TxCost']
17
19
  @transaction_id = attrs['TxId']
18
- @executed_at = Time.parse(attrs['Opened'])
20
+ @executed_at = extract_timestamp(attrs['Opened'])
19
21
  end
20
22
 
21
23
  def self.all
@@ -0,0 +1,17 @@
1
+ {
2
+ "OrderUuid": "1af0399d-e845-4xxx-9d85-aa332d831e95",
3
+ "Exchange": "BTC-HPY",
4
+ "Opened": "2014-06-21T04:08:08.75",
5
+ "Closed": "2014-06-22T04:08:08.75",
6
+ "OrderType": "LIMIT_SELL",
7
+ "Limit": 1.6E-7,
8
+ "Quantity": 371810.26006413,
9
+ "QuantityRemaining": 371810.26006413,
10
+ "Price": 0.0,
11
+ "PricePerUnit": null,
12
+ "CancelInitiated": false,
13
+ "IsConditional": false,
14
+ "Condition": "NONE",
15
+ "ConditionTarget": null,
16
+ "ImmediateOrCancel": false
17
+ }
@@ -4,18 +4,42 @@ describe Bittrex::Order do
4
4
  let(:data){ fixture(:order) }
5
5
  let(:subject){ Bittrex::Order.new(data) }
6
6
 
7
- attr_reader :type, :id, :quantity, :rate, :total, :fill, :raw, :executed_at
7
+ attr_reader :type, :id, :quantity, :rate, :total, :fill, :raw, :executed_at, :commission, :opened_at, :closed_at
8
8
 
9
- context '#initialization' do
10
- it { should_assign_attribute(subject, :id, '1af0399d-e845-4xxx-9d85-aa332d831e95') }
11
- it { should_assign_attribute(subject, :type, 'Limit_sell') }
12
- it { should_assign_attribute(subject, :exchange, 'BTC-HPY') }
13
- it { should_assign_attribute(subject, :quantity, 371810.26006413) }
14
- it { should_assign_attribute(subject, :remaining, 371810.26006413) }
15
- it { should_assign_attribute(subject, :limit, 0.00000016) }
16
- it { should_assign_attribute(subject, :price, 0.0) }
17
- it { should_assign_attribute(subject, :total, nil) }
18
- it { should_assign_attribute(subject, :fill, nil) }
19
- it { should_assign_attribute(subject, :executed_at, Time.parse('2014-06-21T04:08:08.75')) }
9
+ describe "closed order" do
10
+ context '#initialization' do
11
+ it { should_assign_attribute(subject, :id, '1af0399d-e845-4xxx-9d85-aa332d831e95') }
12
+ it { should_assign_attribute(subject, :type, 'Limit_sell') }
13
+ it { should_assign_attribute(subject, :exchange, 'BTC-HPY') }
14
+ it { should_assign_attribute(subject, :quantity, 371810.26006413) }
15
+ it { should_assign_attribute(subject, :remaining, 371810.26006413) }
16
+ it { should_assign_attribute(subject, :limit, 0.00000016) }
17
+ it { should_assign_attribute(subject, :price, 0.0) }
18
+ it { should_assign_attribute(subject, :total, nil) }
19
+ it { should_assign_attribute(subject, :fill, nil) }
20
+ it { should_assign_attribute(subject, :executed_at, Time.parse('2014-06-21T04:08:08.75')) }
21
+ it { should_assign_attribute(subject, :opened_at, nil) }
22
+ it { should_assign_attribute(subject, :closed_at, nil) }
23
+ end
24
+ end
25
+
26
+ describe "open order" do
27
+ let(:data) { fixture(:open_order) }
28
+
29
+ context '#initialization' do
30
+ it { should_assign_attribute(subject, :id, '1af0399d-e845-4xxx-9d85-aa332d831e95') }
31
+ it { should_assign_attribute(subject, :type, 'Limit_sell') }
32
+ it { should_assign_attribute(subject, :exchange, 'BTC-HPY') }
33
+ it { should_assign_attribute(subject, :quantity, 371810.26006413) }
34
+ it { should_assign_attribute(subject, :remaining, 371810.26006413) }
35
+ it { should_assign_attribute(subject, :limit, 0.00000016) }
36
+ it { should_assign_attribute(subject, :commission, 0.0) }
37
+ it { should_assign_attribute(subject, :price, 0.0) }
38
+ it { should_assign_attribute(subject, :total, nil) }
39
+ it { should_assign_attribute(subject, :fill, nil) }
40
+ it { should_assign_attribute(subject, :executed_at, nil) }
41
+ it { should_assign_attribute(subject, :opened_at, Time.parse('2014-06-21T04:08:08.75')) }
42
+ it { should_assign_attribute(subject, :closed_at, Time.parse('2014-06-22T04:08:08.75')) }
43
+ end
20
44
  end
21
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bittrex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Werner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-04 00:00:00.000000000 Z
11
+ date: 2017-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec_junit_formatter
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'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: simplecov
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +129,7 @@ executables: []
115
129
  extensions: []
116
130
  extra_rdoc_files: []
117
131
  files:
132
+ - ".circleci/config.yml"
118
133
  - ".gitignore"
119
134
  - ".ruby-version"
120
135
  - Gemfile
@@ -128,6 +143,7 @@ files:
128
143
  - lib/bittrex/configuration.rb
129
144
  - lib/bittrex/currency.rb
130
145
  - lib/bittrex/deposit.rb
146
+ - lib/bittrex/helpers.rb
131
147
  - lib/bittrex/market.rb
132
148
  - lib/bittrex/order.rb
133
149
  - lib/bittrex/quote.rb
@@ -138,6 +154,7 @@ files:
138
154
  - spec/fixtures/currency.json
139
155
  - spec/fixtures/deposit.json
140
156
  - spec/fixtures/market.json
157
+ - spec/fixtures/open_order.json
141
158
  - spec/fixtures/order.json
142
159
  - spec/fixtures/quote.json
143
160
  - spec/fixtures/summary.json
@@ -182,6 +199,7 @@ test_files:
182
199
  - spec/fixtures/currency.json
183
200
  - spec/fixtures/deposit.json
184
201
  - spec/fixtures/market.json
202
+ - spec/fixtures/open_order.json
185
203
  - spec/fixtures/order.json
186
204
  - spec/fixtures/quote.json
187
205
  - spec/fixtures/summary.json