trades 0.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/trades.rb +20 -26
- metadata +2 -2
data/lib/trades.rb
CHANGED
@@ -6,17 +6,18 @@ require 'colored'
|
|
6
6
|
class Trades
|
7
7
|
def initialize(args = [])
|
8
8
|
begin
|
9
|
-
puts "Connecting..."
|
9
|
+
puts "Connecting to bitcoincharts.com..."
|
10
10
|
@socket = TCPSocket.open("bitcoincharts.com", 27007)
|
11
|
-
@
|
11
|
+
@markets = []
|
12
12
|
@last_prices = {}
|
13
13
|
|
14
|
-
# Convert the
|
15
|
-
|
16
|
-
args.
|
14
|
+
# Convert the market names to lowercase
|
15
|
+
# (CHANGE THIS TO CASE INSENSITIVE REGEX)
|
16
|
+
args.each do |x| @markets.push(x.downcase) end
|
17
|
+
args.clear # no need to keep them in memory
|
17
18
|
|
18
|
-
# thUSD | 2011-06-27 23:00:55 | USD | 17.05
|
19
|
-
puts "Exchange | Date and time | Currency | Price
|
19
|
+
# thUSD | 2011-06-27 23:00:55 | USD | 17.05 | 0.5 |
|
20
|
+
puts "Exchange | Date and time | Currency | Price | Volume |"
|
20
21
|
|
21
22
|
self.loop
|
22
23
|
rescue
|
@@ -26,31 +27,24 @@ class Trades
|
|
26
27
|
|
27
28
|
def loop
|
28
29
|
while data = @socket.gets do
|
29
|
-
if data.length > 0
|
30
|
+
if data.length > 0 then
|
30
31
|
j = JSON.parse(data.strip.tr("\x00", '')) # Delete all \x00 weirdness
|
31
32
|
|
32
|
-
if @
|
33
|
-
line = j['symbol'].ljust(15) + "| "
|
34
|
-
line += Time.at(j['timestamp']).strftime("%Y-%m-%d %H:%M:%S")
|
35
|
-
ljust(
|
36
|
-
line += "| " + j['currency'].ljust(9) + "| "
|
33
|
+
if @markets.empty? or @markets.include?(j['symbol'].downcase) then
|
34
|
+
line = j['symbol'].ljust(15) + "| " # market
|
35
|
+
line += Time.at(j['timestamp']).strftime("%Y-%m-%d %H:%M:%S") + " | "
|
36
|
+
line += j['currency'].ljust(9) + "| " # currency
|
37
37
|
|
38
|
-
#
|
38
|
+
# Price: display higher price in green / lower price in red
|
39
39
|
current_price = j['price'].round(2)
|
40
|
-
last_price = @last_prices[j['symbol']].to_f # Its
|
40
|
+
last_price = @last_prices[j['symbol']].to_f # Its nil on startup
|
41
|
+
@last_prices[j['symbol']] = current_price # store for next comparison
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
line += current_price.to_s.ljust(7).red
|
46
|
-
else
|
47
|
-
line += current_price.to_s.ljust(7)
|
48
|
-
end
|
43
|
+
price = current_price.to_s.ljust(9)
|
44
|
+
price = price.green if current_price > last_price unless last_price.zero?
|
45
|
+
price = price.red if current_price < last_price
|
49
46
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
line += "| " + j['volume'].round(2).to_s.ljust(7) + "|"
|
47
|
+
line += price + "| " + j['volume'].round(2).to_s.ljust(9) + " |"
|
54
48
|
|
55
49
|
puts line
|
56
50
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: trades
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version:
|
5
|
+
version: 0.2.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Waxjar
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-04 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|