winds-up-client 0.0.3 → 0.0.4

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
  SHA256:
3
- metadata.gz: 0c977484ed6f2ffb3fe271108f767cbdd0d8a63167f7f04b2fe70ba8db98e51e
4
- data.tar.gz: f58fe88b996714cdbdd813f5f9e3f043373b32209f1f2ad8a50e1023096b3617
3
+ metadata.gz: 1c01dc1d45a5392f80552857adfb4f08ed4e814678005968cf74f3a7d995c9a2
4
+ data.tar.gz: 5f6897b47dc90b1c316c45cf954470d0e8a21ee69ad68cf253cb1a49279378d1
5
5
  SHA512:
6
- metadata.gz: 4e6701714d7b10e93c0ef6448efdee550380817049a1de046575d9c9498b1954427e604579bf661f440f98a39c3f9eedeea7c8d50348ca2b3cd8c614e4a617a3
7
- data.tar.gz: 9fbd86523722140574345da7ffdea4a4bb1258bcbdf79c4b08bee3d62ed16de3429bd4f4ca0af62f46658f1cc21306405170f84224b07ccc63af86c72e9a4097
6
+ metadata.gz: e99af979e3c415a7589bb31aa7bec8e71f0bf6d930fa5c0bed84529d6a39d627ff69caa68318ed6bc8e9e956b6b8582d2447e082fa4e3d30e93757e72adddf22
7
+ data.tar.gz: 9736db772e497a813793f156d7793ef1136e3c101bd49cb1665c4347b390b56a5145bfbd1aab77b9019bd52ac5e6524b53cf70b2dd990a7ac049f4112c4748da
data/bin/winds-up-client CHANGED
@@ -2,8 +2,11 @@
2
2
  require 'winds-up-client'
3
3
  require 'trollop'
4
4
  WindsUpClient.new(Trollop::options do
5
- opt :short
6
- opt :lpass
7
- opt :user, "user", :type => :string
8
- opt :password, "password", :type => :string
5
+ opt :short, "short mode"
6
+ opt :lpass, "use lastpass-cli to retrieve credentials"
7
+ opt :user, "user", type: :string
8
+ opt :password, "password", type: :string
9
+ opt :sampling, "sampling factor for graphs", default: 2
10
+ opt :spot, "spot name", type: :string, default: nil
11
+ opt :nocolor, "no color"
9
12
  end).display_favorite_spots
@@ -2,7 +2,22 @@
2
2
  require 'mechanize'
3
3
  require 'date'
4
4
  require 'json'
5
- require 'terminal-table'
5
+ require 'paint'
6
+
7
+ class TerminalTable
8
+
9
+ def initialize attributes
10
+ @rows = attributes[:rows]
11
+ end
12
+
13
+ def to_s
14
+ return "" if @rows.size == 0
15
+ widths = @rows.reduce(@rows[0].size.times.to_a.map { 0 } ) { |memo, row| memo.each_with_index.map { |item, i| [row.size > i ? row[i].size : 0, item].max } }
16
+ @rows.map do |row|
17
+ row.each_with_index.map { |item, i| "#{item}#{" " * (widths[i] - item.size)}" }.join(" ")
18
+ end.join("\n")
19
+ end
20
+ end
6
21
 
7
22
  class WindsUpClient
8
23
 
@@ -41,22 +56,41 @@ class WindsUpClient
41
56
  spots = page.search("div.mt3").reverse.map { |spot| parse_spot spot }
42
57
  end
43
58
 
59
+ def bar size, alternate, bg
60
+ if !@options[:nocolor]
61
+ Paint[(" " * size), nil, bg]
62
+ else
63
+ alternate * size
64
+ end
65
+ end
66
+
67
+ def low size
68
+ bar size, "=", :blue
69
+ end
70
+
71
+ def high size
72
+ bar size, "-", :green
73
+ end
74
+
75
+ def expected size
76
+ bar size, "*", :yellow
77
+ end
78
+
44
79
  def series_handlers
45
80
  {
46
- actual: (-> (x) {"#{"=" * x["low"]}#{"-" * (x["high"] - x["low"])} #{(x["high"] + x["low"])/2}"}),
47
- expected: (-> (x) {"#{ "*" * x["y"]} #{x["y"]} #{x["o"]}"})
81
+ 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"]}"})
48
83
  }
49
84
  end
50
85
 
51
86
  def spot_row spot
52
87
  title = [spot[:title], spot[:wind]]
53
88
  i = 0
54
- sampling = 2
55
89
  rows = []
56
90
  rows << title
57
91
  series_handlers.each do |kind, handler|
58
92
  spot[:series][kind].each do |value|
59
- rows << [Time.at(value["x"] / 1000).to_datetime.to_s.gsub(/\+.*/, ""), handler.call(value)] if i % sampling == 0
93
+ rows << [Time.at(value["x"] / 1000).to_datetime.to_s.gsub(/\+.*/, ""), handler.call(value)] if i % @options[:sampling] == 0
60
94
  i += 1
61
95
  end
62
96
  end
@@ -77,16 +111,18 @@ class WindsUpClient
77
111
  spots = favorites_spots
78
112
  previous_rows = []
79
113
  spots.each_with_index do |spot, i|
80
- if @options[:short]
81
- puts "#{spot[:title]}: #{spot[:wind]}"
82
- else
83
- rows = spot_row spot
84
- if i % 2 == 1
85
- puts Terminal::Table.new :rows => join_rows(previous_rows, rows)
86
- end
87
- previous_rows = rows
88
- end
114
+ if @options[:spot].nil? or spot[:title].downcase.include?(@options[:spot])
115
+ if @options[:short]
116
+ puts "#{spot[:title]}: #{spot[:wind]}"
117
+ else
118
+ rows = spot_row spot
119
+ if i % 2 == 1
120
+ puts TerminalTable.new :rows => join_rows(previous_rows, rows)
121
+ end
122
+ previous_rows = rows
123
+ end
124
+ end
89
125
  end
90
- puts Terminal::Table.new :rows => previous_rows if spots.size % 2 == 1 and !@options[:short]
126
+ puts TerminalTable.new :rows => previous_rows if spots.size % 2 == 1 and !@options[:short]
91
127
  end
92
128
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: winds-up-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olivier Abdesselam
@@ -53,33 +53,33 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: terminal-table
56
+ name: trollop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.8'
61
+ version: '2.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.8'
68
+ version: '2.1'
69
69
  - !ruby/object:Gem::Dependency
70
- name: trollop
70
+ name: paint
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.1'
75
+ version: '2.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.1'
82
+ version: '2.0'
83
83
  description: Allows to access winds-up.com on the CLI
84
84
  email:
85
85
  executables: