hiptask 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/.gitignore +2 -0
- data/README.md +16 -0
- data/bin/hiptask +8 -0
- data/lib/hiptask/cli.rb +67 -0
- data/lib/hiptask/list.rb +83 -0
- data/test/tc_list.rb +39 -0
- metadata +65 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8ddde3405e73d4ffdd450cfa6f8bbee865676918
|
4
|
+
data.tar.gz: e006b4c161f5faeee9cc606e8f7ae49c042aed23
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 56d1371238a331a2aabb61cabbb591c0bc13029d040308c6f8617821635495613c5f56470e67f951c7c0c7a2dee43788b3217f40811c7550ba5263ad3d946ed0
|
7
|
+
data.tar.gz: 001144adffc87f25b47f39b3bc0e443572b255372460fefebfff8ad168ce2ca54f896b423646c13eb9686bdad8d4fc5dfc1cd08cac4cd0edcd3cd7f9ad957431
|
data/.gitignore
ADDED
data/README.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
## Simple
|
2
|
+
|
3
|
+
A hipster command line task applicaiton for me to put my newly learn ruby skills to practical use.
|
4
|
+
|
5
|
+
### Usage
|
6
|
+
|
7
|
+
hiptask # prints help
|
8
|
+
hiptask list # displays your task list
|
9
|
+
hiptask add CONTENT # adds a new task
|
10
|
+
hiptask do ID # marks a task as complete
|
11
|
+
hiptask undo ID # reverts task to normal
|
12
|
+
hiptask delete ID # deletes a task forever
|
13
|
+
|
14
|
+
### Feedback
|
15
|
+
|
16
|
+
I do realise this code won't be the best as it's very my first ruby project. However, I will apreciate any feedback you can give me on the project or my Ruby skills in general.
|
data/bin/hiptask
ADDED
data/lib/hiptask/cli.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'hiptask/list'
|
3
|
+
|
4
|
+
module Hiptask
|
5
|
+
|
6
|
+
class CLI < Thor
|
7
|
+
|
8
|
+
@@filename = './tasks.txt'
|
9
|
+
|
10
|
+
def self.start(argv)
|
11
|
+
@@list = List.new(@@filename)
|
12
|
+
super argv
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
desc "list", "Display your task list"
|
17
|
+
def list()
|
18
|
+
|
19
|
+
puts " "
|
20
|
+
puts " \033[32;1m#{@@list.items.length} Items\033[0m"
|
21
|
+
puts " "
|
22
|
+
@@list.items.each_with_index do |item, index|
|
23
|
+
index = index + 1
|
24
|
+
print " \033[33m#{index.to_s.ljust(2)}\033[0m"
|
25
|
+
if item.start_with? ">"
|
26
|
+
print " [x] "
|
27
|
+
puts "#{item[1, item.length - 1]}"
|
28
|
+
else
|
29
|
+
print " [ ] "
|
30
|
+
puts "#{item}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
puts " "
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
desc "add CONTENT", "Add a new task"
|
39
|
+
def add(content)
|
40
|
+
@@list.add(content)
|
41
|
+
list
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
desc "do ID", "Complete a task"
|
46
|
+
def do(id)
|
47
|
+
@@list.do(id)
|
48
|
+
list
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
desc "undo ID", "Complete a task"
|
53
|
+
def undo(id)
|
54
|
+
@@list.undo(id)
|
55
|
+
list
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
desc "delete ID", "Delete a task"
|
60
|
+
def delete(id)
|
61
|
+
@@list.delete(id)
|
62
|
+
list
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
data/lib/hiptask/list.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
module Hiptask
|
2
|
+
|
3
|
+
class List
|
4
|
+
|
5
|
+
attr_reader :items
|
6
|
+
|
7
|
+
def initialize(filename)
|
8
|
+
|
9
|
+
@filename = filename
|
10
|
+
|
11
|
+
# Create file if it doesn't exist
|
12
|
+
File.open(filename, "w+") unless File.exists?(filename)
|
13
|
+
|
14
|
+
# Load Content from File
|
15
|
+
@items = []
|
16
|
+
@file = File.open(filename, "r")
|
17
|
+
@file.each do |line|
|
18
|
+
@items.push line.strip
|
19
|
+
end
|
20
|
+
@file.close
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def find_by_id(id)
|
26
|
+
id = id.to_i - 1
|
27
|
+
raise "ID must be greater than 0" if id < 0
|
28
|
+
task = nil
|
29
|
+
@items.each_with_index { |line, index|
|
30
|
+
if index == id
|
31
|
+
task = line
|
32
|
+
break
|
33
|
+
end
|
34
|
+
}
|
35
|
+
return task
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def add(content)
|
40
|
+
File.open(@filename, "a") { |file|
|
41
|
+
file.puts content
|
42
|
+
}
|
43
|
+
@items.push content
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
def do(id)
|
48
|
+
id = id.to_i - 1
|
49
|
+
raise "ID must be greater than 0" if id < 0
|
50
|
+
raise "Task not found" unless @items[id]
|
51
|
+
@items[id] = ">" + @items[id] unless @items[id].start_with? ">"
|
52
|
+
save
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def undo(id)
|
57
|
+
id = id.to_i - 1
|
58
|
+
raise "ID must be greater than 0" if id < 0
|
59
|
+
raise "Task not found" unless @items[id]
|
60
|
+
@items[id] = @items[id][1, @items[id].length - 1] if @items[id].start_with? ">"
|
61
|
+
save
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
def delete(id)
|
66
|
+
id = id.to_i - 1
|
67
|
+
raise "ID must be greater than 0" if id < 0
|
68
|
+
raise "Task not found" unless @items[id]
|
69
|
+
@items.delete_at id
|
70
|
+
save
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
private
|
75
|
+
def save
|
76
|
+
File.open(@filename, "w+") { |file|
|
77
|
+
file.puts @items
|
78
|
+
}
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
data/test/tc_list.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'hiptask/list'
|
3
|
+
|
4
|
+
class TestList < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_add
|
7
|
+
list = Hiptask::List.new('/dev/null')
|
8
|
+
list.add("Test 1")
|
9
|
+
puts list.items
|
10
|
+
assert_equal(list.items, ["Test 1"])
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_do
|
14
|
+
list = Hiptask::List.new('/dev/null')
|
15
|
+
list.add("Test 1")
|
16
|
+
assert_equal(list.items, ["Test 1"])
|
17
|
+
list.do('1')
|
18
|
+
assert_equal(list.items, [">Test 1"])
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_undo
|
22
|
+
list = Hiptask::List.new('/dev/null')
|
23
|
+
list.add("Test 1")
|
24
|
+
assert_equal(list.items, ["Test 1"])
|
25
|
+
list.do('1')
|
26
|
+
assert_equal(list.items, [">Test 1"])
|
27
|
+
list.undo('1')
|
28
|
+
assert_equal(list.items, ["Test 1"])
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_delete
|
32
|
+
list = Hiptask::List.new('/dev/null')
|
33
|
+
list.add("Test 1")
|
34
|
+
assert_equal(list.items, ["Test 1"])
|
35
|
+
list.delete('1')
|
36
|
+
assert_equal(list.items, [])
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hiptask
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marc Qualie
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-05-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.18.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.18.1
|
27
|
+
description: A simple command line tool for tracking your task list
|
28
|
+
email: marc@marcqualie.com
|
29
|
+
executables:
|
30
|
+
- hiptask
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- .gitignore
|
35
|
+
- README.md
|
36
|
+
- bin/hiptask
|
37
|
+
- lib/hiptask/cli.rb
|
38
|
+
- lib/hiptask/list.rb
|
39
|
+
- test/tc_list.rb
|
40
|
+
homepage: https://github.com/marcqualie/hiptask
|
41
|
+
licenses:
|
42
|
+
- MIT
|
43
|
+
metadata: {}
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 2.0.3
|
61
|
+
signing_key:
|
62
|
+
specification_version: 4
|
63
|
+
summary: Hipster tasks on the Command Line
|
64
|
+
test_files:
|
65
|
+
- test/tc_list.rb
|