pomato 0.0.1 → 0.0.2
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/lib/pomato/paths.rb +64 -0
- data/lib/pomato/report.rb +15 -0
- data/lib/pomato/start.rb +14 -0
- data/lib/pomato/tick.rb +18 -0
- data/lib/pomato/version.rb +1 -1
- data/lib/pomato.rb +13 -3
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f8567836c7256df5d1ca371debd1e2e8b4ebd64
|
4
|
+
data.tar.gz: e8da4054f113faf46cb9ecdb13ce4dd26a12ad69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 682497131a7402ce7ed3bef71c8955abae888938b6334bcdf1ecf62553273597e35c4913689f7e1b2f71168497c315eb01179d250168b5923a9f8560593fdda1
|
7
|
+
data.tar.gz: eb6ec5710e7a84b2686694dfc25707c794866a148b4692f5b17cc87ba17f74293ad052409b23c8d34be533fabb3220120705779f1425d650f687883b1336d28a
|
data/lib/pomato/paths.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'securerandom'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module Pomato
|
6
|
+
module Paths
|
7
|
+
include FileUtils
|
8
|
+
|
9
|
+
attr_reader :args
|
10
|
+
|
11
|
+
def initialize(*args)
|
12
|
+
@args = args
|
13
|
+
end
|
14
|
+
|
15
|
+
def now
|
16
|
+
@now ||= Time.now.to_i
|
17
|
+
end
|
18
|
+
|
19
|
+
def play_alert
|
20
|
+
`afplay #{path_to('alert.mp3')}`
|
21
|
+
end
|
22
|
+
|
23
|
+
def history(message)
|
24
|
+
append_to history_path, "#{now} #{message}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def history_path
|
28
|
+
File.join home, 'history'
|
29
|
+
end
|
30
|
+
|
31
|
+
def path_to(name)
|
32
|
+
File.expand_path(File.join(home, name))
|
33
|
+
end
|
34
|
+
|
35
|
+
def jobs
|
36
|
+
Dir["#{home('jobs')}/*"].map {|p| load_yaml(p).merge(id: p) }
|
37
|
+
end
|
38
|
+
|
39
|
+
def make_job(job)
|
40
|
+
dump_yaml(File.join(home('jobs'), SecureRandom.uuid), job)
|
41
|
+
end
|
42
|
+
|
43
|
+
def finish_job(job)
|
44
|
+
history "finish #{job[:time]} #{job[:name]}"
|
45
|
+
File.delete job[:id]
|
46
|
+
end
|
47
|
+
|
48
|
+
def home(*paths)
|
49
|
+
(File.join(File.expand_path('~'),'/.pomato',*paths)).tap {|path| mkdir_p path }
|
50
|
+
end
|
51
|
+
|
52
|
+
def append_to(path, content)
|
53
|
+
File.open(path, 'a') { |f| f.puts content }
|
54
|
+
end
|
55
|
+
|
56
|
+
def dump_yaml(path, data)
|
57
|
+
File.open(path, 'w') { |f| YAML.dump(data, f) }
|
58
|
+
end
|
59
|
+
|
60
|
+
def load_yaml(path)
|
61
|
+
File.exist?(path) ? YAML.load_file(path) : {}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'pomato/paths'
|
2
|
+
|
3
|
+
module Pomato
|
4
|
+
class Report
|
5
|
+
include Paths
|
6
|
+
|
7
|
+
def execute
|
8
|
+
jobs.each do |job|
|
9
|
+
duration = now - job[:start]
|
10
|
+
remaining = job[:time] - duration
|
11
|
+
puts "job #{job[:name]}: #{duration} (#{remaining} remaining)"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/pomato/start.rb
ADDED
data/lib/pomato/tick.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'pomato/paths'
|
2
|
+
|
3
|
+
module Pomato
|
4
|
+
class Tick
|
5
|
+
include Paths
|
6
|
+
|
7
|
+
def execute
|
8
|
+
alert = false
|
9
|
+
jobs.each do |job|
|
10
|
+
if (job[:start] + job[:time]) < now
|
11
|
+
finish_job job
|
12
|
+
alert = true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
play_alert if alert
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/pomato/version.rb
CHANGED
data/lib/pomato.rb
CHANGED
@@ -1,14 +1,24 @@
|
|
1
|
-
require 'pomato/
|
1
|
+
require 'pomato/tick'
|
2
|
+
require 'pomato/start'
|
3
|
+
require 'pomato/report'
|
2
4
|
|
3
5
|
module Pomato
|
4
6
|
module Cli
|
5
7
|
def self.execute(*args)
|
6
8
|
method, *args = args
|
7
|
-
send method, *args
|
9
|
+
send (method || :report), *args
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.report
|
13
|
+
Pomato::Report.new.execute
|
8
14
|
end
|
9
15
|
|
10
16
|
def self.tick(*args)
|
11
|
-
|
17
|
+
Pomato::Tick.new(*args).execute
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.start(*args)
|
21
|
+
Pomato::Start.new(*args).execute
|
12
22
|
end
|
13
23
|
end
|
14
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pomato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Ryall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,6 +53,10 @@ files:
|
|
53
53
|
- Rakefile
|
54
54
|
- bin/pomato
|
55
55
|
- lib/pomato.rb
|
56
|
+
- lib/pomato/paths.rb
|
57
|
+
- lib/pomato/report.rb
|
58
|
+
- lib/pomato/start.rb
|
59
|
+
- lib/pomato/tick.rb
|
56
60
|
- lib/pomato/version.rb
|
57
61
|
- pomato.gemspec
|
58
62
|
homepage: http://github.com/markryall/pomatorb
|