to-do 1.2.5 → 1.2.6

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,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - rbx-18mode
7
+ - rbx-19mode
8
+ # uncomment this line if your project needs to run something other than `rake`:
9
+ # script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -1,17 +1,16 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
3
+ # Add dependencies required to use your gem here.
8
4
  gem "shoulda", ">= 0"
9
- gem "sequel", ">=3.12"
5
+ gem "sqlite3", ">= 0"
6
+ gem "sequel", ">= 3.12"
10
7
  gem "bundler", ">= 1.0.0"
11
8
  gem "jeweler", "~> 1.8.4"
12
9
  gem "simplecov", ">= 0"
13
10
  gem "colorize", ">= 0"
14
11
 
12
+ # Add dependencies to develop your gem here.
13
+ # Include everything needed to run rake, tests, features, etc.
15
14
  group :development do
16
15
  gem "yard", ">= 0"
17
- end
16
+ end
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
- #to-do 1.2.5
1
+ #to-do 1.2.6 [![Build Status](https://secure.travis-ci.org/kristenmills/to-do.png?branch=master)](http://travis-ci.org/kristenmills/to-do)
2
2
 
3
- A simple command line todo application written in Ruby.
3
+ A simple command line todo application written in Ruby.
4
4
 
5
- ##What's new 1.2.5
6
- * Cleaned up the code by using the gem Sequel for the sqlite things
5
+ ##What's new in 1.2.6
6
+ * Rewrote tests
7
7
  * Bug Fixes
8
8
 
9
9
  ##What's new in 1.2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.5
1
+ 1.2.6
@@ -66,7 +66,7 @@ module Todo
66
66
  clear_each 1, list_name
67
67
  if clear_all
68
68
  clear_each 0, list_name
69
- DATABASE[:Lists].filter(:Name => list_name).update(:Total => 0)
69
+ #DATABASE[:Lists].filter(:Name => list_name).update(:Total => 0)
70
70
  DATABASE[:Lists].filter(:Name => list_name).delete
71
71
  puts "Cleared all tasks in #{list_name}"
72
72
  else
@@ -95,7 +95,7 @@ module Todo
95
95
  puts "Task ##{task} is not in the list."
96
96
  end
97
97
  else
98
- found_task = names[:Tasks__Name.downcase => task.downcase]
98
+ found_task = names.with_sql("SELECT * FROM :table WHERE Name = :task COLLATE NOCASE",:table=>names, :task=>task).first
99
99
  if found_task
100
100
  DATABASE[:Tasks].filter(:Id => found_task[:Id]).update(:Completed => final)
101
101
  else
@@ -10,22 +10,27 @@ end
10
10
  require 'test/unit'
11
11
  require 'shoulda'
12
12
 
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'to-do'
13
+ #$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ #$LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ require File.join(File.dirname(__FILE__), '..', 'lib','to-do')
16
16
 
17
17
  class Test::Unit::TestCase
18
+ def tasks_in_list database
19
+ database[:Tasks].join(:Task_list, :Tasks__id => :Task_list__Task_id).join(
20
+ :Lists, :Lists__id => :Task_list__List_id).select(:Tasks__Task_number, :Tasks__Name,
21
+ :Tasks__Completed).filter(:Lists__Name => Todo::Config[:working_list_name])
22
+ end
18
23
  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
+ Todo::Tasks.add "Cook dinner"
25
+ Todo::Tasks.add "Write Paper"
26
+ Todo::Tasks.add "Do Laundry"
27
+ Todo::Tasks.add "Clean things"
28
+ Todo::Tasks.add "Jump up and down"
24
29
  end
25
30
 
26
31
  def finish_tasks
27
- @list.finish 2, true
28
- @list.finish "Clean Things", false
29
- @list.finish "jUmP up AND down", false
32
+ Todo::Tasks.finish 2, true
33
+ Todo::Tasks.finish "Clean things", false
34
+ Todo::Tasks.finish "jUmP up AND down", false
30
35
  end
31
36
  end
@@ -1,71 +1,75 @@
1
1
  require File.join(File.dirname(__FILE__), 'helper')
2
- require '../lib/to-do.rb'
2
+ require File.join(File.dirname(__FILE__),"..", "lib", "to-do.rb")
3
+ require 'fileutils'
3
4
 
4
5
  class TestToDo < Test::Unit::TestCase
5
6
  context "Test list" do
6
7
  setup do
7
8
  @list_name = Todo::Config[:working_list_name]
8
- @list = Todo::List.new "Test List"
9
+ Todo::Config[:working_list_name] = 'Test list'
10
+ @database = Sequel.sqlite Todo::Config[:task_database]
9
11
  end
10
12
 
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]
13
+ should "be empty" do
14
+ tasks = tasks_in_list @database
15
+ assert_equal 0, tasks.count
17
16
  end
18
17
 
19
18
  should "add some tasks" do
20
19
  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
20
+ tasks = tasks_in_list @database
21
+ list = @database[:Lists][:Name=>Todo::Config[:working_list_name]]
22
+ assert_equal 5, list[:Total]
23
+ assert_equal 0, tasks.filter(:Completed=>1).count
25
24
  end
26
25
 
27
26
  should "finish some tasks" do
28
27
  add_tasks
29
28
  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
29
+ Todo::Tasks.finish "This task doesn't exist", false
30
+ Todo::Tasks.finish 40, true
31
+ tasks = tasks_in_list @database
32
+ puts tasks.filter(:Completed=>1)
33
+ puts tasks.filter(:Completed=>0)
34
+ list = @database[:Lists][:Name=>Todo::Config[:working_list_name]]
35
+ assert_equal 5, list[:Total]
36
+ assert_equal 3, tasks.filter(:Completed=>1).count
37
+ assert_equal 2, tasks.filter(:Completed=>0).count
36
38
  end
37
39
 
38
40
  should "undo some tasks" do
39
41
  add_tasks
40
42
  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
43
+ Todo::Tasks.undo 2, true
44
+ Todo::Tasks.undo "Clean Things", false
45
+ Todo::Tasks.undo "This task doesn't exist", false
46
+ Todo::Tasks.undo 40, true
47
+ tasks = tasks_in_list @database
48
+ list = @database[:Lists][:Name=>Todo::Config[:working_list_name]]
49
+ assert_equal 5, list[:Total]
50
+ assert_equal 1, tasks.filter(:Completed=>1).count
51
+ assert_equal 4, tasks.filter(:Completed=>0).count
49
52
  end
50
53
 
51
54
  should "clear list" do
52
55
  add_tasks
53
56
  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
57
+ Todo::Tasks.clear false
58
+ tasks = tasks_in_list @database
59
+ list = @database[:Lists][:Name=>Todo::Config[:working_list_name]]
60
+ assert_equal 5, list[:Total]
61
+ assert_equal 0, tasks.filter(:Completed=>1).count
62
+ assert_equal 2, tasks.filter(:Completed=>0).count
63
+ Todo::Tasks.finish 3, true
64
+ Todo::Tasks.clear true
65
+ list = @database[:Lists][:Name=>Todo::Config[:working_list_name]]
66
+ assert_nil list
67
+ assert_equal 0, tasks.filter(:Completed=>1).count
68
+ assert_equal 0, tasks.filter(:Completed=>0).count
65
69
  end
66
70
 
67
71
  teardown do
68
- Todo::List.remove "Test List"
72
+ Todo::Tasks.clear true
69
73
  Todo::Config[:working_list_name] = @list_name
70
74
  end
71
75
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "to-do"
8
- s.version = "1.2.5"
8
+ s.version = "1.2.6"
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-23"
12
+ s.date = "2012-07-26"
13
13
  s.description = "A simple command line todo application"
14
14
  s.email = "kristen@kristen-mills.com"
15
15
  s.executables = ["todo"]
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".document",
22
+ ".travis.yml",
22
23
  "Gemfile",
23
24
  "LICENSE.txt",
24
25
  "README.md",
@@ -46,6 +47,7 @@ Gem::Specification.new do |s|
46
47
 
47
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
49
  s.add_runtime_dependency(%q<shoulda>, [">= 0"])
50
+ s.add_runtime_dependency(%q<sqlite3>, [">= 0"])
49
51
  s.add_runtime_dependency(%q<sequel>, [">= 3.12"])
50
52
  s.add_runtime_dependency(%q<bundler>, [">= 1.0.0"])
51
53
  s.add_runtime_dependency(%q<jeweler>, ["~> 1.8.4"])
@@ -54,6 +56,7 @@ Gem::Specification.new do |s|
54
56
  s.add_development_dependency(%q<yard>, [">= 0"])
55
57
  else
56
58
  s.add_dependency(%q<shoulda>, [">= 0"])
59
+ s.add_dependency(%q<sqlite3>, [">= 0"])
57
60
  s.add_dependency(%q<sequel>, [">= 3.12"])
58
61
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
59
62
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
@@ -63,6 +66,7 @@ Gem::Specification.new do |s|
63
66
  end
64
67
  else
65
68
  s.add_dependency(%q<shoulda>, [">= 0"])
69
+ s.add_dependency(%q<sqlite3>, [">= 0"])
66
70
  s.add_dependency(%q<sequel>, [">= 3.12"])
67
71
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
68
72
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
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.2.5
4
+ version: 1.2.6
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-23 00:00:00.000000000 Z
12
+ date: 2012-07-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &70189841281860 !ruby/object:Gem::Requirement
16
+ requirement: &70270233879100 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70189841281860
24
+ version_requirements: *70270233879100
25
+ - !ruby/object:Gem::Dependency
26
+ name: sqlite3
27
+ requirement: &70270233878580 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70270233878580
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: sequel
27
- requirement: &70189841280700 !ruby/object:Gem::Requirement
38
+ requirement: &70270233877760 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: '3.12'
33
44
  type: :runtime
34
45
  prerelease: false
35
- version_requirements: *70189841280700
46
+ version_requirements: *70270233877760
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: bundler
38
- requirement: &70189841279760 !ruby/object:Gem::Requirement
49
+ requirement: &70270233877040 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: 1.0.0
44
55
  type: :runtime
45
56
  prerelease: false
46
- version_requirements: *70189841279760
57
+ version_requirements: *70270233877040
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: jeweler
49
- requirement: &70189841181960 !ruby/object:Gem::Requirement
60
+ requirement: &70270233876160 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ~>
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: 1.8.4
55
66
  type: :runtime
56
67
  prerelease: false
57
- version_requirements: *70189841181960
68
+ version_requirements: *70270233876160
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: simplecov
60
- requirement: &70189841179620 !ruby/object:Gem::Requirement
71
+ requirement: &70270233874360 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ! '>='
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: '0'
66
77
  type: :runtime
67
78
  prerelease: false
68
- version_requirements: *70189841179620
79
+ version_requirements: *70270233874360
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: colorize
71
- requirement: &70189841178880 !ruby/object:Gem::Requirement
82
+ requirement: &70270233872100 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
@@ -76,10 +87,10 @@ dependencies:
76
87
  version: '0'
77
88
  type: :runtime
78
89
  prerelease: false
79
- version_requirements: *70189841178880
90
+ version_requirements: *70270233872100
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: yard
82
- requirement: &70189841177640 !ruby/object:Gem::Requirement
93
+ requirement: &70270233902060 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ! '>='
@@ -87,7 +98,7 @@ dependencies:
87
98
  version: '0'
88
99
  type: :development
89
100
  prerelease: false
90
- version_requirements: *70189841177640
101
+ version_requirements: *70270233902060
91
102
  description: A simple command line todo application
92
103
  email: kristen@kristen-mills.com
93
104
  executables:
@@ -98,6 +109,7 @@ extra_rdoc_files:
98
109
  - README.md
99
110
  files:
100
111
  - .document
112
+ - .travis.yml
101
113
  - Gemfile
102
114
  - LICENSE.txt
103
115
  - README.md
@@ -128,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
140
  version: '0'
129
141
  segments:
130
142
  - 0
131
- hash: 181670245826667648
143
+ hash: 209463214064435770
132
144
  required_rubygems_version: !ruby/object:Gem::Requirement
133
145
  none: false
134
146
  requirements: