taskington 0.0.1
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 +7 -0
- data/bin/task +28 -0
- data/lib/knight.data +25 -0
- data/lib/setup.rb +64 -0
- data/lib/task.rb +63 -0
- data/lib/taskington.rb +10 -0
- metadata +50 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 77bf836284a20621c3b73285a74e733a862c5911
|
|
4
|
+
data.tar.gz: 6b19a34e5787f6143a035323192f925de0010dbc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 93130d332c9f7da9fa0006ea01c85e1b174de5f69a5934ca6ea10477327c035dbdfe13d08c600983900f971e455b374a0388a41fd6d89dd0f7cf5403a64e1641
|
|
7
|
+
data.tar.gz: 7a1d3af57c4e268204b30fa30d9734529fee306ee6db7c2ae611ef69e5830ed574a40d5d172a5c82f8203522a3c10e28436362dd5dacb2ac2d7fa85a99d6bf88
|
data/bin/task
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'taskington'
|
|
4
|
+
require 'optparse'
|
|
5
|
+
require 'json'
|
|
6
|
+
# don't run the script when going through CLI on travis
|
|
7
|
+
if !Dir.exist?(File.join(Dir.home, '.taskington')) && !ENV['TRAVIS']
|
|
8
|
+
set_up_task_dir
|
|
9
|
+
sleep(2)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# don't run the script when going through CLI on travis
|
|
13
|
+
if !File.exist?(File.join(Dir.home, '.taskington/user.json')) && !ENV['TRAVIS']
|
|
14
|
+
set_up_user
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# don't run the script when going through CLI on travis
|
|
18
|
+
if !File.exist?(File.join(Dir.home, '.taskington/daily_tasks.json')) && !ENV['TRAVIS']
|
|
19
|
+
dailies = create_daily_tasks
|
|
20
|
+
File.open(File.join(Dir.home, '.taskington/daily_tasks.json'), 'w') do |f|
|
|
21
|
+
f.write(dailies)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
if ARGV[0] == 'ct' || ARGV[0] == "-c" && ARGV[1] == "task" || ARGV[0] == "--create" && ARGV[1] == "task"
|
|
26
|
+
dailies = File.read(File.join(Dir.home, '.taskington/daily_tasks.json'))
|
|
27
|
+
puts dailies
|
|
28
|
+
end
|
data/lib/knight.data
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
_/_/_/_/_/ _/ _/ _/
|
|
4
|
+
_/ _/_/_/ _/_/_/ _/ _/ _/_/_/ _/_/_/ _/_/_/_/ _/_/ _/_/_/
|
|
5
|
+
_/ _/ _/ _/_/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
|
|
6
|
+
_/ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
|
|
7
|
+
_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/_/_/ _/_/ _/_/ _/ _/
|
|
8
|
+
_/
|
|
9
|
+
_/_/
|
|
10
|
+
|
|
11
|
+
,;~;,
|
|
12
|
+
/\_
|
|
13
|
+
( /
|
|
14
|
+
(() //)
|
|
15
|
+
| \\ ,,;;'\
|
|
16
|
+
__ _( )m=(((((((((((((================--------
|
|
17
|
+
/' ' '()/~' '.(, |
|
|
18
|
+
,;( )|| | ~
|
|
19
|
+
,;' \ /-(.;, )
|
|
20
|
+
) / ) /
|
|
21
|
+
// PjP ||
|
|
22
|
+
)_\ )_\
|
|
23
|
+
|
|
24
|
+
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
25
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
data/lib/setup.rb
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
def set_up_task_dir
|
|
2
|
+
if Dir.exist?(File.join(Dir.home, '.taskington'))
|
|
3
|
+
return puts 'the taskington directory already exists on your system'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
knight = File.read('./lib/knight.data')
|
|
7
|
+
puts knight
|
|
8
|
+
|
|
9
|
+
Dir.mkdir(File.join(Dir.home, '.taskington'), 0700)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def add_to_settings(question_input, condition)
|
|
13
|
+
raise "The question is not a string" unless question_input.class == String
|
|
14
|
+
Taskington::ask_question(question_input)
|
|
15
|
+
response = $stdin.gets.chomp.capitalize
|
|
16
|
+
|
|
17
|
+
if condition.(response) == false
|
|
18
|
+
add_to_settings(question_input, condition)
|
|
19
|
+
end
|
|
20
|
+
return response
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def set_up_user
|
|
26
|
+
settings = {}
|
|
27
|
+
|
|
28
|
+
settings["username"] = add_to_settings('What be thine name?', lambda { |str| str.class == String })
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
settings["weekly_task_num"] = add_to_settings('How many tasks per week must thou slay? (max: 15)', lambda { |num| num.to_i != 0 && num.length < 3 && num.to_i < 16})
|
|
32
|
+
|
|
33
|
+
settings["daily_task_num"] = add_to_settings('How many tasks per day? (max: 3)', lambda { |num| num.to_i != 0 && num.length < 2 && num.to_i < 4})
|
|
34
|
+
|
|
35
|
+
settings["work_week_start"] = add_to_settings('When dost thou work week start? (Mon, Tues, Wed, Thur, Fri, Sat, Sun)', lambda { |str| ['Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'].include? str })
|
|
36
|
+
|
|
37
|
+
settings["work_week_end"] = add_to_settings('When dost thou work week end? (Mon, Tues, Wed, Thur, Fri, Sat, Sun)', lambda { |str| ['Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun'].include? str })
|
|
38
|
+
|
|
39
|
+
puts "username #{settings["username"]}"
|
|
40
|
+
puts "weekly_task_num #{settings["weekly_task_num"]}"
|
|
41
|
+
puts "daily_task_num #{settings["daily_task_num"]}"
|
|
42
|
+
puts "work_week_start #{settings["work_week_start"]}"
|
|
43
|
+
puts "work_week_end #{settings["work_week_start"]}"
|
|
44
|
+
|
|
45
|
+
Taskington::ask_question('Dost this look correct?[y, yes]')
|
|
46
|
+
choice = $stdin.gets.chomp
|
|
47
|
+
if choice == 'yes' || choice == 'y'
|
|
48
|
+
return File.open(File.join(Dir.home, '.taskington/settings.json'), 'w') do |f|
|
|
49
|
+
f.write(JSON.pretty_generate(settings))
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
Taskington::ask_question('Are you sure? If thou art sure I will implore you for your credentials once more [yes to be sure]')
|
|
55
|
+
choice = $stdin.gets.chomp
|
|
56
|
+
if choice == 'yes' || choice == 'y'
|
|
57
|
+
return File.open(File.join(Dir.home, '.taskington/user.json'), 'w') do |f|
|
|
58
|
+
f.write(JSON.pretty_generate(settings))
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# the user chooses no and wants to reset some settings
|
|
63
|
+
set_up_user
|
|
64
|
+
end
|
data/lib/task.rb
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'securerandom'
|
|
2
|
+
|
|
3
|
+
def create_daily_tasks
|
|
4
|
+
tasks = {'date' => Time.new, 'tasks' => {}}
|
|
5
|
+
tasks_json = JSON.generate(tasks)
|
|
6
|
+
return tasks_json
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def create_task(name, complete = 0, link = nil)
|
|
10
|
+
task_hash = {}
|
|
11
|
+
if name == ''
|
|
12
|
+
return 'your task must have a name'
|
|
13
|
+
else
|
|
14
|
+
task_hash[:name] = name
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
if complete == 0
|
|
18
|
+
task_hash[:complete] = 'false'
|
|
19
|
+
elsif complete == 1
|
|
20
|
+
task_hash[:complete] == 'true'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
task_hash[:time_added] = Time.new
|
|
24
|
+
|
|
25
|
+
link_string = task_hash[:name][0..2] + String(SecureRandom.hex(2))
|
|
26
|
+
|
|
27
|
+
task_hash[:link] = link_string
|
|
28
|
+
task_hash[:time_spent] = 0
|
|
29
|
+
|
|
30
|
+
return task_hash
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def add_task(hash, task)
|
|
34
|
+
hash ||= {}
|
|
35
|
+
|
|
36
|
+
task_hash = {}
|
|
37
|
+
|
|
38
|
+
for x in hash.keys
|
|
39
|
+
task_hash[x] = hash[x]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if task[:link].nil?
|
|
43
|
+
return puts 'task is missing link'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
if task[:name].nil?
|
|
47
|
+
return puts 'task is missing name'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
if task[:time_added].nil?
|
|
51
|
+
return puts 'missing time added'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
if task[:complete].nil?
|
|
55
|
+
return puts 'missing completed field'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
link_str = task[:link]
|
|
59
|
+
|
|
60
|
+
task_hash[link_str] = task
|
|
61
|
+
|
|
62
|
+
return task_hash
|
|
63
|
+
end
|
data/lib/taskington.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: taskington
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Tyler Bo
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2017-01-01 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: An opinionated task-management tool that limits your focus and helps
|
|
14
|
+
you to get things done fast.
|
|
15
|
+
email: ru.lai.development@gmail.com
|
|
16
|
+
executables:
|
|
17
|
+
- task
|
|
18
|
+
extensions: []
|
|
19
|
+
extra_rdoc_files: []
|
|
20
|
+
files:
|
|
21
|
+
- bin/task
|
|
22
|
+
- lib/knight.data
|
|
23
|
+
- lib/setup.rb
|
|
24
|
+
- lib/task.rb
|
|
25
|
+
- lib/taskington.rb
|
|
26
|
+
homepage: http://rubygems.org/taskington
|
|
27
|
+
licenses:
|
|
28
|
+
- MIT
|
|
29
|
+
metadata: {}
|
|
30
|
+
post_install_message:
|
|
31
|
+
rdoc_options: []
|
|
32
|
+
require_paths:
|
|
33
|
+
- lib
|
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
35
|
+
requirements:
|
|
36
|
+
- - ">="
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: '0'
|
|
39
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
40
|
+
requirements:
|
|
41
|
+
- - ">="
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '0'
|
|
44
|
+
requirements: []
|
|
45
|
+
rubyforge_project:
|
|
46
|
+
rubygems_version: 2.6.8
|
|
47
|
+
signing_key:
|
|
48
|
+
specification_version: 4
|
|
49
|
+
summary: Taskington slays tasks.
|
|
50
|
+
test_files: []
|