slimtimercli 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,6 +9,7 @@ config/requirements.rb
9
9
  lib/slimtimercli.rb
10
10
  lib/slimtimercli/entities.rb
11
11
  lib/slimtimercli/slim_timer.rb
12
+ lib/slimtimercli/helper.rb
12
13
  lib/slimtimercli/version.rb
13
14
  log/debug.log
14
15
  setup.rb
@@ -0,0 +1,168 @@
1
+ module Slimtimercli
2
+ module Helper
3
+ def login
4
+ config = Helper::load_config
5
+ st = SlimTimer.new(config["email"], config["password"],
6
+ config["api_key"])
7
+ st.login
8
+
9
+ st
10
+ end
11
+
12
+ def root
13
+ @root ||= if ENV.key?("XDG_CONFIG_HOME") and File.exists?( ENV['XDG_CONFIG_HOME'] )
14
+ File.join(ENV['XDG_CONFIG_HOME'], "slimtimer")
15
+ else
16
+ File.join(ENV["HOME"], ".slimtimer")
17
+ end
18
+ end
19
+
20
+ def config_file
21
+ File.join(root, "config.yml")
22
+ end
23
+
24
+ def tasks_file
25
+ File.join(root, "tasks.yml")
26
+ end
27
+
28
+ def current_file
29
+ File.join(root, "current.yml")
30
+ end
31
+
32
+ def check_and_create_dir
33
+ raise "Home DIR not set!" unless ENV["HOME"]
34
+
35
+ unless File.directory?(root)
36
+ FileUtils.mkdir(root)
37
+ end
38
+ end
39
+
40
+ def load_config
41
+ check_and_create_dir
42
+
43
+ unless File.exists?(config_file)
44
+ File.open( config_file, 'w' ) do |out|
45
+ YAML.dump({}, out )
46
+ end
47
+ end
48
+ load_file(config_file)
49
+ end
50
+
51
+ def save_config(config)
52
+ dump_to_file(config, config_file)
53
+ end
54
+
55
+ def load_file(file)
56
+ File.open( file ) { |yf| YAML::load( yf ) }
57
+ end
58
+
59
+ def dump_to_file(object, file)
60
+ check_and_create_dir
61
+ File.open( file, 'w' ) do |out|
62
+ YAML.dump(object, out )
63
+ end
64
+ end
65
+
66
+ def rm_current
67
+ FileUtils.rm(current_file) if
68
+ File.exists?(current_file)
69
+ end
70
+
71
+ def parse(args)
72
+
73
+ if !args || args.empty?
74
+ warn "Need to specify arguments, run slimtimer -h for help"
75
+ exit 2
76
+
77
+ end
78
+
79
+ options = OpenStruct.new
80
+ options.force = false
81
+
82
+ opts = OptionParser.new do |opts|
83
+
84
+ opts.banner = "Usage: slimtimer [options]"
85
+
86
+ opts.on("-s TASK", "--start TASK",
87
+ "Start a TASK given by the task name") do |t|
88
+
89
+ options.run = "start"
90
+ options.task_name = t
91
+ end
92
+
93
+ opts.on("-c TASK", "--create TASK",
94
+ "Create a ne task by the given name") do |t|
95
+ options.run = "create"
96
+ options.task_name = t
97
+ end
98
+
99
+ opts.on("-e", "--end" ,"Stops time recording for the given task") do
100
+ options.run = "stop"
101
+ end
102
+
103
+ opts.on("-t", "--tasks", "Prints all available tasks") do
104
+ options.run = "tasks"
105
+ end
106
+
107
+ opts.on("-f", "--force", "Force deletion of tasks") do
108
+ options.force = true
109
+ end
110
+
111
+ opts.on("--setup", "Setup your account") do
112
+ options.run = "setup"
113
+ end
114
+
115
+ opts.on_tail("-h", "Shows this note") do
116
+ puts opts
117
+ exit
118
+ end
119
+
120
+ opts.on("--help", "Show verbose help") do
121
+ @out.puts <<-HELP
122
+ SlimTimer is a tool to record your time spend on a
123
+ task. SlimTimer CLI allows you to controll your
124
+ SlimTimer directly from where you spend most of your
125
+ time - on the command line. To use SlimTimer proceed
126
+ with the following steps:
127
+
128
+ The first time you need to setup SlimTimer CLI with
129
+
130
+ slimtimer setup
131
+
132
+ Now it will ask for your email and password and API key
133
+ to use with your account. These information will be stored
134
+ in #{config_file}
135
+
136
+ To create a task run
137
+
138
+ slimtimer create_task my_shiny_task
139
+
140
+ To spend some time on the task you have to make the timer run
141
+
142
+ slimtimer start my_shiny_task
143
+
144
+ When you finished working on a task, you can call
145
+
146
+ slimtimer end
147
+
148
+ This will write the time spend back to SlimTimer.com.
149
+ Finally you can run
150
+
151
+ slimtimer tasks
152
+
153
+ To show all your tasks available.
154
+ HELP
155
+ exit
156
+ end
157
+ end
158
+
159
+ begin
160
+ opts.parse!(args)
161
+ rescue
162
+ puts $!.message
163
+ exit
164
+ end
165
+ options
166
+ end
167
+ end
168
+ end
@@ -2,7 +2,7 @@ module Slimtimercli #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 7
5
+ TINY = 8
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slimtimercli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Grund
@@ -66,6 +66,7 @@ files:
66
66
  - lib/slimtimercli.rb
67
67
  - lib/slimtimercli/entities.rb
68
68
  - lib/slimtimercli/slim_timer.rb
69
+ - lib/slimtimercli/helper.rb
69
70
  - lib/slimtimercli/version.rb
70
71
  - log/debug.log
71
72
  - setup.rb