dayrb 2.0.3 → 2.0.5
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 +5 -5
- data/LICENSE +1 -1
- data/VERSION +1 -1
- data/bin/day.rb +23 -18
- data/changelog.md +14 -2
- data/dayrb.gemspec +4 -4
- data/lib/day/configuration.rb +54 -32
- data/lib/day/parser.rb +1 -1
- data/lib/day/presenter.rb +62 -17
- data/lib/day/tasklist.rb +1 -1
- data/readme.md +46 -23
- metadata +8 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e50c30b0000ccc24e77b817926f38361c57d88dbce651c494807b4dd4e80418b
|
4
|
+
data.tar.gz: dcafa943ff153920c433c069aa4631badb97505a75601c19b5960a1ce95d4263
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f097fefc6b32690049cecf2c1ba8a9adb21c64f8a8274c235915383faef462e67d7ae73b4b06234105648194d1e2066bb9b6cb2bb069a585bc9f636dcf8324e
|
7
|
+
data.tar.gz: 22fce23b5c01a6376065ed6054b35a8d1128a767f114916fc1b82f07f1159d91168a7aeac2f7b7aaeaca11a4cf28ac9471154ca4000ecc90aaa2d696a7b2a40d
|
data/LICENSE
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
The MIT License (MIT)
|
2
|
-
Copyright ©
|
2
|
+
Copyright © 2024 Cam Carroll, http://ieve.me
|
3
3
|
|
4
4
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
5
5
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.4
|
data/bin/day.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
# DayRB Main File
|
4
4
|
# Day.rb is a minimalistic command-line to-do and time-tracking application.
|
5
|
-
# Created in July 2013
|
5
|
+
# Created in July 2013, last updated September 2024
|
6
6
|
# See 'day.rb help' for usage.
|
7
7
|
#
|
8
|
-
# MIT License; See LICENSE file;
|
8
|
+
# MIT License; See LICENSE file; Cam Carroll 2024
|
9
9
|
|
10
10
|
require_relative '../lib/day/configuration'
|
11
11
|
require_relative '../lib/day/tasklist'
|
@@ -14,16 +14,19 @@ require_relative '../lib/day/presenter'
|
|
14
14
|
|
15
15
|
require 'fileutils'
|
16
16
|
|
17
|
-
VERSION = '2.0.
|
17
|
+
VERSION = '2.0.5'
|
18
|
+
|
19
|
+
require 'pry-byebug'
|
18
20
|
|
19
21
|
#-------------- User Configuration:
|
20
22
|
#-------------- Please DO edit the following to your liking:
|
21
23
|
|
22
24
|
# Configuration File: Stores tasks and their data
|
23
|
-
CONFIG_DIR = ENV['HOME'] + '/.config/dayrb/'
|
24
|
-
|
25
|
+
#CONFIG_DIR = ENV['HOME'] + '/.config/dayrb/'
|
26
|
+
CONFIG_DIR = '/home/cam/wip/day/'
|
27
|
+
CONFIG_FILE = CONFIG_DIR + 'config_dayrb'
|
25
28
|
|
26
|
-
# Colorization:
|
29
|
+
# Colorization:
|
27
30
|
# Use ANSI color codes...
|
28
31
|
# (See http://bluesock.org/~willg/dev/ansi.html for codes.)
|
29
32
|
# (Change values back to 0 for no colorization.)
|
@@ -87,13 +90,12 @@ class String
|
|
87
90
|
end
|
88
91
|
|
89
92
|
#-------------- Application Logic:
|
93
|
+
FileUtils.mkdir_p(CONFIG_DIR) unless Dir.exist? CONFIG_DIR
|
90
94
|
|
91
|
-
|
92
|
-
|
93
|
-
db = YAML::DBM.new(CONFIG_FILE)
|
94
|
-
config = Configuration.new(db)
|
95
|
+
config = Configuration.new(CONFIG_FILE)
|
95
96
|
opts = Parser.parse_options(config)
|
96
97
|
|
98
|
+
# TODO: Simplify following logic, we don't need so many variables.
|
97
99
|
# Build task objects and separate into two lists, valid today and all tasks.
|
98
100
|
tasklist_object = Tasklist.new(config)
|
99
101
|
all_tasks = tasklist_object.all_tasks
|
@@ -108,8 +110,10 @@ end
|
|
108
110
|
|
109
111
|
# Easier (named) access to config and opts:
|
110
112
|
new_context = opts[:task]
|
111
|
-
current_context = config.
|
112
|
-
|
113
|
+
current_context = config.context
|
114
|
+
# If we were already tracking a task when program was called,
|
115
|
+
# this refers to the time spent in that task:
|
116
|
+
old_time = Time.now - config.entry_time if config.entry_time
|
113
117
|
|
114
118
|
# Take action based on operation:
|
115
119
|
case opts[:operation]
|
@@ -128,17 +132,18 @@ when :switch
|
|
128
132
|
Presenter.announce_switch(new_context, current_context, old_time)
|
129
133
|
config.switch_to(new_context)
|
130
134
|
when :clear
|
131
|
-
Presenter.
|
132
|
-
config.clear_fulfillment(new_context)
|
135
|
+
confirmation = Presenter.confirm_clear(new_context)
|
136
|
+
config.clear_fulfillment(new_context) if confirmation
|
133
137
|
when :leave
|
134
138
|
Presenter.announce_leave_context(current_context, old_time)
|
135
139
|
config.clear_context
|
136
140
|
when :delete
|
137
|
-
Presenter.
|
138
|
-
|
141
|
+
confirmation = Presenter.confirm_deletion(new_context, config.tasks[new_context]['description'])
|
142
|
+
if confirmation
|
143
|
+
config.delete(new_context)
|
144
|
+
end
|
139
145
|
else
|
140
146
|
Presenter.print_error_unknown
|
141
147
|
end
|
142
148
|
|
143
|
-
config.save
|
144
|
-
db.close
|
149
|
+
config.save(CONFIG_FILE)
|
data/changelog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
2.0.5 -- 09/18/2024
|
2
|
+
-------------------
|
3
|
+
* Bug fix: Replaced deprecated File.exists? method with .exist?
|
4
|
+
* Bug fix: Replaced (seemingly) deprecated yaml/dbm library - using psych directly instead to load config yaml file.
|
5
|
+
* Bug fix: Reorganized YAML file bootstrapping code to ensure we always load config data (previously a bootstrap run would not initialize config data class variables)
|
6
|
+
|
7
|
+
2.0.4 -- 03/20/14
|
8
|
+
-------------------
|
9
|
+
|
10
|
+
* Updated help documentation to be more clear about abbreviated commands and descriptions, and also added some examples.
|
11
|
+
* Added confirmation for delete and clear commands.
|
12
|
+
* Fixed a problem where switching directly between two tasks didn't save fulfillment data for the first.
|
13
|
+
|
1
14
|
2.0.3 -- 08/17/14
|
2
15
|
------------------
|
3
16
|
|
@@ -15,7 +28,7 @@
|
|
15
28
|
|
16
29
|
### Bug Fixes:
|
17
30
|
|
18
|
-
* Changed shebang to
|
31
|
+
* Changed shebang to use /usr/bin/env ruby instead of /usr/bin/ruby.
|
19
32
|
* Fixed some spec regressions.
|
20
33
|
|
21
34
|
2.0.1 -- 08/12/14
|
@@ -117,4 +130,3 @@
|
|
117
130
|
-------------------
|
118
131
|
|
119
132
|
* Task list printout will now give progress on current task.
|
120
|
-
|
data/dayrb.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'dayrb'
|
3
|
-
s.version = '2.0.
|
3
|
+
s.version = '2.0.5'
|
4
4
|
s.summary = "To-do & Time-Tracking CLI App"
|
5
5
|
s.description = "Create and track time on tasks via command-line."
|
6
|
-
s.authors = ["
|
6
|
+
s.authors = ["Cam Carroll"]
|
7
7
|
s.email = 'ckcarroll4@gmail.com'
|
8
8
|
s.files = `git ls-files`.split($/)
|
9
9
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
10
10
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
11
11
|
s.homepage =
|
12
|
-
'http://github.com/
|
12
|
+
'http://github.com/CameronCarroll/day'
|
13
13
|
s.license = 'MIT'
|
14
|
-
end
|
14
|
+
end
|
data/lib/day/configuration.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# DayRB Configuration (Data-Access Layer) Module
|
2
2
|
#
|
3
|
-
# Provides convenience methods for database access and holds
|
4
|
-
#
|
5
|
-
# MIT License; See LICENSE file; Cameron Carroll
|
3
|
+
# Provides convenience methods for database access and holds config data.
|
4
|
+
#
|
5
|
+
# MIT License; See LICENSE file; Cameron Carroll 2024
|
6
6
|
|
7
|
-
require '
|
7
|
+
require 'psych'
|
8
8
|
|
9
9
|
# Config class handles access to our config file, which mostly just provides a data-access layer.
|
10
10
|
# Schema:
|
@@ -22,15 +22,26 @@ require 'yaml/dbm'
|
|
22
22
|
# }
|
23
23
|
|
24
24
|
class Configuration
|
25
|
-
attr_reader :
|
25
|
+
attr_reader :tasks, :context, :entry_time
|
26
26
|
|
27
|
-
# Load
|
27
|
+
# Load config data from file -- bootstrap it if empty.
|
28
28
|
#
|
29
|
-
# @param
|
30
|
-
def initialize(
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
# @param data_file Location of task data file on local drive.
|
30
|
+
def initialize(data_file)
|
31
|
+
|
32
|
+
unless File.exist? data_file
|
33
|
+
bootstrap_db(data_file)
|
34
|
+
puts "day.rb created new config file " + CONFIG_FILE
|
35
|
+
end
|
36
|
+
|
37
|
+
if File.exist? data_file
|
38
|
+
loaded_data = Psych.safe_load_file(data_file, permitted_classes: [Time, Symbol])
|
39
|
+
@context = loaded_data[:context]
|
40
|
+
@entry_time = loaded_data[:entry_time]
|
41
|
+
@tasks = loaded_data[:tasks]
|
42
|
+
else
|
43
|
+
puts "Error creating / loading config file"
|
44
|
+
end
|
34
45
|
end
|
35
46
|
|
36
47
|
# Interface to save_task which decomposes opts hash.
|
@@ -46,14 +57,14 @@ class Configuration
|
|
46
57
|
# @param next_key [String] the name of the task to switch to.
|
47
58
|
def switch_to(next_key)
|
48
59
|
cap_current_fulfillment if @context
|
49
|
-
@
|
50
|
-
@
|
60
|
+
@context = next_key if @tasks.has_key?(next_key)
|
61
|
+
@entry_time = Time.now.getutc
|
51
62
|
end
|
52
63
|
|
53
64
|
# Exit context without switching to a new one.
|
54
65
|
def clear_context()
|
55
66
|
cap_current_fulfillment
|
56
|
-
@
|
67
|
+
@context, @entry_time = nil, nil
|
57
68
|
end
|
58
69
|
|
59
70
|
# Clear fulfillment for one or all tasks.
|
@@ -63,7 +74,7 @@ class Configuration
|
|
63
74
|
if task
|
64
75
|
clear_fulfillment_for task
|
65
76
|
else
|
66
|
-
@
|
77
|
+
@tasks.each do |task, task_data|
|
67
78
|
clear_fulfillment_for task
|
68
79
|
end
|
69
80
|
end
|
@@ -76,20 +87,26 @@ class Configuration
|
|
76
87
|
#
|
77
88
|
# @param task_key [String] Valid task name to delete.
|
78
89
|
def delete(task_key)
|
79
|
-
@
|
90
|
+
@tasks.delete task_key
|
80
91
|
end
|
81
92
|
|
82
93
|
# Reload class objects from config data.
|
83
94
|
# (Used during testing.)
|
84
95
|
def reload()
|
85
|
-
@context = @
|
86
|
-
@entry_time = @
|
96
|
+
@context = @context
|
97
|
+
@entry_time = @entry_time
|
87
98
|
|
88
99
|
end
|
89
100
|
|
90
|
-
# To be called at the very end of the script to write data back into YAML
|
91
|
-
def save()
|
92
|
-
|
101
|
+
# To be called at the very end of the script to write data back into YAML
|
102
|
+
def save(data_file)
|
103
|
+
data = {
|
104
|
+
context: @context,
|
105
|
+
entry_time: @entry_time,
|
106
|
+
tasks: @tasks }
|
107
|
+
File.open(data_file, 'w') do |file|
|
108
|
+
file.write(Psych.dump(data))
|
109
|
+
end
|
93
110
|
end
|
94
111
|
|
95
112
|
# Used to verify that a task actually exists and to cross-reference indices to names
|
@@ -97,9 +114,9 @@ class Configuration
|
|
97
114
|
# @param task [String] name or index reference to task
|
98
115
|
def lookup_task(task)
|
99
116
|
if task.number?
|
100
|
-
@
|
117
|
+
@tasks.keys[task.to_i]
|
101
118
|
else
|
102
|
-
task if @
|
119
|
+
task if @tasks.has_key? task
|
103
120
|
end
|
104
121
|
end
|
105
122
|
|
@@ -113,28 +130,33 @@ class Configuration
|
|
113
130
|
# @param estimate [String] a time estimate in integer minutes.
|
114
131
|
def save_task(task, description, valid_days, estimate)
|
115
132
|
if task
|
116
|
-
@
|
133
|
+
@tasks[task] = {'description' => description, 'valid_days' => valid_days,
|
117
134
|
'estimate' => estimate, 'fulfillment' => nil}
|
118
135
|
end
|
119
136
|
end
|
120
137
|
|
121
138
|
# Builds initial structure for the database file.
|
122
|
-
def bootstrap_db
|
123
|
-
|
124
|
-
|
125
|
-
|
139
|
+
def bootstrap_db(data_file)
|
140
|
+
data = {
|
141
|
+
context: nil,
|
142
|
+
entry_time: nil,
|
143
|
+
tasks: {} }
|
144
|
+
|
145
|
+
File.open(data_file, 'w') do |file|
|
146
|
+
file.write(Psych.dump(data))
|
147
|
+
end
|
126
148
|
end
|
127
149
|
|
128
150
|
# Add the elapsed time since entering a context. (Used when exiting that context.)
|
129
151
|
def cap_current_fulfillment
|
130
|
-
@
|
131
|
-
@
|
152
|
+
@tasks[@context]['fulfillment'] ||= 0
|
153
|
+
@tasks[@context]['fulfillment'] += Time.now - @entry_time
|
132
154
|
end
|
133
155
|
|
134
156
|
# Actually modify fulfillment data for a task.
|
135
157
|
#
|
136
158
|
# @param task [String] Valid task name to verify data for.
|
137
159
|
def clear_fulfillment_for(task)
|
138
|
-
@
|
160
|
+
@tasks[task]['fulfillment'] = nil
|
139
161
|
end
|
140
|
-
end
|
162
|
+
end
|
data/lib/day/parser.rb
CHANGED
data/lib/day/presenter.rb
CHANGED
@@ -54,12 +54,22 @@ Commands:
|
|
54
54
|
(nonexisting task) Creates a new task
|
55
55
|
(existing task) Start tracking time for named task.
|
56
56
|
delete (task) Remove a task
|
57
|
+
rm (task) (Synonym for delete.)
|
57
58
|
info Print all descriptions
|
58
59
|
info (task) Print a specific description
|
60
|
+
i (task) (Synonym for info.)
|
59
61
|
clear Clear fulfillment for all tasks.
|
60
62
|
clear (task) Clear fulfillment for a specific task.
|
63
|
+
c (task) (Synonym for clear.)
|
64
|
+
|
65
|
+
Flags:
|
66
|
+
-a Print all tasks, including those not enabled today.
|
67
|
+
|
68
|
+
Tips:
|
69
|
+
Refer to a task either by its name or index.
|
70
|
+
Jump directly between tasks.
|
71
|
+
Include "vim" or your editor constant when creating new task to add a description.
|
61
72
|
|
62
|
-
Refer to a task either by its name or index.
|
63
73
|
See readme.md for a more detailed overview.
|
64
74
|
eos
|
65
75
|
end
|
@@ -69,24 +79,45 @@ See readme.md for a more detailed overview.
|
|
69
79
|
puts "Day.rb v#{VERSION}"
|
70
80
|
end
|
71
81
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
82
|
+
# Asks whether the user is sure that they want to delete something.
|
83
|
+
#
|
84
|
+
# @param task [String] Name of task
|
85
|
+
# @param description [String] Description of task (optional)
|
86
|
+
def confirm_deletion(task, description)
|
87
|
+
puts "Are you sure you want to delete '#{task}'?: (Y/N)"
|
88
|
+
puts "It's description was #{description}: (Y/N)" if description
|
89
|
+
case confirmation = get_confirmation
|
90
|
+
when true
|
91
|
+
puts "Deleted #{task}".color_text
|
92
|
+
puts "Description was: #{description}".color_text if description
|
93
|
+
when false
|
94
|
+
puts "Didn't delete '#{task}.'".color_text
|
95
|
+
end
|
96
|
+
return confirmation
|
97
|
+
end
|
80
98
|
|
81
|
-
#
|
99
|
+
# Asks the user whether they're sure they want to clear fulfillment.
|
82
100
|
#
|
83
101
|
# @param task [String] Name of task to be cleared
|
84
|
-
def
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
102
|
+
def confirm_clear(task)
|
103
|
+
if task
|
104
|
+
puts "Are you sure you want to clear fulfillment for #{task}?"
|
105
|
+
else
|
106
|
+
puts "Are you sure you want to clear all fulfillment data?"
|
107
|
+
end
|
108
|
+
|
109
|
+
case answer = get_confirmation
|
110
|
+
when true
|
111
|
+
if task
|
112
|
+
puts "Cleared fulfillment for #{task}".color_text
|
113
|
+
else
|
114
|
+
puts "Cleared fulfillment for all tasks".color_text
|
115
|
+
end
|
116
|
+
when false
|
117
|
+
puts "Didn't clear fulfillment."
|
118
|
+
end
|
119
|
+
|
120
|
+
return answer
|
90
121
|
end
|
91
122
|
|
92
123
|
# Announces a switch to a new task...
|
@@ -121,6 +152,20 @@ See readme.md for a more detailed overview.
|
|
121
152
|
|
122
153
|
private
|
123
154
|
|
155
|
+
def get_confirmation
|
156
|
+
loop do
|
157
|
+
print " (Y/N) -->: "
|
158
|
+
case input = $stdin.gets
|
159
|
+
when /y/i, /yes/i
|
160
|
+
return true
|
161
|
+
when /n/i, /no/i
|
162
|
+
return false
|
163
|
+
else
|
164
|
+
p "Sorry, didn't catch that. Try 'yes' or 'no'."
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
124
169
|
# Iterate through tasklist, printing index, name, description flag and fulfillment/estimate data.
|
125
170
|
#
|
126
171
|
# @param tasks [Hash] Collection of task_name => task_object pairs
|
@@ -220,4 +265,4 @@ See readme.md for a more detailed overview.
|
|
220
265
|
puts "Sorry, that command is not known. Try 'help'."
|
221
266
|
end
|
222
267
|
end
|
223
|
-
end
|
268
|
+
end
|
data/lib/day/tasklist.rb
CHANGED
@@ -14,7 +14,7 @@ class Tasklist
|
|
14
14
|
|
15
15
|
def initialize(config)
|
16
16
|
@config = config
|
17
|
-
@all_tasks = load_tasks(config.
|
17
|
+
@all_tasks = load_tasks(config.tasks)
|
18
18
|
today = Time.new.strftime("%A").downcase.to_sym
|
19
19
|
@valid_tasks = @all_tasks.select do |task_name, task_object|
|
20
20
|
if task_object.valid_days
|
data/readme.md
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
day.rb
|
2
2
|
======
|
3
|
-
(Version 2.0.
|
3
|
+
(Version 2.0.5 -- March 2024)
|
4
4
|
|
5
5
|
A command-line to-do & time-tracking application.
|
6
6
|
|
7
7
|
* Define & describe tasks, and set time estimates for yourself.
|
8
|
-
* Check in
|
8
|
+
* Check in and out of tasks to track time spent.
|
9
9
|
|
10
10
|
Requirements:
|
11
11
|
-------------
|
12
|
-
* Ruby (Tested with 2.
|
12
|
+
* Ruby (Tested with 3.2.5)
|
13
13
|
|
14
14
|
Installation:
|
15
15
|
-------------
|
@@ -24,27 +24,50 @@ Installation:
|
|
24
24
|
* Symlink day.rb into your favorite bin folder. (ln -s ~/apps/day/bin/day.rb ~/bin/day)
|
25
25
|
* Chmod it to be executable (chmod +x ~/bin/day)
|
26
26
|
|
27
|
-
Usage Overview:
|
27
|
+
Usage Overview:
|
28
28
|
---------------
|
29
|
-
|
30
29
|
Usage: day.rb <command> [<args>]
|
31
30
|
|
32
31
|
Commands:
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
32
|
+
(no command) Prints out task list for the day
|
33
|
+
(nonexisting task) Creates a new task
|
34
|
+
(existing task) Start tracking time for named task.
|
35
|
+
delete (task) Remove a task
|
36
|
+
rm (task) (Synonym for delete.)
|
37
|
+
info Print all descriptions
|
38
|
+
info (task) Print a specific description
|
39
|
+
i (task) (Synonym for info.)
|
40
|
+
clear Clear fulfillment for all tasks.
|
41
|
+
clear (task) Clear fulfillment for a specific task.
|
42
|
+
c (task) (Synonym for clear.)
|
43
|
+
|
44
|
+
Flags:
|
45
|
+
-a Also print tasks not enabled today.
|
46
|
+
|
47
|
+
Tips:
|
48
|
+
Refer to a task either by its name or index.
|
49
|
+
Jump directly between tasks.
|
50
|
+
Include "vim" or your editor constant when creating new task to add a description.
|
51
|
+
Configuration data is stored at the top of 'day.rb.'
|
52
|
+
|
53
|
+
Examples
|
54
|
+
--------
|
55
|
+
# Create a new task:
|
56
|
+
day.rb my_new_task
|
57
|
+
|
58
|
+
# Create task enabled on monday & wednesday, with a 45 minute estimate:
|
59
|
+
day.rb my_new_task m w 45
|
60
|
+
|
61
|
+
# Create a task with in-line description:
|
62
|
+
# Note parenthesis and quotations are mandatory.
|
63
|
+
day.rb my_new_task "(some description)"
|
64
|
+
|
65
|
+
# Create a task with editor description:
|
66
|
+
# Note 'vim' can be changed to any editor atop day.rb file.
|
67
|
+
day.rb my_new_task vim
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
Copyright 2024 - Cam Carroll
|
72
|
+
|
73
|
+
License: MIT
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dayrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- Cam Carroll
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Create and track time on tasks via command-line.
|
14
14
|
email: ckcarroll4@gmail.com
|
@@ -32,11 +32,11 @@ files:
|
|
32
32
|
- spec/configuration_spec.rb
|
33
33
|
- spec/parser_spec.rb
|
34
34
|
- spec/spec_helper.rb
|
35
|
-
homepage: http://github.com/
|
35
|
+
homepage: http://github.com/CameronCarroll/day
|
36
36
|
licenses:
|
37
37
|
- MIT
|
38
38
|
metadata: {}
|
39
|
-
post_install_message:
|
39
|
+
post_install_message:
|
40
40
|
rdoc_options: []
|
41
41
|
require_paths:
|
42
42
|
- lib
|
@@ -51,13 +51,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
53
|
requirements: []
|
54
|
-
|
55
|
-
|
56
|
-
signing_key:
|
54
|
+
rubygems_version: 3.5.19
|
55
|
+
signing_key:
|
57
56
|
specification_version: 4
|
58
57
|
summary: To-do & Time-Tracking CLI App
|
59
58
|
test_files:
|
60
59
|
- spec/configuration_spec.rb
|
61
60
|
- spec/parser_spec.rb
|
62
61
|
- spec/spec_helper.rb
|
63
|
-
has_rdoc:
|