mycoins 0.2.4 → 0.2.5

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: a1efe36d3e0e78d37ba9d8e94ba52cc347ff66dc
4
- data.tar.gz: 325e8c74caca5ef03df0870426ac707061028583
3
+ metadata.gz: ae93a879c55d95f55070ebb8731bcf73c135498b
4
+ data.tar.gz: f0bd6d46cc903407cb577effedbac04971f99981
5
5
  SHA512:
6
- metadata.gz: 2b7426d402a069a60d445078870dd384c77315caa383556371372ad49720b533e32381d790ac8bc3b32574151a0365cfc473186dfadf5ad487dfb065b054f547
7
- data.tar.gz: a60262e526a64cc3e76defbb1911ba0a94cfa5b0d0a05c3bb27f042cd7cc5a109a2d290fc935fa15d1d50a72e63834309d56e26f87729c8af91e712bbbbb3c36
6
+ metadata.gz: f4ed3d309508b0d7f2cb85072762639f646a85d8523d8f9e70081a217bfbac362aa0567f9f1f3b10ab3976bf3319d2847585fdfe8284155c8b71e9a2c342c427
7
+ data.tar.gz: 90ebeec8177ccd9dc552bfe5dc2e51ece56f465bef2335c8db3ef2778e2b5e4690f03ce2a416334f10a0ee27c387bd2b1f9a1403940596e65ac988cec62a2a7e
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/mycoins.rb CHANGED
@@ -23,9 +23,7 @@ class MyCoins
23
23
  if s =~ /<\?dynarex / then
24
24
 
25
25
  @dx = Dynarex.new
26
- @dx.import s
27
-
28
- puts @dx.to_xml pretty: true
26
+ @dx.import s
29
27
 
30
28
  end
31
29
 
@@ -64,8 +62,15 @@ class MyCoins
64
62
  # return the value of a coin given either the qty or purchase amount in BTC
65
63
  #
66
64
  def price(coin_name, qty, btc: nil, date: nil)
67
- coin = @ccf.find(coin_name)
68
- "%.2f %s" % [(coin.price_usd.to_f * qty.to_f) * @jer.rate(@mycurrency),
65
+
66
+ price_usd = if date then
67
+ @ccf.price coin_name, date
68
+ else
69
+ coin = @ccf.find(coin_name)
70
+ coin.price_usd.to_f
71
+ end
72
+
73
+ "%.2f %s" % [(price_usd * qty.to_f) * @jer.rate(@mycurrency),
69
74
  @mycurrency]
70
75
  end
71
76
 
@@ -80,7 +85,6 @@ class MyCoins
80
85
 
81
86
  r = build_portfolio(@dx.title)
82
87
  dx = Dynarex.new
83
- puts 'r.records: ' + r.records.inspect
84
88
  dx.import r.records
85
89
 
86
90
  h = r.to_h
@@ -106,6 +110,8 @@ class MyCoins
106
110
  gross_profit_list, losses_list = a.partition {|x| x[:profit].to_f > 0}
107
111
  gross_profit, losses = [gross_profit_list, losses_list]\
108
112
  .map{|x| sum(x, :profit)}
113
+ pct_gross_profit = (100 / (invested / gross_profit)).round(2)
114
+ pct_losses = (100 / (invested / losses)).round(2)
109
115
 
110
116
  h = {
111
117
  title: title,
@@ -115,9 +121,10 @@ class MyCoins
115
121
  invested: invested,
116
122
  value: sum(a, ('value_' + @mycurrency.downcase).to_sym),
117
123
  gross_profit: gross_profit.round(2), losses: losses.round(2),
118
- pct_gross_profit: (100 / (invested / gross_profit)).round(2),
119
- pct_losses: (100 / (invested / losses)).round(2),
120
- net_profit: sum(a, :profit).round(2)
124
+ pct_gross_profit: pct_gross_profit,
125
+ pct_losses: pct_losses,
126
+ net_profit: sum(a, :profit).round(2),
127
+ pct_net_profit: pct_gross_profit + pct_losses
121
128
  }
122
129
 
123
130
  @portfolio = OpenStruct.new(h)
@@ -143,9 +150,9 @@ class MyCoins
143
150
  title: x.title,
144
151
  rank: coin.rank.to_i,
145
152
  qty: "%.2f" % x.qty,
146
- btc_price: "%.4f" % x.btc_price,
147
- paid: "%.2f" % paid,
148
- value_usd: "%.2f" % value_usd
153
+ btc_price: "%.5f" % x.btc_price,
154
+ paid: "%.0f" % paid,
155
+ value_usd: "%.0f" % value_usd
149
156
  }
150
157
 
151
158
  mycurrency = if @mycurrency and @mycurrency != 'USD' then
@@ -163,6 +170,7 @@ class MyCoins
163
170
 
164
171
  end
165
172
 
173
+ puts 'local_value: ' + local_value.inspect if @debug
166
174
  value = (local_value || value_usd)
167
175
 
168
176
  h2 = {
@@ -194,10 +202,10 @@ class MyCoins
194
202
  out << tf.display
195
203
 
196
204
  out << "\n\nInvested: %.2f %s" % [r.invested, @mycurrency]
197
- out << "\n\nGross profit: %.2f %s (%%%.2f)" % \
205
+ out << "\n\nGross profit: %.2f %s (%.2f%%)" % \
198
206
  [r.gross_profit, @mycurrency, r.pct_gross_profit]
199
- out << "\nLosses: %.2f %s (%%%.2f)" % [r.losses, @mycurrency, r.pct_losses]
200
- out << "\n\nNet profit: %.2f %s" % [r.net_profit, @mycurrency]
207
+ out << "\nLosses: %.2f %s (%.2f%%)" % [r.losses, @mycurrency, r.pct_losses]
208
+ out << "\n\nNet profit: %.2f %s (%.2f%%)" % [r.net_profit, @mycurrency, r.pct_net_profit]
201
209
  out << "\nCurrent value: %.2f %s" % [r.value, @mycurrency]
202
210
  out
203
211
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mycoins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file