hackmac 1.4.1 → 1.5.0

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
  SHA256:
3
- metadata.gz: 52eecabaaacf4b30bdfd2c2d49ca2521d45dd81da1c75f1b3a02af4b94a0d01c
4
- data.tar.gz: d84925f226ff82966a7a42f21143ee273715f013ed7907ab3f28273797b241f6
3
+ metadata.gz: '0919dce412f314296c00fc6f8bf87bf142b90cef6a437c1a25839fffd58bfee2'
4
+ data.tar.gz: cb3447775d1e0bc7da5e9f3bf0792dbd0428cba875124a3ae9da8c0006daa0f3
5
5
  SHA512:
6
- metadata.gz: 0b13786a08e87c4f162d3ce6090115c286f3feaa476aedf354d94e6a74f4e4fb225769d4fb2a3c304eec4fa77423b96e19b5f401ee0631604e4fda816d1c51b8
7
- data.tar.gz: b6bb795279266902645e82382f253c050d2eb0d74c0f2c3ad91f7cf02334f28767727baa86b49d99d9c46081f987c3f12034330b87a7e6a4dd6a5581ef1f57fd
6
+ metadata.gz: f45f0701f57c0f7ff66c2d221275291645236d0f5591cfb569f37be457d3da85de796c0a75d4dfd23b76fbc5f3c3d707dcdc8d9ff6b5a008a06c3353aa590043
7
+ data.tar.gz: c343b4b6a791cfa69718a717a41b84c9fdd48e4c31d1562187511b0a450c6a4e41a3320a55e9adf16514a5f8e1ed8afd7df2753b732bf7b4fcbfc46d28bcc152
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.1
1
+ 1.5.0
data/hackmac.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: hackmac 1.4.1 ruby lib
2
+ # stub: hackmac 1.5.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "hackmac".freeze
6
- s.version = "1.4.1"
6
+ s.version = "1.5.0"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
@@ -2,22 +2,24 @@ require 'complex_config/shortcuts'
2
2
  require 'tins/xt/secure_write'
3
3
  require 'fileutils'
4
4
  require 'pathname'
5
+ require 'term/ansicolor'
5
6
 
6
7
  module Hackmac
7
8
  module Config
8
9
  extend FileUtils
9
10
  extend ComplexConfig::Provider::Shortcuts
11
+ extend Term::ANSIColor
10
12
 
11
13
  DEFAULT = File.read(File.join(File.dirname(__FILE__), 'hackmac.yml'))
12
14
 
13
- def self.load(path: ENV.fetch('CONFIG_PATH', '~/.config/hackmac/hackmac.yml'))
15
+ def self.load(path: ENV.fetch('HACKMAC_CONFIG', '~/.config/hackmac/hackmac.yml'))
14
16
  path = Pathname.new(path).expand_path
15
17
  mkdir_p path.dirname
16
18
  ComplexConfig::Provider.config_dir = path.dirname
17
19
  unless path.exist?
18
20
  File.secure_write(path.to_s, DEFAULT)
19
21
  end
20
- puts "Loading config from #{path.to_s.inspect}."
22
+ puts "Loading config from #{color(33) { path.to_s.inspect} }."
21
23
  ComplexConfig::Provider[path.basename.to_s.sub(/\..*?\z/, '')]
22
24
  end
23
25
  end
@@ -8,13 +8,12 @@ class Hackmac::Graph
8
8
  end
9
9
 
10
10
  def to_s
11
- ANSI.color(color) {
12
- ANSI.on_color(on_color) {
13
- styles.inject(char) { |c, s|
14
- ANSI.send(s) { c }
15
- }
16
- }
17
- }
11
+ result = ''
12
+ result << ANSI.color(color)
13
+ result << ANSI.on_color(on_color)
14
+ styles.each { |s| result << ANSI.send(s) }
15
+ result << char
16
+ result << ANSI.reset
18
17
  end
19
18
  end
20
19
 
data/lib/hackmac/graph.rb CHANGED
@@ -64,13 +64,14 @@ class Hackmac::Graph
64
64
  full_reset
65
65
  color = pick_color
66
66
  color_light = color.to_rgb_triple.to_hsl_triple.lighten(15) rescue color
67
- i = 0
67
+ @counter = -1
68
68
  @continue = true
69
69
  while @continue
70
+ @start = Time.now
70
71
  @full_reset and full_reset
71
72
  perform hide_cursor
72
73
 
73
- @data << @value.(i)
74
+ @data << @value.(@counter += 1)
74
75
  @data = data.last(columns)
75
76
 
76
77
  y_width = (data.max - data.min).to_f
@@ -103,6 +104,7 @@ class Hackmac::Graph
103
104
  perform_display_diff
104
105
  sleep_now
105
106
  end
107
+ rescue Interrupt
106
108
  ensure
107
109
  stop
108
110
  end
@@ -154,7 +156,12 @@ class Hackmac::Graph
154
156
  end
155
157
 
156
158
  def sleep_now
157
- sleep @sleep
159
+ duration = if @start
160
+ [ @sleep - (Time.now - @start).to_f, 0 ].max
161
+ else
162
+ @sleep
163
+ end
164
+ sleep duration
158
165
  end
159
166
 
160
167
  def perform_display_diff
@@ -162,7 +169,16 @@ class Hackmac::Graph
162
169
  unless @old_display && @old_display.dimensions == @display.dimensions
163
170
  @old_display = @display.dup.clear
164
171
  end
165
- perform @display - @old_display
172
+ diff = @display - @old_display
173
+ if ENV['DEBUG_BYTESIZE']
174
+ unless @last
175
+ STDERR.puts %w[ size duration ] * ?\t
176
+ else
177
+ STDERR.puts [ diff.size, (Time.now - @last).to_f ] * ?\t
178
+ end
179
+ @last = Time.now
180
+ end
181
+ perform diff
166
182
  @display, @old_display = @old_display.clear, @display
167
183
  perform move_to(lines, columns)
168
184
  end
data/lib/hackmac/utils.rb CHANGED
@@ -20,6 +20,7 @@ module Hackmac
20
20
  puts "✅ Command succeded!".green
21
21
  else
22
22
  puts "⚠️ Command #{cmd.inspect} failed with exit status #{$?.exitstatus}".on_red.white
23
+ exit $?.exitstatus
23
24
  end
24
25
  if verbose
25
26
  puts output.italic
@@ -1,6 +1,6 @@
1
1
  module Hackmac
2
2
  # Hackmac version
3
- VERSION = '1.4.1'
3
+ VERSION = '1.5.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hackmac
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank