to-do 1.0.3 → 1.1.0
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.
- data/README.md +39 -26
- data/Rakefile +27 -27
- data/VERSION +1 -1
- data/lib/to-do/cli.rb +41 -30
- data/lib/to-do/config.rb +12 -12
- data/lib/to-do/list.rb +42 -10
- data/lib/to-do.rb +1 -1
- data/test/helper.rb +17 -4
- data/test/test_to-do.rb +69 -4
- data/to-do.gemspec +2 -2
- metadata +15 -15
data/README.md
CHANGED
@@ -1,34 +1,45 @@
|
|
1
|
-
#to-do 1.0
|
1
|
+
#to-do 1.1.0
|
2
2
|
|
3
|
-
A simple command line todo application.
|
3
|
+
A simple command line todo application.
|
4
|
+
|
5
|
+
##What's New in 1.1.0
|
6
|
+
* Command shortcuts
|
7
|
+
* Undo completing an item
|
8
|
+
* Colored Display
|
9
|
+
* Display list more often
|
10
|
+
* Bug fixes
|
4
11
|
|
5
12
|
##Install
|
6
13
|
gem install to-do
|
7
14
|
|
8
15
|
##Features
|
9
|
-
* Basic
|
16
|
+
* Basic todo list functionality
|
17
|
+
* Add items
|
18
|
+
* Delete items
|
10
19
|
* Multiple lists
|
11
|
-
*
|
12
|
-
* Delete items
|
13
|
-
* Clear entire list
|
20
|
+
* Clear list
|
14
21
|
* Display list
|
22
|
+
* Colored display
|
23
|
+
* Undo completing
|
15
24
|
|
16
25
|
##How to Use
|
17
|
-
|
26
|
+
|
27
|
+
###Create a new todo list or switch to an existing list
|
18
28
|
|
19
29
|
todo create My New Todo List
|
20
30
|
todo switch My Existing List
|
21
31
|
|
22
|
-
Add some tasks to the
|
32
|
+
###Add some tasks to the current list
|
23
33
|
|
24
34
|
todo add Cook dinner
|
25
35
|
todo add Write Paper
|
26
|
-
todo
|
27
|
-
todo
|
36
|
+
todo a Do Laundy
|
37
|
+
todo a Clean Things
|
28
38
|
|
29
|
-
Display the list
|
39
|
+
###Display the current list
|
30
40
|
|
31
41
|
todo display
|
42
|
+
todo d
|
32
43
|
|
33
44
|
********************************
|
34
45
|
* My New Todo List *
|
@@ -41,14 +52,9 @@ Display the list
|
|
41
52
|
|
42
53
|
Completed: 0/4
|
43
54
|
|
44
|
-
Finish a task
|
45
|
-
|
55
|
+
###Finish a task
|
46
56
|
todo finish -n 2
|
47
|
-
todo
|
48
|
-
|
49
|
-
Display the list again
|
50
|
-
|
51
|
-
todo display
|
57
|
+
todo f Clean Things
|
52
58
|
|
53
59
|
********************************
|
54
60
|
* My New Todo List *
|
@@ -60,26 +66,33 @@ Display the list again
|
|
60
66
|
Completed: 2/4
|
61
67
|
2. Write Paper
|
62
68
|
4. Clean Things
|
69
|
+
|
70
|
+
###Undo completing a task
|
71
|
+
todo undo write paper
|
72
|
+
todo u -n 2
|
63
73
|
|
64
|
-
|
74
|
+
###Clear completed tasks
|
65
75
|
|
66
76
|
todo clear
|
67
77
|
|
68
|
-
|
78
|
+
###Clear the entire list and reset the count
|
69
79
|
|
70
80
|
todo clear -a
|
71
81
|
|
72
|
-
|
82
|
+
###View usage details
|
73
83
|
|
74
84
|
todo -h
|
75
|
-
|
76
|
-
or
|
77
|
-
|
78
85
|
todo --help
|
86
|
+
|
87
|
+
###View verison
|
88
|
+
todo -v
|
89
|
+
todo --version
|
79
90
|
|
80
91
|
##Future Plans
|
81
92
|
* Delete list
|
82
|
-
*
|
93
|
+
* Tags
|
94
|
+
* Due Dates
|
95
|
+
* Tab Completion
|
83
96
|
|
84
97
|
##Contributing to to-do
|
85
98
|
|
@@ -94,4 +107,4 @@ or
|
|
94
107
|
##Copyright
|
95
108
|
|
96
109
|
Copyright (c) 2012 Kristen Mills. See LICENSE.txt for
|
97
|
-
further details.
|
110
|
+
further details.
|
data/Rakefile
CHANGED
@@ -3,50 +3,50 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'bundler'
|
5
5
|
begin
|
6
|
-
|
6
|
+
Bundler.setup(:default, :development)
|
7
7
|
rescue Bundler::BundlerError => e
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
11
|
end
|
12
12
|
require 'rake'
|
13
13
|
|
14
14
|
require 'jeweler'
|
15
15
|
Jeweler::Tasks.new do |gem|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "to-do"
|
18
|
+
gem.homepage = "http://github.com/kristenmills/to-do"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = "A simple command line todo application"
|
21
|
+
gem.description = "A simple command line todo application"
|
22
|
+
gem.email = "kristen@kristen-mills.com"
|
23
|
+
gem.authors = ["Kristen Mills"]
|
24
|
+
gem.executables = ['todo']
|
25
|
+
# dependencies defined in Gemfile
|
26
26
|
end
|
27
27
|
Jeweler::RubygemsDotOrgTasks.new
|
28
28
|
|
29
29
|
require 'rake/testtask'
|
30
30
|
Rake::TestTask.new(:test) do |test|
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
test.libs << 'lib' << 'test'
|
32
|
+
test.pattern = 'test/**/test_*.rb'
|
33
|
+
test.verbose = true
|
34
34
|
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
desc "Code coverage detail"
|
37
|
+
task :simplecov do
|
38
|
+
ENV['COVERAGE'] = "true"
|
39
|
+
Rake::Task['spec'].execute
|
40
|
+
end
|
41
41
|
|
42
42
|
task :default => :test
|
43
43
|
|
44
44
|
require 'rdoc/task'
|
45
45
|
Rake::RDocTask.new do |rdoc|
|
46
|
-
|
46
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
rdoc.rdoc_dir = 'rdoc'
|
49
|
+
rdoc.title = "to-do #{version}"
|
50
|
+
rdoc.rdoc_files.include('README*')
|
51
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
52
52
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/lib/to-do/cli.rb
CHANGED
@@ -8,9 +8,9 @@ module Todo
|
|
8
8
|
module CLI
|
9
9
|
extend self
|
10
10
|
# Displays the given todo list
|
11
|
-
WORKING_LIST=YAML.load_file(File.join(Config[
|
12
|
-
Config[
|
13
|
-
Config[
|
11
|
+
WORKING_LIST=YAML.load_file(File.join(Config[:lists_directory],
|
12
|
+
Config[:working_list_name]+'.yml')) if File.exists?(File.join(Config[:lists_directory],
|
13
|
+
Config[:working_list_name]+'.yml'))
|
14
14
|
|
15
15
|
def display name
|
16
16
|
puts "********************************".colorize(:light_red)
|
@@ -38,49 +38,60 @@ module Todo
|
|
38
38
|
:clear_all => false
|
39
39
|
}
|
40
40
|
optparse = OptionParser.new do |opts|
|
41
|
-
opts.version = "1.0
|
41
|
+
opts.version = "1.1.0"
|
42
42
|
opts.banner = "Usage: todo [COMMAND] [option] [arguments]"
|
43
43
|
opts.separator "Commands:"
|
44
|
-
opts.separator " add
|
45
|
-
opts.separator " finish marks the task as completed"
|
44
|
+
opts.separator " add, a adds the task to the working list"
|
45
|
+
opts.separator " finish, f marks the task as completed"
|
46
46
|
opts.separator " clear clears completed tasks"
|
47
|
+
opts.separator " undo, u undos a completed task"
|
47
48
|
opts.separator " create creates a new list or switches to existing"
|
48
49
|
opts.separator " switch creates a new list or switches to existing"
|
49
|
-
opts.separator " display displays the list"
|
50
|
+
opts.separator " display, d displays the list"
|
50
51
|
opts.separator "Options: "
|
51
|
-
opts.on('-n', '
|
52
|
+
opts.on('-n', 'finish or undo, the task given is a number') do
|
52
53
|
options[:is_num] = true
|
53
54
|
end
|
54
55
|
opts.on('-a', 'for clear, will reset the entire list') do
|
55
56
|
options[:clear_all] = true
|
56
57
|
end
|
57
58
|
opts.on('-h', '--help', 'Display this screen' ) do
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
59
|
+
puts opts
|
60
|
+
return
|
61
|
+
end
|
62
|
+
opts.on('-w', "display the current working list") do
|
63
|
+
puts "Working list is #{WORKING_LIST.name}"
|
64
|
+
return
|
65
|
+
end
|
66
|
+
end
|
67
|
+
optparse.parse!
|
68
|
+
if ARGV.count > 0
|
69
|
+
case ARGV[0]
|
70
|
+
when "add", "a"
|
71
|
+
ARGV.count > 1 ? WORKING_LIST.add(ARGV[1..-1].join(' ')) : puts("Invalid Command")
|
72
|
+
self.display WORKING_LIST.name
|
73
|
+
when "finish", "f"
|
74
|
+
WORKING_LIST.finish ARGV[1..-1].join(' '), options[:is_num]
|
75
|
+
self.display WORKING_LIST.name
|
76
|
+
when "clear"
|
77
|
+
WORKING_LIST.clear options[:clear_all]
|
78
|
+
when "display", "d"
|
79
|
+
self.display WORKING_LIST.name
|
80
|
+
when "create", "switch"
|
81
|
+
if File.exists?(File.join(Config[:lists_directory], ARGV[1..-1].join('_').downcase + '.yml'))
|
82
|
+
Config[:working_list_name] = ARGV[1..-1].join('_').downcase
|
76
83
|
puts "Switch to #{ARGV[1..-1].join(' ')}"
|
84
|
+
self.display WORKING_LIST.name
|
77
85
|
else
|
78
86
|
ARGV.count > 1 ? List.new(ARGV[1..-1].join(' ')) : puts("Invalid Command")
|
79
87
|
end
|
88
|
+
when "undo", "u"
|
89
|
+
WORKING_LIST.undo ARGV[1..-1].join(' '), options[:is_num]
|
90
|
+
self.display WORKING_LIST.name
|
80
91
|
else
|
81
92
|
puts "Invalid Command"
|
82
|
-
|
83
|
-
|
84
|
-
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
85
96
|
end
|
86
|
-
end
|
97
|
+
end
|
data/lib/to-do/config.rb
CHANGED
@@ -11,9 +11,9 @@ module Todo
|
|
11
11
|
def defaults
|
12
12
|
{
|
13
13
|
# the location of all all your list yaml files
|
14
|
-
|
14
|
+
:lists_directory => File.join(ENV["HOME"],".to-do","lists"),
|
15
15
|
# the current working list
|
16
|
-
|
16
|
+
:working_list_name => "default_list"
|
17
17
|
}
|
18
18
|
end
|
19
19
|
|
@@ -29,20 +29,20 @@ module Todo
|
|
29
29
|
configs = defaults.merge(fileval)
|
30
30
|
configs[key] = value
|
31
31
|
File.open(PATH, 'w') do |fh|
|
32
|
-
|
33
|
-
|
32
|
+
fh.puts(configs.to_yaml)
|
33
|
+
end
|
34
34
|
end
|
35
35
|
|
36
36
|
#writes the config file path
|
37
37
|
def write
|
38
38
|
configs = if File.exist? PATH
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
39
|
+
defaults.merge(YAML.load_file PATH)
|
40
|
+
else
|
41
|
+
defaults
|
42
|
+
end
|
43
|
+
File.open(PATH, 'w') do |fh|
|
44
|
+
fh.puts(configs.to_yaml)
|
45
|
+
end
|
46
46
|
end
|
47
47
|
end
|
48
|
-
end
|
48
|
+
end
|
data/lib/to-do/list.rb
CHANGED
@@ -12,24 +12,24 @@ module Todo
|
|
12
12
|
@count = 0
|
13
13
|
@completed_count = 0
|
14
14
|
@name = name
|
15
|
-
if !File.exists? Config[
|
16
|
-
Dir.mkdir(Config[
|
15
|
+
if !File.exists? Config[:lists_directory]
|
16
|
+
Dir.mkdir(Config[:lists_directory])
|
17
17
|
end
|
18
18
|
update
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
Config[:working_list_name] = name.downcase.gsub(/ /, '_')
|
20
|
+
Config.write
|
21
|
+
puts "Created List #{name}."
|
22
22
|
end
|
23
23
|
|
24
24
|
# updates the yaml
|
25
25
|
def update
|
26
|
-
path = File.join(Config[
|
26
|
+
path = File.join(Config[:lists_directory], @name.downcase.gsub(/ /, '_') +'.yml')
|
27
27
|
File.open(path, 'w') do |fh|
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
fh.puts(self.to_yaml)
|
29
|
+
end
|
30
|
+
end
|
31
31
|
|
32
|
-
|
32
|
+
# adds the tast to the list
|
33
33
|
def add task
|
34
34
|
@count+=1
|
35
35
|
@tasks[@count] = task
|
@@ -45,6 +45,7 @@ module Todo
|
|
45
45
|
@completed_tasks[task.to_i] = @tasks[task.to_i]
|
46
46
|
@tasks.delete(task.to_i)
|
47
47
|
@completed_count+=1
|
48
|
+
@completed_tasks = Hash[@completed_tasks.sort]
|
48
49
|
puts "Finished #{@completed_tasks[task.to_i]}."
|
49
50
|
else
|
50
51
|
puts "Task \##{task} not in list."
|
@@ -59,6 +60,7 @@ module Todo
|
|
59
60
|
@completed_tasks[num] = @tasks[num]
|
60
61
|
@tasks.delete(num)
|
61
62
|
@completed_count+=1
|
63
|
+
@completed_tasks = Hash[@completed_tasks.sort]
|
62
64
|
puts "Finished #{@completed_tasks[num]}."
|
63
65
|
else
|
64
66
|
puts "Task #{task} is not in list."
|
@@ -67,6 +69,36 @@ module Todo
|
|
67
69
|
update
|
68
70
|
end
|
69
71
|
|
72
|
+
def undo task, is_num
|
73
|
+
if is_num
|
74
|
+
if !@completed_tasks[task.to_i].nil?
|
75
|
+
@tasks[task.to_i] = @completed_tasks[task.to_i]
|
76
|
+
@completed_tasks.delete(task.to_i)
|
77
|
+
@completed_count-=1
|
78
|
+
@tasks = Hash[@tasks.sort]
|
79
|
+
puts "Undo completeing #{@tasks[task.to_i]}."
|
80
|
+
else
|
81
|
+
puts "Task \##{task} not in list."
|
82
|
+
end
|
83
|
+
else
|
84
|
+
hash = Hash.new
|
85
|
+
@completed_tasks.each do |k,v|
|
86
|
+
hash[k] = v.downcase
|
87
|
+
end
|
88
|
+
if hash.value?(task.downcase)
|
89
|
+
num = hash.key(task.downcase)
|
90
|
+
@tasks[num] = @completed_tasks[num]
|
91
|
+
@completed_tasks.delete(num)
|
92
|
+
@completed_count-=1
|
93
|
+
@tasks = Hash[@tasks.sort]
|
94
|
+
puts "Undo completeing #{@tasks[num]}."
|
95
|
+
else
|
96
|
+
puts "Task #{task} is not in list."
|
97
|
+
end
|
98
|
+
end
|
99
|
+
update
|
100
|
+
end
|
101
|
+
|
70
102
|
#clears the completed tasks
|
71
103
|
def clear_completed
|
72
104
|
@completed_tasks = Hash.new
|
data/lib/to-do.rb
CHANGED
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), 'to-do', 'list')
|
|
3
3
|
if !File.exists?(File.join(ENV['HOME'], '.to-do'))
|
4
4
|
Dir.mkdir(File.join(ENV['HOME'], '.to-do'))
|
5
5
|
Todo::Config.write
|
6
|
-
Dir.mkdir(Todo::Config[
|
6
|
+
Dir.mkdir(Todo::Config[:lists_directory])
|
7
7
|
Todo::List.new "Default List"
|
8
8
|
end
|
9
9
|
require File.join(File.dirname(__FILE__), 'to-do', 'cli')
|
data/test/helper.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
3
|
begin
|
4
|
-
|
4
|
+
Bundler.setup(:default, :development)
|
5
5
|
rescue Bundler::BundlerError => e
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
9
|
end
|
10
10
|
require 'test/unit'
|
11
11
|
require 'shoulda'
|
@@ -15,4 +15,17 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
15
15
|
require 'to-do'
|
16
16
|
|
17
17
|
class Test::Unit::TestCase
|
18
|
+
def add_tasks
|
19
|
+
@list.add "Cook dinner"
|
20
|
+
@list.add "Write Paper"
|
21
|
+
@list.add "Do Laundry"
|
22
|
+
@list.add "Clean things"
|
23
|
+
@list.add "Jump up and down"
|
24
|
+
end
|
25
|
+
|
26
|
+
def finish_tasks
|
27
|
+
@list.finish 2, true
|
28
|
+
@list.finish "Clean Things", false
|
29
|
+
@list.finish "jUmP up AND down", false
|
30
|
+
end
|
18
31
|
end
|
data/test/test_to-do.rb
CHANGED
@@ -1,7 +1,72 @@
|
|
1
|
-
require 'helper'
|
1
|
+
require File.join(File.dirname(__FILE__), 'helper')
|
2
|
+
require '../lib/to-do.rb'
|
2
3
|
|
3
4
|
class TestToDo < Test::Unit::TestCase
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
context "Test list" do
|
6
|
+
setup do
|
7
|
+
@list_name = Todo::Config[:working_list_name]
|
8
|
+
@list = Todo::List.new "Test List"
|
9
|
+
end
|
10
|
+
|
11
|
+
should "list is empty" do
|
12
|
+
assert_equal 0, @list.count
|
13
|
+
assert_equal 0, @list.completed_count
|
14
|
+
assert_equal 0, @list.tasks.count
|
15
|
+
assert_equal 0, @list.completed_tasks.count
|
16
|
+
assert_equal "test_list" , Todo::Config[:working_list_name]
|
17
|
+
end
|
18
|
+
|
19
|
+
should "add some tasks" do
|
20
|
+
add_tasks
|
21
|
+
assert_equal 5, @list.count
|
22
|
+
assert_equal 0, @list.completed_count
|
23
|
+
assert_equal 5, @list.tasks.count
|
24
|
+
assert_equal 0, @list.completed_tasks.count
|
25
|
+
end
|
26
|
+
|
27
|
+
should "finish some tasks" do
|
28
|
+
add_tasks
|
29
|
+
finish_tasks
|
30
|
+
@list.finish "This task doesn't exist", false
|
31
|
+
@list.finish 40, true
|
32
|
+
assert_equal 5, @list.count
|
33
|
+
assert_equal 3, @list.completed_count
|
34
|
+
assert_equal 2, @list.tasks.count
|
35
|
+
assert_equal 3, @list.completed_tasks.count
|
36
|
+
end
|
37
|
+
|
38
|
+
should "undo some tasks" do
|
39
|
+
add_tasks
|
40
|
+
finish_tasks
|
41
|
+
@list.undo 2, true
|
42
|
+
@list.undo "Clean Things", false
|
43
|
+
@list.undo "This task doesn't exist", false
|
44
|
+
@list.undo 40, true
|
45
|
+
assert_equal 5, @list.count
|
46
|
+
assert_equal 1, @list.completed_count
|
47
|
+
assert_equal 4, @list.tasks.count
|
48
|
+
assert_equal 1, @list.completed_tasks.count
|
49
|
+
end
|
50
|
+
|
51
|
+
should "clear list" do
|
52
|
+
add_tasks
|
53
|
+
finish_tasks
|
54
|
+
@list.clear false
|
55
|
+
assert_equal 5, @list.count
|
56
|
+
assert_equal 3, @list.completed_count
|
57
|
+
assert_equal 2, @list.tasks.count
|
58
|
+
assert_equal 0, @list.completed_tasks.count
|
59
|
+
@list.finish 3, true
|
60
|
+
@list.clear true
|
61
|
+
assert_equal 0, @list.count
|
62
|
+
assert_equal 0, @list.completed_count
|
63
|
+
assert_equal 0, @list.tasks.count
|
64
|
+
assert_equal 0, @list.completed_tasks.count
|
65
|
+
end
|
66
|
+
|
67
|
+
teardown do
|
68
|
+
#remove list when I create that functionality
|
69
|
+
Todo::Config[:working_list_name] = @list_name
|
70
|
+
end
|
71
|
+
end
|
7
72
|
end
|
data/to-do.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "to-do"
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristen Mills"]
|
12
|
-
s.date = "2012-07-
|
12
|
+
s.date = "2012-07-10"
|
13
13
|
s.description = "A simple command line todo application"
|
14
14
|
s.email = "kristen@kristen-mills.com"
|
15
15
|
s.executables = ["todo"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: to-do
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shoulda
|
16
|
-
requirement: &
|
16
|
+
requirement: &70207567186320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70207567186320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rdoc
|
27
|
-
requirement: &
|
27
|
+
requirement: &70207567185800 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '3.12'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70207567185800
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70207567185280 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70207567185280
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70207567184780 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.8.4
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70207567184780
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &70207567184220 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70207567184220
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: colorize
|
71
|
-
requirement: &
|
71
|
+
requirement: &70207567183300 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70207567183300
|
80
80
|
description: A simple command line todo application
|
81
81
|
email: kristen@kristen-mills.com
|
82
82
|
executables:
|
@@ -116,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
116
|
version: '0'
|
117
117
|
segments:
|
118
118
|
- 0
|
119
|
-
hash:
|
119
|
+
hash: -1801318960934950244
|
120
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
122
122
|
requirements:
|