termclock 0.4.0 → 0.6.0

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: 97954b7ee94050e29c1d43619a147275d89a731d8e317e84af0afa59e6958961
4
- data.tar.gz: f5b29cef16329eb7db1442a0073b32cdaef8563fa21abc9dca4d36de28925441
3
+ metadata.gz: 3fcea2cc01afe31bc00a62ed5438657612e909bb4db2510b56a2371a5fa4ecd1
4
+ data.tar.gz: 662d05beb745b1e3fc046f6ddfc2b53f3781dd8dc06efd74228321390bdc5d1f
5
5
  SHA512:
6
- metadata.gz: e707c28bb571a7f6fe4655d0b9f24217361b64ff2489ee0f23d1475ecda543d85186bd6b8b476ae7247d088428baa2f424b4d0fafa507d1057bced4f626e708d
7
- data.tar.gz: bdb1086fbb90979c98084f0fdcd8c4a0cbdf4ff689dd623d39c61079166a29525e2c07881b080838c3b0535a1c98c8db966f987253a6e9e14837f0700120c274
6
+ metadata.gz: d57447038d164806c56090fd13716100612bc04d946fd5be2cdefc7ee32d683ff06171af1ef33df73541d207b9244c6e47e93a4b674b82b40165b78d2ca114e0
7
+ data.tar.gz: e9044dd6e002d119c260119ac2e74d2ed770371448eca3100d88f147f7c0246b6f8cdd075736058f72dc843ae5ca78d7d10b64f834c86ba5e56d313b447aac9f
data/exe/termclock CHANGED
@@ -14,11 +14,12 @@ def version(logo_colour)
14
14
  _v[vl_2..-1].gradient(logo_colour[1], logo_colour[2], underline: true, bold: true)
15
15
  end
16
16
 
17
- logo_colour = [
18
- %w(ff0 f55 55f),
19
- %w(fa0 f5a 55f),
20
- %w(3eb 55f 55f),
21
- ].sample.map(&Termclock.method(:hex2rgb))
17
+ unless STDOUT.tty?
18
+ IO.undef_method(:winsize)
19
+ IO.define_method(:winsize) { [100, 100] }
20
+ end
21
+
22
+ LOGO_COLOUR = %w(ff0 f55 55f).map(&Termclock.method(:hex2rgb))
22
23
 
23
24
  if ARGV.any? { |x| x[/\A\-(\-help|h)\z/] }
24
25
  puts <<~EOF
@@ -36,36 +37,42 @@ if ARGV.any? { |x| x[/\A\-(\-help|h)\z/] }
36
37
  --character=|char=\t\tDraws specified character
37
38
  --clean\t\t\t\tJust run the clean bare clock
38
39
  --colour=|-c=\t\t\tSpecify hex colour (4 colours)
39
- \t\t\t\t[ with or without # ]
40
- --text-colour|-tc\t\tSpecify text colour (2 colours)
41
- \t\t\t\t[ with or without # ]
40
+ --text-colour=|-tc=\t\tSpecify text colour (2 colours)
41
+
42
+ \u2B22 \e[3mColours has to be hex, 3 or 6 characters with or
43
+ without the leading # in front\e[0m
42
44
 
43
45
  \e[1m3. Information:\e[0m
44
46
  --no-date|-nd\t\t\tShows no date
45
47
  --no-message|-nm\t\tShows no messages
46
48
  --no-sysinfo|-ni\t\tShows no system info
47
- --refresh|r\t\t\tSpecify delay or refresh time
49
+ --refresh=|r=\t\t\tSpecify delay or refresh time
48
50
  --no-logo|-nl\t\t\tDon't show the logo at the bottom
49
51
 
50
- \e[1m4. Formats:\e[0m
52
+ \e[1m4. Antiflicker:\e[0m
53
+ --antiflicker|-af\t\tDon't flicker terminal
54
+
55
+ \u2B22 \e[3mIf refresh time is low or terminal is slow, use this option\e[0m
56
+
57
+ \e[1m5. Formats:\e[0m
51
58
  --date-format=|-df=\t\tSpecify the date format
52
59
  --time-format=|-tf=\t\tSpecify the time format
53
60
 
54
61
  Usually the format looks like this:
55
62
  %H:%M:%S:%2N or %d %B, %Y
56
63
 
57
- \e[3mRun `date --help` to know more formats\e[0m
64
+ \u2B22 \e[3mRun `date --help` to know more formats\e[0m
58
65
 
59
66
  Supported characters are 0 - 9, a - z, /, \\, !, %, and |.
60
67
 
61
- #{version(logo_colour)}
68
+ #{version(LOGO_COLOUR)}
62
69
  EOF
63
70
 
64
71
  exit 0
65
72
  end
66
73
 
67
74
  if ARGV.any? { |x| x[/\A\-(-version|v)\z/] }
68
- puts version(logo_colour)
75
+ puts version(LOGO_COLOUR)
69
76
  exit 0
70
77
  end
71
78
 
@@ -106,6 +113,7 @@ begin
106
113
 
107
114
  bold = ARGV.any? { |x| x[/\A\-(\-bold|b)\z/] }
108
115
  italic = ARGV.any? { |x| x[/\A\-(\-italic|i)\z/] }
116
+ anti_flicker = ARGV.any? { |x| x[/\A\-(\-antiflicker|af)\z/] }
109
117
 
110
118
  no_print_info = ARGV.any? { |x| x[/\A\-(\-no\-sysinfo|ni)\z/] }
111
119
  no_logo = ARGV.any? { |x| x[/\A\-(\-no\-logo|nl)\z/] }
@@ -137,10 +145,13 @@ begin
137
145
  no_logo: no_logo,
138
146
  time_format: time_format,
139
147
  date_format: date_format,
140
- logo_colour: logo_colour
148
+ logo_colour: LOGO_COLOUR,
149
+ anti_flicker: anti_flicker
141
150
  )
142
151
  rescue Interrupt, SignalException
143
152
  print "\e[H\e[2J\e[3J"
153
+ # rescue Errno::ENOTTY
154
+ # abort "This should be run on a TTY! Also please don't pipe or redirect the output!"
144
155
  ensure
145
156
  print "\e[?25h"
146
157
  end
data/lib/termclock.rb CHANGED
@@ -3,7 +3,9 @@ require 'io/console'
3
3
  require_relative "termclock/version"
4
4
 
5
5
  module Termclock
6
+ GC_COMPACT_TIME = 7200
6
7
  CLEAR = "\e[H\e[2J\e[3J".freeze
8
+ ANTIFLICKER = "\e[J\e[1;1H".freeze
7
9
  NEWLINE = ?\n.freeze
8
10
  SPACE = ?\s.freeze
9
11
  TAB = ?\t.freeze
@@ -9,9 +9,12 @@ module Termclock
9
9
  time_format: "%H %M %S %2N",
10
10
  date_format: '%a, %d %B %Y',
11
11
  no_logo: false,
12
+ anti_flicker: false,
12
13
  logo_colour: [Termclock.hex2rgb('ff0'), Termclock.hex2rgb('f55'), Termclock.hex2rgb('55f')]
13
14
  )
14
15
 
16
+ clear_character = anti_flicker ? ANTIFLICKER : CLEAR
17
+
15
18
  generate = proc do |start, stop, n = 5|
16
19
  r_op = r_val = nil
17
20
  ary = []
@@ -31,8 +34,7 @@ module Termclock
31
34
  ary
32
35
  end
33
36
 
34
- gc_compact, gc_compacted = GC.respond_to?(:compact), Time.now.to_i + 7200
35
- print CLEAR
37
+ gc_compact, gc_compacted = GC.respond_to?(:compact), Time.now.to_i + GC_COMPACT_TIME
36
38
 
37
39
  r1, g1, b1 = *colour1
38
40
  r2, g2, b2 = *colour2
@@ -58,19 +60,11 @@ module Termclock
58
60
  tc1 = textcolour1 ? hex2rgb(textcolour1) : hex2rgb('5555ff')
59
61
  tc2 = textcolour2 ? hex2rgb(textcolour2) : hex2rgb('3ce3b5')
60
62
 
61
- cpu_usage = 0
62
- cpu_usage_t = Thread.new { }
63
-
64
- current_net_usage = ''
65
- current_net_usage_t = Thread.new { }
66
-
67
- message_time = Time.now.to_i - 5
68
63
  message_counter = -1
69
64
  message = ''
70
65
  message_final = ''
71
66
  message_align = 0
72
67
  message_temp = ''
73
- point_five_tick = 0
74
68
 
75
69
  date, info = '', ''
76
70
 
@@ -114,22 +108,25 @@ module Termclock
114
108
  chop_message = 0
115
109
  deviation = 0
116
110
 
111
+ time_seperators = [?:, ?$]
112
+ time_seperator = time_seperators[0]
113
+ point_five_tick = -0.5
114
+
115
+ height, width = *STDOUT.winsize
116
+ height2, width2 = *STDOUT.winsize
117
+
118
+ print CLEAR
119
+
117
120
  while true
118
121
  monotonic_time_1 = Process.clock_gettime(Process::CLOCK_MONOTONIC)
119
122
  time_now = Time.now
120
123
  height, width = *STDOUT.winsize
121
124
 
122
- if time_now.to_f./(0.5).to_i.even?
123
- unless point_five_tick == 1
124
- point_five_tick = 1
125
- splitter = ?:.freeze
126
- clock_emoji.rotate!
127
- end
128
- else
129
- unless point_five_tick == 0
130
- point_five_tick = 0
131
- splitter = ?$.freeze
132
- end
125
+ if time_now.to_f > point_five_tick
126
+ point_five_tick = time_now.to_f + 0.5
127
+ time_seperators.rotate!
128
+ clock_emoji.rotate!
129
+ time_seperator = time_seperators[0]
133
130
  end
134
131
 
135
132
  unless no_logo
@@ -167,18 +164,14 @@ module Termclock
167
164
  )
168
165
  end
169
166
 
170
- if print_info
171
- info = system_info(width).gradient(
172
- tc1, tc2, bold: bold, italic: italic
173
- )
174
- end
167
+ info = system_info(width, tc1, tc2, bold, italic) if print_info
175
168
 
176
169
  if print_date
177
170
  date = time_now.strftime(date_format).center(width)
178
171
  .gradient(tc1, tc2, bold: bold, italic: italic, exclude_spaces: true)
179
172
  end
180
173
 
181
- time = time_now.strftime(time_format).split.join(splitter)
174
+ time = time_now.strftime(time_format).split.join(time_seperator)
182
175
  art = Termclock::ParseCharacters.display(time).lines
183
176
 
184
177
  art_aligned = art.each_with_index do |x, i|
@@ -192,21 +185,27 @@ module Termclock
192
185
  end.join
193
186
 
194
187
  vertical_gap = "\e[#{height./(2.0).-(art.length / 2.0).to_i + 1}H"
188
+ final_output = "#{info}#{vertical_gap}#{art_aligned}\n#{date}\n\n\e[K#{message_final}#{term_clock_v}"
189
+
190
+ if anti_flicker && (height != height2 || width != width2)
191
+ height2, width2 = *STDOUT.winsize
192
+ print CLEAR
193
+ end
195
194
 
196
- print "#{CLEAR}#{info}#{vertical_gap}#{art_aligned}\n#{date}\n\n#{message_final}#{term_clock_v}"
195
+ print "#{clear_character}#{final_output}"
197
196
 
198
197
  if gc_compact && time_now.to_i > gc_compacted
199
198
  GC.compact
200
- gc_compacted = time_now.to_i + 7200
199
+ gc_compacted = time_now.to_i + GC_COMPACT_TIME
201
200
  end
202
201
 
203
202
  monotonic_time_2 = Process.clock_gettime(Process::CLOCK_MONOTONIC)
204
203
  time_diff = monotonic_time_2 - monotonic_time_1
205
- sleep_time = refresh.-(time_diff + EPSILON + deviation)
204
+ sleep_time = refresh.-(time_diff + deviation)
206
205
  sleep_time = 0 if sleep_time < 0
207
206
 
208
- deviation = Process.clock_gettime(Process::CLOCK_MONOTONIC) - monotonic_time_2
209
207
  sleep(sleep_time)
208
+ deviation = Process.clock_gettime(Process::CLOCK_MONOTONIC).-(monotonic_time_2 + sleep_time + EPSILON)
210
209
  end
211
210
  end
212
211
  end
@@ -1,4 +1,12 @@
1
1
  module Termclock
2
+ FILESYSTEM, FILESYSTEM_LABEL = if LS::FS.stat('/')[:blocks].to_i == 0
3
+ _pwd = Dir.pwd
4
+ pwd = _pwd.length > 8 ? _pwd[0..5] + '...' : _pwd
5
+ [?..freeze, pwd]
6
+ else
7
+ [?/.freeze, ?/.freeze]
8
+ end.freeze
9
+
2
10
  @@cpu_usage = 0
3
11
  @@cpu_usage_t = Thread.new { }.join
4
12
 
@@ -6,13 +14,11 @@ module Termclock
6
14
  @@current_net_usage_t = Thread.new { }.join
7
15
 
8
16
  class << self
9
- def system_info(width)
17
+ def system_info(width, tc1, tc2, bold, italic)
10
18
  unless @@cpu_usage_t.alive?
11
19
  @@cpu_usage_t = Thread.new {
12
20
  _cpu_usage = LS::CPU.usage(0.25)
13
- _cpu_usage_i = _cpu_usage.to_i
14
-
15
- @@cpu_usage = "%0.2f" % _cpu_usage
21
+ @@cpu_usage = _cpu_usage ? "%0.2f".freeze % _cpu_usage : nil
16
22
  }
17
23
  end
18
24
 
@@ -20,24 +26,39 @@ module Termclock
20
26
  @@current_net_usage_t = Thread.new do
21
27
  _m = LS::Net.current_usage(0.25)
22
28
 
23
- _dl = LS::PrettifyBytes.convert_short_decimal(_m[:received], precision: 1)
24
- _ul = LS::PrettifyBytes.convert_short_decimal(_m[:transmitted], precision: 1)
29
+ _dl = _m[:received]
30
+ _ul = _m[:transmitted]
25
31
 
26
- @@current_net_usage = "\u{1F4CA} Curr. DL/UL: #{sprintf "%-8s", _dl} | #{sprintf "%8s", _ul}"
32
+ @@current_net_usage = if _dl && _ul
33
+ dl = LS::PrettifyBytes.convert_short_decimal(_dl)
34
+ ul = LS::PrettifyBytes.convert_short_decimal(_ul)
35
+
36
+ "\u{1F4CA} Curr. DL/UL: #{"%-9s" % dl} | #{ "%9s" % ul}"
37
+ else
38
+ EMPTY
39
+ end
27
40
  end
28
41
  end
29
42
 
30
- cpu = "\u{1F9E0} CPU: #{sprintf "%5s", @@cpu_usage}% (#{LS::CPU.count_online} / #{LS::CPU.count})"
43
+ cpu = if @@cpu_usage
44
+ "\u{1F9E0} CPU: #{"%6s" % @@cpu_usage}% (#{LS::CPU.count_online}/#{LS::CPU.count})"
45
+ else
46
+ EMPTY
47
+ end
31
48
 
32
49
  battery = if LS::Battery.present?
33
50
  stat = LS::Battery.stat
51
+ charge = stat[:charge].to_i
52
+
34
53
  emoji, plug = "\u{1F50B}".freeze, EMPTY
35
54
 
36
55
  if LS::Battery.charging?
37
56
  emoji, plug = "\u{1F4A1}".freeze, "\u{1F50C} ".freeze
38
57
  end
39
58
 
40
- "#{emoji} Battery: #{stat[:charge].to_i}% (#{plug}#{stat[:status]})"
59
+ lives = "\u2665 ".freeze.*(charge.fdiv(20).ceil).chop
60
+
61
+ "#{emoji} Battery: #{charge}% #{lives} (#{plug}#{stat[:status]})"
41
62
  else
42
63
  EMPTY
43
64
  end
@@ -48,79 +69,131 @@ module Termclock
48
69
  _m = LS::Net.total_bytes
49
70
  ip = "\u{1F30F} IP Addr: #{LS::Net.ipv4_private}"
50
71
 
51
- net_usage = "\u{1F4C8} Totl. DL/UL: #{sprintf "%-8s", LS::PrettifyBytes.convert_short_decimal(_m[:received], precision: 1)}"\
52
- " | #{sprintf "%8s", LS::PrettifyBytes.convert_short_decimal(_m[:transmitted], precision: 1)}"
72
+ _received = _m[:received]
73
+ _transmitted = _m[:transmitted]
74
+
75
+ tot_received = _received ? "\u{1F4C8} Totl. DL/UL: #{'%-9s'.freeze % LS::PrettifyBytes.convert_short_decimal(_m[:received])}" : nil
76
+ tot_transmitted = _transmitted ? " | #{'%9s'.freeze % LS::PrettifyBytes.convert_short_decimal(_transmitted)}" : nil
77
+
78
+ net_usage = if tot_received && tot_transmitted
79
+ tot_received + tot_transmitted
80
+ else
81
+ EMPTY
82
+ end
53
83
 
54
84
  _m = LS::Memory.stat
55
85
  _m.default = 0
56
86
 
57
87
  memory = "\u{1F3B0} Mem: #{LS::PrettifyBytes.convert_short_decimal(_m[:used] * 1000)}"\
58
88
  " / #{LS::PrettifyBytes.convert_short_decimal(_m[:total] * 1000)}"\
59
- " (#{_m[:percent_used]}%)"
89
+ " (#{"%.2f" % _m[:percent_used]}%)"
60
90
 
61
91
  _m = LS::Swap.stat
62
92
  _m.default = 0
63
93
 
64
94
  swap = "\u{1F300} Swap: #{LS::PrettifyBytes.convert_short_decimal(_m[:used] * 1000)}"\
65
95
  " / #{LS::PrettifyBytes.convert_short_decimal(_m[:total] * 1000)}"\
66
- " (#{_m[:percent_used]}%)"
96
+ " (#{"%.2f" % _m[:percent_used]}%)"
67
97
 
68
- _m = LS::Filesystem.stat('/')
98
+ _m = LS::Filesystem.stat(FILESYSTEM)
69
99
  _m.default = 0
70
100
 
71
- fs = "\u{1F4BD} FS: #{LS::PrettifyBytes.convert_short_decimal(_m[:used])}"\
101
+ fs = "\u{1F4BD} FS (#{FILESYSTEM_LABEL}): #{LS::PrettifyBytes.convert_short_decimal(_m[:used])}"\
72
102
  " / #{LS::PrettifyBytes.convert_short_decimal(_m[:total])}"\
73
- " (#{_m[:used].*(100).fdiv(_m[:total]).round(2)}%)"
103
+ " (#{"%.2f" % _m[:used].*(100).fdiv(_m[:total]).round(2)}%)"
74
104
 
75
105
  pt = LS::Process.types.values
76
106
 
77
- process = "\u{1F9EE} Process: T:#{sprintf "%4s", LS::Process.count}|"\
78
- "R:#{sprintf "%3s", pt.count(:running)}|"\
79
- "S:#{sprintf "%3s", pt.count(:sleeping)}|"\
80
- "I:#{sprintf "%3s", pt.count(:idle)}"
107
+ process = if pt.length > 0
108
+ "\u{1F3ED} Process: T:#{"%4s" % pt.length}|"\
109
+ "R:#{"%3s" % pt.count(:running)}|"\
110
+ "S:#{"%3s" % pt.count(:sleeping)}|"\
111
+ "I:#{"%3s" % pt.count(:idle)}"
112
+ else
113
+ EMPTY
114
+ end
81
115
 
82
- _os_v = LS::OS.version
83
- os_v = unless _os_v.empty?
84
- " (#{_os_v})"
116
+ @@os_v ||= unless LS::OS.version.empty?
117
+ " (#{LS::OS.version})"
85
118
  else
86
119
  EMPTY
87
120
  end
88
121
 
89
- os = "\u{1F427} Distrib: #{LS::OS.distribution} #{LS::OS.machine}#{os_v}"
122
+ @@os ||= "\u{1F427} Distrib: #{LS::OS.distribution} #{LS::OS.machine}#{@@os_v}"
123
+
124
+ _temp_uptime = LS::OS.uptime
125
+
126
+ _uptime = unless _temp_uptime.empty?
127
+ _temp_uptime
128
+ else
129
+ _u = LS::OS.uptime_i
130
+ {
131
+ hour: _u / 3600,
132
+ minute: _u % 3600 / 60,
133
+ second: _u % 3600 % 60,
134
+ jiffy: 0
135
+ }
136
+ end
90
137
 
91
- _uptime = LS::OS.uptime
92
138
  _second = _uptime[:second]
93
139
  _second_i = _second.to_i
94
140
 
95
141
  hour = "%02d" % _uptime[:hour]
96
142
  minute = "%02d" % _uptime[:minute]
97
- second = "%02d" % _second_i
98
- ms = "%02d" % _second.-(_second_i).*(100)
143
+ second = "%02d" % _uptime[:second]
144
+ jiffy = "%02d" % _uptime[:jiffy]
145
+
146
+ uptime = "\u{1F3A1} Uptime: #{hour}:#{minute}:#{second}:#{jiffy} (#{LS::OS.uptime_i}s)"
99
147
 
100
- uptime = "\u{1F3A1} Uptime: #{hour}:#{minute}:#{second}:#{ms} (#{LS::OS.uptime_i}s)"
148
+ _loadavg = LS::Sysinfo.loads.map! { |x| "%.2f" % x }
149
+ loadavg = "\u{1F525} LoadAvg: 1m #{_loadavg[0]}|5m #{_loadavg[1]}|15m #{_loadavg[2]}"
101
150
 
102
- _loadavg = LS::Sysinfo.loads.map! { |x| sprintf("%.2f", x) }
103
- loadavg = "\u{1F9FA} LoadAvg: 1m #{_loadavg[0]}|5m #{_loadavg[1]}|15m #{_loadavg[2]}"
151
+ all_info = []
152
+ max_l = 0
153
+ i = -1
104
154
 
105
- all_info = [
155
+ [
106
156
  user, hostname,
107
- os, battery,
157
+ @@os, battery,
108
158
  cpu, ip,
109
159
  memory, @@current_net_usage,
110
160
  swap, net_usage,
111
161
  fs, process,
112
162
  uptime, loadavg
113
- ].map(&:to_s).reject(&:empty?)
114
- max_l = 0
115
-
116
- all_info.each_with_index { |x, i|
117
- max_l = x.length if i.odd? && x.length > max_l
163
+ ].each { |x|
164
+ unless x.empty?
165
+ all_info << x
166
+ i += 1
167
+
168
+ if i.odd?
169
+ _x_len = x.length
170
+ max_l = _x_len if max_l < _x_len
171
+ end
172
+ end
118
173
  }
119
174
 
120
175
  max_l += 4
121
176
 
122
177
  all_info.each_slice(2).map { |x, y|
123
- "\s#{x}#{SPACE.*(width.-(x.length + max_l).abs)}#{y}"
178
+ _diff = width.-(x.length + max_l)
179
+ _diff = 0 if _diff < 1
180
+ y_to_s = y.to_s
181
+
182
+ padding = "#{SPACE * _diff}"
183
+ str = SPACE + x + padding + y_to_s
184
+
185
+ grads = SPACE + x.gradient(tc1, tc2, bold: bold, italic: italic) +
186
+ padding +
187
+ y_to_s.gradient(tc1, tc2, bold: bold, italic: italic)
188
+
189
+ len = str.chars.map { |x|
190
+ _x = x.bytesize./(2)
191
+ _x == 0 ? 1 : _x
192
+ }.sum
193
+
194
+ w = width - 2
195
+
196
+ len < w ? grads.+(SPACE.*(w - len)) : grads
124
197
  }.join(NEWLINE)
125
198
  end
126
199
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Termclock
4
- VERSION = "0.4.0"
4
+ VERSION = "0.6.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: termclock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sourav Goswami
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-24 00:00:00.000000000 Z
11
+ date: 2021-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linux_stat
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.5.1
19
+ version: 2.2.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.5.1
26
+ version: 2.2.2
27
27
  description: A clock for Linux VTE
28
28
  email:
29
29
  - souravgoswami@protonmail.com
@@ -59,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  requirements: []
62
- rubygems_version: 3.1.4
62
+ rubygems_version: 3.2.13
63
63
  signing_key:
64
64
  specification_version: 4
65
65
  summary: A clock for Linux VTE