winds-up-client 0.0.4 → 0.0.5
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 +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
|