thyme 0.0.5 → 0.0.6
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.
- data/README.md +6 -6
- data/thyme.rb +11 -7
- data/thyme_test.rb +3 -3
- metadata +1 -1
data/README.md
CHANGED
@@ -31,9 +31,9 @@ Configure
|
|
31
31
|
Thyme is configurable and extensible. All configurations live in the
|
32
32
|
`~/.thymerc` file:
|
33
33
|
|
34
|
-
set :timer, 25
|
35
|
-
set :tmux, true
|
34
|
+
set :timer, 25*60
|
36
35
|
set :interval, 1
|
36
|
+
set :tmux, true
|
37
37
|
|
38
38
|
option :o, :open, 'open sheets' do
|
39
39
|
`vim -O ~/.thyme-today.md ~/.thyme-records.md < \`tty\` > \`tty\``
|
@@ -43,15 +43,15 @@ Thyme is configurable and extensible. All configurations live in the
|
|
43
43
|
`mplayer ~/music/flight-of-the-bumble-bee.mp3 &`
|
44
44
|
end
|
45
45
|
|
46
|
-
after do
|
47
|
-
`notify-send -u critical "
|
46
|
+
after do |seconds_left|
|
47
|
+
`notify-send -u critical "Thymes Up!"` if seconds_left == 0
|
48
48
|
end
|
49
49
|
|
50
50
|
The `set` method sets different configurations. There are only two:
|
51
51
|
|
52
|
-
* `:timer` is the number of
|
53
|
-
* `:tmux` is whether or not you want tmux integration on (off by default)
|
52
|
+
* `:timer` is the number of seconds to countdown from
|
54
53
|
* `:interval` is the refresh rate of the progress bar and tmux status in seconds
|
54
|
+
* `:tmux` is whether or not you want tmux integration on (off by default)
|
55
55
|
|
56
56
|
The `option` method adds new options to the `thyme` command. In the above
|
57
57
|
example, we can now execute `thyme -o`. Use `thyme -h` to see available
|
data/thyme.rb
CHANGED
@@ -2,21 +2,21 @@ require 'ruby-progressbar'
|
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
class Thyme
|
5
|
-
VERSION = '0.0.
|
5
|
+
VERSION = '0.0.6'
|
6
6
|
CONFIG_FILE = "#{ENV['HOME']}/.thymerc"
|
7
7
|
PID_FILE = "#{ENV['HOME']}/.thyme-pid"
|
8
8
|
TMUX_FILE = "#{ENV['HOME']}/.thyme-tmux"
|
9
9
|
OPTIONS = [:timer, :tmux, :interval]
|
10
10
|
|
11
11
|
def initialize
|
12
|
-
@timer = 25
|
12
|
+
@timer = 25 * 60
|
13
13
|
@tmux = false
|
14
14
|
@interval = 1
|
15
15
|
end
|
16
16
|
|
17
17
|
def run
|
18
|
-
|
19
|
-
seconds_start = @timer
|
18
|
+
before_hook = @before
|
19
|
+
seconds_start = @timer
|
20
20
|
seconds_left = seconds_start + 1
|
21
21
|
start_time = DateTime.now
|
22
22
|
min_length = (seconds_left / 60).floor.to_s.length
|
@@ -28,7 +28,7 @@ class Thyme
|
|
28
28
|
format: '[%B] %t')
|
29
29
|
while seconds_left > 0
|
30
30
|
seconds_passed = seconds_since(start_time)
|
31
|
-
seconds_left = seconds_start - seconds_passed
|
31
|
+
seconds_left = [seconds_start - seconds_passed, 0].max
|
32
32
|
title = format(seconds_left, min_length)
|
33
33
|
fg = color(seconds_left)
|
34
34
|
bar.title = title
|
@@ -39,14 +39,19 @@ class Thyme
|
|
39
39
|
tmux_file.write("#[default]#[fg=#{fg}]#{title}#[default]")
|
40
40
|
tmux_file.flush
|
41
41
|
end
|
42
|
+
if before_hook
|
43
|
+
before_hook.call
|
44
|
+
before_hook = nil
|
45
|
+
end
|
42
46
|
sleep(@interval)
|
43
47
|
end
|
44
48
|
rescue SignalException => e
|
45
49
|
puts ""
|
46
50
|
ensure
|
47
51
|
tmux_file.close
|
48
|
-
@after.call if @after && seconds_left <= 0
|
49
52
|
stop
|
53
|
+
seconds_left = [seconds_start - seconds_since(start_time), 0].max
|
54
|
+
@after.call(seconds_left) if @after
|
50
55
|
end
|
51
56
|
|
52
57
|
def stop
|
@@ -98,7 +103,6 @@ class Thyme
|
|
98
103
|
end
|
99
104
|
|
100
105
|
def format(seconds, min_length)
|
101
|
-
seconds = [0, seconds].max
|
102
106
|
min = (seconds / 60).floor
|
103
107
|
lead = ' ' * (min_length - min.to_s.length)
|
104
108
|
sec = (seconds % 60).floor
|
data/thyme_test.rb
CHANGED
@@ -22,9 +22,9 @@ class ThymeTest < Minitest::Test
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_set
|
25
|
-
assert_equal(25, @thyme.instance_variable_get('@timer'))
|
26
|
-
@thyme.set(:timer, 20)
|
27
|
-
assert_equal(20, @thyme.instance_variable_get('@timer'))
|
25
|
+
assert_equal(25*60, @thyme.instance_variable_get('@timer'))
|
26
|
+
@thyme.set(:timer, 20*60)
|
27
|
+
assert_equal(20*60, @thyme.instance_variable_get('@timer'))
|
28
28
|
assert_raises(ThymeError) { @thyme.set(:invalid, nil) }
|
29
29
|
end
|
30
30
|
end
|