ineedto 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/ineedto +55 -0
- data/lib/cmd.rb +14 -0
- data/lib/cmd/clean.rb +39 -0
- data/lib/cmd/complete.rb +48 -0
- data/lib/cmd/completed.rb +46 -0
- data/lib/cmd/list.rb +46 -0
- data/lib/cmd/new.rb +88 -0
- data/lib/cmd/pending.rb +47 -0
- data/lib/cmd/root.rb +33 -0
- data/lib/cmd/search.rb +53 -0
- data/lib/cmd/today.rb +46 -0
- metadata +110 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8eb0030ac1307cc4a2bab127d24df4c1c597807e66c46aba53aa1954a038d58b
|
4
|
+
data.tar.gz: 6fbe9187814d46efd74fee99cee557062161bfb6aecd759459a202ba9d76c5da
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b2052b6f4a010b475cc52f7e026f3352c6e9fd16d731d3e8573f9783b7731051d79279495131c0ff3af150f7773e8278eab9291faa91b4d43612f197805be793
|
7
|
+
data.tar.gz: d9a2a9bb02121fd4200a3d4cf36bd4ff79629f998ea3c601f0d0d598be4573705aee5f14bab8c673e6293c1628e1f28eb723e29704afa20f79e4ab3738764294
|
data/bin/ineedto
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'logger'
|
3
|
+
require 'sequel'
|
4
|
+
|
5
|
+
require File.expand_path('../../lib/cmd', __FILE__)
|
6
|
+
|
7
|
+
logger = Logger.new(STDOUT)
|
8
|
+
logger.level = Logger::DEBUG
|
9
|
+
|
10
|
+
at_exit do
|
11
|
+
logger.close
|
12
|
+
end
|
13
|
+
|
14
|
+
DB = Sequel.sqlite "#{ENV['HOME']}/.ineedtodb"
|
15
|
+
|
16
|
+
DB.create_table(:todos) do
|
17
|
+
primary_key :id
|
18
|
+
Integer :priority
|
19
|
+
String :name
|
20
|
+
TrueClass :done
|
21
|
+
DateTime :due_date
|
22
|
+
DateTime :completed_on
|
23
|
+
end unless DB.table_exists?(:todos)
|
24
|
+
|
25
|
+
|
26
|
+
cmd = case ARGV.first
|
27
|
+
when "new"
|
28
|
+
ARGV.shift
|
29
|
+
Cmd::NewTask.new(DB, logger, STDOUT, STDERR)
|
30
|
+
when "complete"
|
31
|
+
ARGV.shift
|
32
|
+
Cmd::CompleteTask.new(DB, logger, STDOUT, STDERR)
|
33
|
+
when "list"
|
34
|
+
ARGV.shift
|
35
|
+
Cmd::ListTasks.new(DB, logger, STDOUT, STDERR)
|
36
|
+
when "pending"
|
37
|
+
ARGV.shift
|
38
|
+
Cmd::PendingTasks.new(DB, logger, STDOUT, STDERR)
|
39
|
+
when "completed"
|
40
|
+
ARGV.shift
|
41
|
+
Cmd::CompletedTasks.new(DB, logger, STDOUT, STDERR)
|
42
|
+
when "search"
|
43
|
+
ARGV.shift
|
44
|
+
Cmd::SearchTasks.new(DB, logger, STDOUT, STDERR)
|
45
|
+
when "today"
|
46
|
+
ARGV.shift
|
47
|
+
Cmd::TodayTasks.new(DB, logger, STDOUT, STDERR)
|
48
|
+
when "clean"
|
49
|
+
ARGV.shift
|
50
|
+
Cmd::CleanTasks.new(DB, logger, STDOUT, STDERR)
|
51
|
+
else
|
52
|
+
Cmd::Root.new(logger, STDOUT, STDERR)
|
53
|
+
end
|
54
|
+
|
55
|
+
cmd.(ARGV)
|
data/lib/cmd.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative 'cmd/root'
|
2
|
+
require_relative 'cmd/new'
|
3
|
+
require_relative 'cmd/list'
|
4
|
+
require_relative 'cmd/complete'
|
5
|
+
require_relative 'cmd/pending'
|
6
|
+
require_relative 'cmd/completed'
|
7
|
+
require_relative 'cmd/search'
|
8
|
+
require_relative 'cmd/today'
|
9
|
+
require_relative 'cmd/clean'
|
10
|
+
|
11
|
+
module Cmd
|
12
|
+
VERSION = "0.0.1"
|
13
|
+
DATE_FORMAT = "%Y-%m-%d"
|
14
|
+
end
|
data/lib/cmd/clean.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'terminal-table'
|
3
|
+
|
4
|
+
module Cmd
|
5
|
+
class CleanTasks
|
6
|
+
def initialize(db, logger, stdout, stderr)
|
7
|
+
@db = db
|
8
|
+
@logger = logger
|
9
|
+
@stdout = stdout
|
10
|
+
@stderr = stderr
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(argv)
|
14
|
+
_ = parse(argv)
|
15
|
+
todos = @db[:todos].delete
|
16
|
+
@stdout.puts("Tasks cleaned up succesffully")
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def parse(args)
|
22
|
+
options = {}
|
23
|
+
parser = OptionParser.new do |opts|
|
24
|
+
opts.banner = "Usage: ineedto clean"
|
25
|
+
|
26
|
+
opts.on("-h", "--help", "Show help and exit") do
|
27
|
+
@stdout.puts opts
|
28
|
+
exit(0)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
parser.parse!(args)
|
32
|
+
options
|
33
|
+
rescue => e
|
34
|
+
@stderr.puts e.message
|
35
|
+
@stderr.puts parser
|
36
|
+
exit(1)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/cmd/complete.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
|
4
|
+
module Cmd
|
5
|
+
class CompleteTask
|
6
|
+
def initialize(db, logger, stdout, stderr)
|
7
|
+
@db = db
|
8
|
+
@logger = logger
|
9
|
+
@stdout = stdout
|
10
|
+
@stderr = stderr
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(args)
|
14
|
+
options = parse(args)
|
15
|
+
todo = @db[:todos].where(id: options[:id]).first
|
16
|
+
if todo.nil?
|
17
|
+
@stderr.puts "Not found"
|
18
|
+
exit(1)
|
19
|
+
end
|
20
|
+
@db[:todos].where(id: options[:id]).update(done: true, completed_on: Date.today)
|
21
|
+
@stdout.puts "Task completed"
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def parse(args)
|
27
|
+
options = {}
|
28
|
+
parser = OptionParser.new do |opts|
|
29
|
+
opts.banner = "Usage: ineedto complete"
|
30
|
+
|
31
|
+
opts.on("--h", "--help", "Show this help and exit") do
|
32
|
+
@stdout.puts opts
|
33
|
+
exit(0)
|
34
|
+
end
|
35
|
+
|
36
|
+
opts.on("-t ID", "--task ID", Integer, "Task to complete") do |id|
|
37
|
+
options[:id] = id
|
38
|
+
end
|
39
|
+
end
|
40
|
+
parser.parse!(args)
|
41
|
+
options
|
42
|
+
rescue => e
|
43
|
+
@stderr.puts e.message
|
44
|
+
@stderr.puts parser
|
45
|
+
exit(1)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'terminal-table'
|
3
|
+
|
4
|
+
module Cmd
|
5
|
+
class CompletedTasks
|
6
|
+
def initialize(db, logger, stdout, stderr)
|
7
|
+
@db = db
|
8
|
+
@logger = logger
|
9
|
+
@stdout = stdout
|
10
|
+
@stderr = stderr
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(argv)
|
14
|
+
_ = parse(argv)
|
15
|
+
todos = @db[:todos].where(done: true).all
|
16
|
+
table = Terminal::Table.new do |t|
|
17
|
+
t.headings = ["ID", "Priority", "Name", "Done", "Due Date", "Completed On"]
|
18
|
+
todos.each do |todo|
|
19
|
+
t.add_row [todo[:id], todo[:priority], todo[:name], todo[:done], todo[:due_date].strftime(DATE_FORMAT), todo[:completed_on].strftime(DATE_FORMAT)]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
@stdout.puts(table)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def parse(args)
|
29
|
+
options = {}
|
30
|
+
parser = OptionParser.new do |opts|
|
31
|
+
opts.banner = "Usage: todo completed"
|
32
|
+
|
33
|
+
opts.on("-h", "--help", "Show help and exit") do
|
34
|
+
@stdout.puts opts
|
35
|
+
exit(0)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
parser.parse!(args)
|
39
|
+
options
|
40
|
+
rescue => e
|
41
|
+
@stderr.puts e.message
|
42
|
+
@stderr.puts parser
|
43
|
+
exit(1)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/cmd/list.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'terminal-table'
|
3
|
+
|
4
|
+
module Cmd
|
5
|
+
class ListTasks
|
6
|
+
def initialize(db, logger, stdout, stderr)
|
7
|
+
@db = db
|
8
|
+
@logger = logger
|
9
|
+
@stdout = stdout
|
10
|
+
@stderr = stderr
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(argv)
|
14
|
+
_ = parse(argv)
|
15
|
+
todos = @db[:todos].all
|
16
|
+
table = Terminal::Table.new do |t|
|
17
|
+
t.headings = ["ID", "Priority", "Name", "Done", "Due Date", "Completed On"]
|
18
|
+
todos.each do |todo|
|
19
|
+
t.add_row [todo[:id], todo[:priority], todo[:name], todo[:done], todo[:due_date].strftime(DATE_FORMAT), todo[:completed_on] && todo[:completed_on].strftime(DATE_FORMAT)]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
@stdout.puts(table)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def parse(args)
|
29
|
+
options = {}
|
30
|
+
parser = OptionParser.new do |opts|
|
31
|
+
opts.banner = "Usage: ineedto list"
|
32
|
+
|
33
|
+
opts.on("-h", "--help", "Show help and exit") do
|
34
|
+
@stdout.puts opts
|
35
|
+
exit(0)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
parser.parse!(args)
|
39
|
+
options
|
40
|
+
rescue => e
|
41
|
+
@stderr.puts e.message
|
42
|
+
@stderr.puts parser
|
43
|
+
exit(1)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/cmd/new.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'json'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
require 'dry-validation'
|
6
|
+
|
7
|
+
module Cmd
|
8
|
+
class NewTaskContract < Dry::Validation::Contract
|
9
|
+
schema do
|
10
|
+
required(:name).filled(:string, size?: 1..255)
|
11
|
+
required(:priority).filled(:integer, gt?: 0)
|
12
|
+
required(:due_date).filled(:date)
|
13
|
+
end
|
14
|
+
|
15
|
+
rule(:due_date) do
|
16
|
+
key.failure("Cannot be in the past :)") if value < Date.today
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class NewTask
|
21
|
+
def initialize(db, logger, stdout, stderr)
|
22
|
+
@db = db
|
23
|
+
@logger = logger
|
24
|
+
@stdout = stdout
|
25
|
+
@stderr = stderr
|
26
|
+
@contract = NewTaskContract.new
|
27
|
+
end
|
28
|
+
|
29
|
+
def call(args)
|
30
|
+
options = parse(args)
|
31
|
+
errors = @contract.(options).errors(full: true).to_h
|
32
|
+
unless errors.empty?
|
33
|
+
table = Terminal::Table.new do |t|
|
34
|
+
errors.each do |field, errors|
|
35
|
+
row = []
|
36
|
+
row.push(field)
|
37
|
+
errors.each do |err|
|
38
|
+
row.push(err)
|
39
|
+
end
|
40
|
+
t.add_row(row)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
@stderr.puts "Failed to create task"
|
44
|
+
@stderr.puts table
|
45
|
+
return
|
46
|
+
end
|
47
|
+
options[:done] = false
|
48
|
+
@db[:todos].insert(options)
|
49
|
+
@stdout.puts "Task added successfully"
|
50
|
+
rescue => e
|
51
|
+
@stderr.puts e.message
|
52
|
+
@stderr.puts parser
|
53
|
+
exit(1)
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def parse(args)
|
59
|
+
options = {}
|
60
|
+
parser = OptionParser.new do |opts|
|
61
|
+
opts.banner = "Usage: ineedto new"
|
62
|
+
|
63
|
+
opts.on("-h", "--help", "Prints this help") do
|
64
|
+
puts opts
|
65
|
+
exit
|
66
|
+
end
|
67
|
+
|
68
|
+
opts.on("-n", "--name NAME", "Task Name") do |name|
|
69
|
+
options[:name] = name
|
70
|
+
end
|
71
|
+
|
72
|
+
opts.on("-p", "--priority [N]", Integer, "Priority") do |priority|
|
73
|
+
options[:priority] = priority || 1
|
74
|
+
end
|
75
|
+
|
76
|
+
opts.on("-d", "--due-date DUE_DATE", "Due date with format YYYY-MM-DD") do |due_date|
|
77
|
+
options[:due_date] = Date.strptime(due_date, DATE_FORMAT)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
parser.parse(args)
|
81
|
+
options
|
82
|
+
rescue => e
|
83
|
+
@stderr.puts("Failed to parse arguments")
|
84
|
+
@logger.debug(e.message)
|
85
|
+
exit(1)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/cmd/pending.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
require 'optparse'
|
3
|
+
require 'terminal-table'
|
4
|
+
|
5
|
+
module Cmd
|
6
|
+
class PendingTasks
|
7
|
+
def initialize(db, logger, stdout, stderr)
|
8
|
+
@db = db
|
9
|
+
@logger = logger
|
10
|
+
@stdout = stdout
|
11
|
+
@stderr = stderr
|
12
|
+
end
|
13
|
+
|
14
|
+
def call(argv)
|
15
|
+
_ = parse(argv)
|
16
|
+
todos = @db[:todos].where(done: false).all
|
17
|
+
table = Terminal::Table.new do |t|
|
18
|
+
t.headings = ["ID", "Priority", "Name", "Done", "Due Date"]
|
19
|
+
todos.each do |todo|
|
20
|
+
t.add_row [todo[:id], todo[:priority], todo[:name], todo[:done], todo[:due_date].strftime(DATE_FORMAT)]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
@stdout.puts(table)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def parse(args)
|
30
|
+
options = {}
|
31
|
+
parser = OptionParser.new do |opts|
|
32
|
+
opts.banner = "Usage: ineedto pending"
|
33
|
+
|
34
|
+
opts.on("-h", "--help", "Show help and exit") do
|
35
|
+
puts opts
|
36
|
+
exit(0)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
parser.parse!(args)
|
40
|
+
options
|
41
|
+
rescue => e
|
42
|
+
@stderr.puts e.message
|
43
|
+
@stderr.puts parser
|
44
|
+
exit(1)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/cmd/root.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module Cmd
|
4
|
+
class Root
|
5
|
+
def initialize(logger, stdout, stderr)
|
6
|
+
@logger = logger
|
7
|
+
@stdout = stdout
|
8
|
+
@stderr = stderr
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(args)
|
12
|
+
parser = OptionParser.new do |opts|
|
13
|
+
opts.banner = "Usage: ineedto [new|complete|list|pending|completed|today|search]"
|
14
|
+
|
15
|
+
opts.on("-h", "--help", "Prints this help") do
|
16
|
+
@stdout.opts
|
17
|
+
exit
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on("-v", "--version", "Prints version") do
|
21
|
+
@stdout.puts VERSION
|
22
|
+
exit
|
23
|
+
end
|
24
|
+
end
|
25
|
+
parser.parse!(args)
|
26
|
+
@stdout.puts parser
|
27
|
+
rescue => e
|
28
|
+
@stderr.puts e.message
|
29
|
+
@stderr.puts parser
|
30
|
+
exit(1)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/cmd/search.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'terminal-table'
|
3
|
+
|
4
|
+
require 'sequel'
|
5
|
+
|
6
|
+
module Cmd
|
7
|
+
class SearchTasks
|
8
|
+
def initialize(db, logger, stdout, stderr)
|
9
|
+
@db = db
|
10
|
+
@logger = logger
|
11
|
+
@stdout = stdout
|
12
|
+
@stderr = stderr
|
13
|
+
end
|
14
|
+
|
15
|
+
def call(argv)
|
16
|
+
options = parse(argv)
|
17
|
+
todos = @db[:todos].where(Sequel.ilike(:name, "%#{options[:q]}%")).all
|
18
|
+
table = Terminal::Table.new do |t|
|
19
|
+
t.headings = ["ID", "Priority", "Name", "Done", "Due Date", "Completed On"]
|
20
|
+
todos.each do |todo|
|
21
|
+
t.add_row [todo[:id], todo[:priority], todo[:name], todo[:done], todo[:due_date].strftime(DATE_FORMAT), todo[:completed_on] && todo[:completed_on].strftime(DATE_FORMAT)]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
@stdout.puts(table)
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def parse(args)
|
31
|
+
options = {}
|
32
|
+
parser = OptionParser.new do |opts|
|
33
|
+
opts.banner = "Usage: ineedto search"
|
34
|
+
|
35
|
+
opts.on("-h", "--help", "Show help and exit") do
|
36
|
+
@stdout.puts opts
|
37
|
+
exit(0)
|
38
|
+
end
|
39
|
+
|
40
|
+
opts.on("-q", "--query [QUERY]", "Search tasks using q") do |q|
|
41
|
+
options[:q] = q || ""
|
42
|
+
end
|
43
|
+
end
|
44
|
+
parser.parse!(args)
|
45
|
+
options
|
46
|
+
rescue => e
|
47
|
+
@stderr.puts e.message
|
48
|
+
@stderr.puts parser
|
49
|
+
exit(1)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
data/lib/cmd/today.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'terminal-table'
|
3
|
+
|
4
|
+
module Cmd
|
5
|
+
class TodayTasks
|
6
|
+
def initialize(db, logger, stdout, stderr)
|
7
|
+
@db = db
|
8
|
+
@logger = logger
|
9
|
+
@stdout = stdout
|
10
|
+
@stderr = stderr
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(argv)
|
14
|
+
_ = parse(argv)
|
15
|
+
todos = @db[:todos].where(due_date: Date.today).all
|
16
|
+
table = Terminal::Table.new do |t|
|
17
|
+
t.headings = ["ID", "Priority", "Name", "Done", "Due Date", "Completed On"]
|
18
|
+
todos.each do |todo|
|
19
|
+
t.add_row [todo[:id], todo[:priority], todo[:name], todo[:done], todo[:due_date].strftime(DATE_FORMAT), todo[:completed_on] && todo[:completed_on].strftime(DATE_FORMAT)]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
@stdout.puts(table)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def parse(args)
|
29
|
+
options = {}
|
30
|
+
parser = OptionParser.new do |opts|
|
31
|
+
opts.banner = "Usage: ineedto today"
|
32
|
+
|
33
|
+
opts.on("-h", "--help", "Show help and exit") do
|
34
|
+
@stdout.puts opts
|
35
|
+
exit(0)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
parser.parse!(args)
|
39
|
+
options
|
40
|
+
rescue => e
|
41
|
+
@stderr.puts e.message
|
42
|
+
@stderr.puts parser
|
43
|
+
exit(1)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ineedto
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Filip Kostovski
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-06-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dry-validation
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.5.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.5.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sequel
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 5.33.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 5.33.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.4.2
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.4.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: terminal-table
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.8.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.8.0
|
69
|
+
description: Manages tasks by providing interface to crud and search for tasks
|
70
|
+
email: github.sirfilip@gmail.com
|
71
|
+
executables:
|
72
|
+
- ineedto
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- bin/ineedto
|
77
|
+
- lib/cmd.rb
|
78
|
+
- lib/cmd/clean.rb
|
79
|
+
- lib/cmd/complete.rb
|
80
|
+
- lib/cmd/completed.rb
|
81
|
+
- lib/cmd/list.rb
|
82
|
+
- lib/cmd/new.rb
|
83
|
+
- lib/cmd/pending.rb
|
84
|
+
- lib/cmd/root.rb
|
85
|
+
- lib/cmd/search.rb
|
86
|
+
- lib/cmd/today.rb
|
87
|
+
homepage: https://rubygems.org/gems/ineedto
|
88
|
+
licenses:
|
89
|
+
- MIT
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
requirements: []
|
106
|
+
rubygems_version: 3.1.2
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: Simple cmd task organizer
|
110
|
+
test_files: []
|