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.
@@ -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
@@ -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
@@ -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
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -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
@@ -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
@@ -0,0 +1,10 @@
1
+ class Taskington
2
+ taskington_ques_dict = ['inquires', 'requests', 'implores you', ]
3
+
4
+ taskington_statem_dict = ['declares', 'decrees', 'ordains']
5
+
6
+
7
+ def self.ask_question (string)
8
+ return $stdout.puts "Taskington inquires: #{string}"
9
+ end
10
+ end
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: []