winds-up-client 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/winds-up-client +2 -0
- data/lib/winds-up-client.rb +47 -6
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 604135a06e9e5d58e26990fcd1e174095f70f99755dfd6f874e499314b056086
|
4
|
+
data.tar.gz: 49ab8a197fc430bbf5523e507ae03c7c863f7dc0cf0fd6189706afd1e1eccce4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad6ba01d16c9177fa45b75aec4fec7eeb2bb46b5bb4224348f250b5f65a18cf1fb1f3c5e49ab7ca2502500547080abc806964ee62c998743e1c09c612652b90f
|
7
|
+
data.tar.gz: fcfd8e0609c03cea95f73f0c217ccb83c98820dfba860595f5732387cba7e23f36aad87308fec458198197e3bf96694010bf10b8933fbfca55300c7c4f415d87
|
data/bin/winds-up-client
CHANGED
@@ -3,10 +3,12 @@ require 'winds-up-client'
|
|
3
3
|
require 'trollop'
|
4
4
|
WindsUpClient.new(Trollop::options do
|
5
5
|
opt :short, "short mode"
|
6
|
+
opt :ultrashort, "ultra short mode"
|
6
7
|
opt :lpass, "use lastpass-cli to retrieve credentials"
|
7
8
|
opt :user, "user", type: :string
|
8
9
|
opt :password, "password", type: :string
|
9
10
|
opt :sampling, "sampling factor for graphs", default: 2
|
10
11
|
opt :spot, "spot name", type: :string, default: nil
|
11
12
|
opt :nocolor, "no color"
|
13
|
+
opt :cache, "cache result for a minute"
|
12
14
|
end).display_favorite_spots
|
data/lib/winds-up-client.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'mechanize'
|
3
3
|
require 'date'
|
4
4
|
require 'json'
|
5
|
+
require 'yaml'
|
5
6
|
require 'paint'
|
6
7
|
|
7
8
|
class TerminalTable
|
@@ -76,15 +77,34 @@ class WindsUpClient
|
|
76
77
|
bar size, "*", :yellow
|
77
78
|
end
|
78
79
|
|
80
|
+
def to_arrows(cardinals)
|
81
|
+
{
|
82
|
+
se: "↖",
|
83
|
+
so: "↗",
|
84
|
+
no: "↘",
|
85
|
+
ne: "↙",
|
86
|
+
}.map { |name, value|
|
87
|
+
cardinals.sub!(name.to_s.upcase, value)
|
88
|
+
}
|
89
|
+
{
|
90
|
+
e: "←",
|
91
|
+
s: "↑",
|
92
|
+
o: "→",
|
93
|
+
n: "↓",
|
94
|
+
}.map { |name, value|
|
95
|
+
cardinals.sub!(name.to_s.upcase, value)
|
96
|
+
}
|
97
|
+
cardinals
|
98
|
+
end
|
79
99
|
def series_handlers
|
80
100
|
{
|
81
101
|
actual: (-> (x) {"#{low(x["low"])}#{high(x["high"] - x["low"])} #{(x["high"] + x["low"])/2}"}),
|
82
|
-
expected: (-> (x) {"#{ expected(x["y"])} #{x["y"]} #{x["o"]}"})
|
102
|
+
expected: (-> (x) {"#{ expected(x["y"])} #{x["y"]} #{to_arrows(x["o"])}"})
|
83
103
|
}
|
84
104
|
end
|
85
105
|
|
86
106
|
def spot_row spot
|
87
|
-
title = [spot[:title], spot[:wind]]
|
107
|
+
title = [spot[:title], to_arrows(spot[:wind])]
|
88
108
|
i = 0
|
89
109
|
rows = []
|
90
110
|
rows << title
|
@@ -107,22 +127,43 @@ class WindsUpClient
|
|
107
127
|
a.size > b.size ? join_rows_ordered(a, b) : join_rows_ordered(b, a)
|
108
128
|
end
|
109
129
|
|
110
|
-
def
|
130
|
+
def favorites_spots_text
|
131
|
+
result = ""
|
111
132
|
spots = favorites_spots
|
112
133
|
previous_rows = []
|
113
134
|
spots.each_with_index do |spot, i|
|
114
135
|
if @options[:spot].nil? or spot[:title].downcase.include?(@options[:spot])
|
115
136
|
if @options[:short]
|
116
|
-
|
137
|
+
result += "#{spot[:title]}: #{to_arrows(spot[:wind])}\n"
|
138
|
+
elsif @options[:ultrashort]
|
139
|
+
result += "#{spot[:title][0]} #{to_arrows(spot[:wind]).sub(" nds", "")} "
|
117
140
|
else
|
118
141
|
rows = spot_row spot
|
119
142
|
if i % 2 == 1
|
120
|
-
|
143
|
+
result += TerminalTable.new(:rows => join_rows(previous_rows, rows)).to_s
|
144
|
+
result += "\n"
|
121
145
|
end
|
122
146
|
previous_rows = rows
|
123
147
|
end
|
124
148
|
end
|
125
149
|
end
|
126
|
-
|
150
|
+
result += TerminalTable.new(:rows => previous_rows).to_s if spots.size % 2 == 1 and !@options[:short]
|
151
|
+
result + "\n"
|
152
|
+
end
|
153
|
+
|
154
|
+
def favorites_spots_text_with_cache
|
155
|
+
path = "#{ENV['HOME']}/.local/share/winds-up-client.cache"
|
156
|
+
if Time.now - File.mtime(path) > 60
|
157
|
+
File.write(path, favorites_spots_text)
|
158
|
+
end
|
159
|
+
File.read(path)
|
160
|
+
end
|
161
|
+
|
162
|
+
def display_favorite_spots
|
163
|
+
if @options[:cache]
|
164
|
+
puts favorites_spots_text_with_cache
|
165
|
+
else
|
166
|
+
puts favorites_spots_text
|
167
|
+
end
|
127
168
|
end
|
128
169
|
end
|