star_track 0.1.1 → 0.2.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 +4 -4
- data/lib/star_track/commands.rb +18 -9
- data/lib/star_track/error_handler.rb +11 -0
- data/lib/star_track/task_manager/terminal.rb +17 -0
- data/lib/star_track/time_tracker/freckle.rb +3 -3
- data/lib/star_track.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a64043d84338858320c2ee5a02a7896a004bf68
|
4
|
+
data.tar.gz: 849781b27ef1419afe2e135e27b0439d3228a99c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68f9afae54a54664752bbc54fbe62b8e1dc996a799d3595d9619039f9344c5bdf664668cc3104d25f9512c27cfdbffecf8afb76db00ef420b42619b1920f7086
|
7
|
+
data.tar.gz: d1256c262b53ed487772ca559f4e0dd9ccbf519127df3d5677ee3aec70f7929e732e778d7b57600de87aca265511443750abbb59c622df7950981e1efbeec0ff
|
data/lib/star_track/commands.rb
CHANGED
@@ -5,23 +5,28 @@ module StarTrack
|
|
5
5
|
print "> star_track help ".colorize(:green)
|
6
6
|
puts "- pretty obvious, isn't it?"
|
7
7
|
|
8
|
-
print "> star_track config ".colorize(:green)
|
9
|
-
puts "- creates a new .star_track.yaml file at your user's root path (to be implemented)"
|
10
|
-
|
11
8
|
print "> star_track hh:mm ".colorize(:green)
|
12
9
|
puts "- time tracks hh hours and mm minutes, ex: star_track 8:00"
|
13
10
|
puts ""
|
14
11
|
end
|
15
12
|
|
16
13
|
def self.runner
|
17
|
-
|
18
|
-
time_tracker = StarTrack::TimeTracker::Freckle.new
|
14
|
+
config = YAML.load_file("#{ENV['HOME']}/.star_track.yaml")
|
19
15
|
|
20
|
-
|
21
|
-
|
16
|
+
task_manager_name = config["task_manager"]
|
17
|
+
time_tracker_name = config["time_tracker"]
|
18
|
+
|
19
|
+
ErrorHandler.raise_missing_config(:task_manager) unless task_manager_name
|
20
|
+
ErrorHandler.raise_missing_config(:time_tracker) unless time_tracker_name
|
22
21
|
|
22
|
+
task_manager = build_constant(TaskManager, task_manager_name).new
|
23
|
+
time_tracker = build_constant(TimeTracker, time_tracker_name).new
|
24
|
+
|
25
|
+
puts ""
|
26
|
+
print "Task manager: ".colorize(:blue)
|
27
|
+
puts task_manager_name.capitalize
|
23
28
|
print "Time tracker: ".colorize(:blue)
|
24
|
-
puts
|
29
|
+
puts time_tracker_name.capitalize
|
25
30
|
puts ""
|
26
31
|
|
27
32
|
puts "=> Loading today tasks...".colorize(:green)
|
@@ -33,9 +38,13 @@ module StarTrack
|
|
33
38
|
|
34
39
|
puts "=> Now creating entry on the time tracker...".colorize(:green)
|
35
40
|
time_tracker.track(today_tasks)
|
41
|
+
puts "==> Entry created successfully!".colorize(:green)
|
36
42
|
puts ""
|
43
|
+
end
|
37
44
|
|
38
|
-
|
45
|
+
def self.build_constant(namespace, name)
|
46
|
+
class_name = name.split(/-|\s|_/).map(&:capitalize).join("")
|
47
|
+
const_get "#{namespace}::#{class_name}"
|
39
48
|
end
|
40
49
|
end
|
41
50
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module StarTrack
|
2
|
+
module TaskManager
|
3
|
+
class Terminal
|
4
|
+
attr_reader :io
|
5
|
+
|
6
|
+
def today_tasks
|
7
|
+
puts "Insert what you did today (separated by new lines):".colorize(:yellow)
|
8
|
+
puts "Type END when you are done".colorize(:yellow)
|
9
|
+
|
10
|
+
$/ = "END"
|
11
|
+
tasks = STDIN.gets.chomp.split("\n")
|
12
|
+
$/ = "\n"
|
13
|
+
tasks
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -16,7 +16,7 @@ module StarTrack
|
|
16
16
|
|
17
17
|
def track(tasks)
|
18
18
|
params = {
|
19
|
-
description: tasks.join(" - "),
|
19
|
+
description: tasks.join(" - ").gsub("#", " "),
|
20
20
|
project_id: @project_id,
|
21
21
|
minutes: billable_time,
|
22
22
|
date: Date.today.to_s,
|
@@ -25,7 +25,7 @@ module StarTrack
|
|
25
25
|
begin
|
26
26
|
client.create_entry(params)
|
27
27
|
rescue => error
|
28
|
-
|
28
|
+
ErrorHandler.raise(error.message)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -43,7 +43,7 @@ module StarTrack
|
|
43
43
|
|
44
44
|
def validate_given_time!
|
45
45
|
unless ARGV[0]
|
46
|
-
|
46
|
+
ErrorHandler.raise("[ERROR] Missing time parameter!")
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
data/lib/star_track.rb
CHANGED
@@ -2,8 +2,10 @@ module StarTrack
|
|
2
2
|
require "colorize"
|
3
3
|
require "yaml"
|
4
4
|
|
5
|
+
require "star_track/error_handler"
|
5
6
|
require "star_track/commands"
|
6
7
|
|
7
8
|
require "star_track/task_manager/wunderlist"
|
9
|
+
require "star_track/task_manager/terminal"
|
8
10
|
require "star_track/time_tracker/freckle"
|
9
11
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: star_track
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- victor-am
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: wunderlist-api
|
@@ -76,6 +76,8 @@ files:
|
|
76
76
|
- bin/star_track
|
77
77
|
- lib/star_track.rb
|
78
78
|
- lib/star_track/commands.rb
|
79
|
+
- lib/star_track/error_handler.rb
|
80
|
+
- lib/star_track/task_manager/terminal.rb
|
79
81
|
- lib/star_track/task_manager/wunderlist.rb
|
80
82
|
- lib/star_track/time_tracker/freckle.rb
|
81
83
|
homepage: https://github.com/victor-am/star_track
|