rubdo 0.2.5 → 0.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.
- data/README.md +1 -1
- data/Rakefile +7 -0
- data/bin/rubdo +1 -1
- data/lib/rubdo/cli.rb +6 -5
- data/lib/rubdo/item.rb +1 -2
- data/lib/rubdo/list.rb +14 -7
- data/lib/rubdo/version.rb +1 -1
- data/rubdo.gemspec +2 -2
- data/spec/rubdo_tests.rb +55 -0
- metadata +7 -5
data/README.md
CHANGED
data/Rakefile
CHANGED
data/bin/rubdo
CHANGED
data/lib/rubdo/cli.rb
CHANGED
@@ -31,15 +31,16 @@ module Rubdo
|
|
31
31
|
|
32
32
|
def list
|
33
33
|
@list.to_a.each_with_index { |item, index| puts "#{index + 1}: #{item.description}" }
|
34
|
-
puts "no tasks" if @list.
|
34
|
+
puts "no tasks" if @list.to_a.empty?
|
35
35
|
end
|
36
36
|
|
37
37
|
def edit
|
38
|
-
abort("not a valid id") if @id == -1 or @id > @list.
|
39
|
-
|
40
|
-
|
38
|
+
abort("not a valid id") if @id == -1 or @id > @list.to_a.length
|
39
|
+
|
40
|
+
tmp_file = Tempfile.new('new_description')
|
41
|
+
File.open(tmp_file.path, 'w') { |f| f.write(@list.to_a[@id].description) }
|
41
42
|
system("$EDITOR #{tmp_file.path}")
|
42
|
-
@list.
|
43
|
+
@list.to_a[@id].description = File.read(tmp_file).chomp
|
43
44
|
tmp_file.delete
|
44
45
|
save
|
45
46
|
end
|
data/lib/rubdo/item.rb
CHANGED
data/lib/rubdo/list.rb
CHANGED
@@ -4,11 +4,13 @@ require 'fileutils'
|
|
4
4
|
|
5
5
|
module Rubdo
|
6
6
|
class List
|
7
|
-
|
7
|
+
attr_accessor :items, :storage
|
8
8
|
|
9
9
|
def self.read(file)
|
10
|
-
|
11
|
-
[]
|
10
|
+
todos = YAML.load_file(file) if File.exists? file
|
11
|
+
todos ||=[]
|
12
|
+
|
13
|
+
todos
|
12
14
|
end
|
13
15
|
|
14
16
|
def initialize(todos)
|
@@ -21,18 +23,23 @@ module Rubdo
|
|
21
23
|
@items << Item.new(description)
|
22
24
|
end
|
23
25
|
|
24
|
-
def write
|
25
|
-
File.open(self.storage, 'w') { |todos| todos.write(@items.to_yaml) }
|
26
|
-
end
|
27
|
-
|
28
26
|
def done(id)
|
29
27
|
@items.delete_at id
|
30
28
|
end
|
31
29
|
|
30
|
+
def edit(id)
|
31
|
+
@items[id]
|
32
|
+
end
|
33
|
+
|
34
|
+
def write
|
35
|
+
File.open(self.storage, 'w') { |todos| todos.write(@items.to_yaml) }
|
36
|
+
end
|
37
|
+
|
32
38
|
def to_a
|
33
39
|
self.items
|
34
40
|
end
|
35
41
|
|
36
42
|
alias_method :<<, :add
|
43
|
+
alias_method :save, :write
|
37
44
|
end
|
38
45
|
end
|
data/lib/rubdo/version.rb
CHANGED
data/rubdo.gemspec
CHANGED
@@ -4,8 +4,8 @@ require File.expand_path('../lib/rubdo/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.authors = ["Teo Ljungberg"]
|
6
6
|
gem.email = ["teo.ljungberg@gmail.com"]
|
7
|
-
gem.description = %q{
|
8
|
-
gem.summary = %q{
|
7
|
+
gem.description = %q{My take on the todo-applications}
|
8
|
+
gem.summary = %q{My take on the todo-applications}
|
9
9
|
gem.homepage = "http://github.com/metamorfos/rubdo"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
data/spec/rubdo_tests.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rubdo'
|
3
|
+
|
4
|
+
describe Rubdo::Item do
|
5
|
+
before do
|
6
|
+
@item = Rubdo::Item.new('New todo item')
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#new' do
|
10
|
+
it 'assigns a text value to rubdo' do
|
11
|
+
@item.description.should eq('New todo item')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe Rubdo::List do
|
17
|
+
before do
|
18
|
+
@list = Rubdo::List.new(Rubdo::List.read(File.join(File.dirname(__FILE__), 'test.yml')))
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#add' do
|
22
|
+
it 'adds 3 todo items' do
|
23
|
+
@list.add('Buy milk')
|
24
|
+
@list.add('Buy beer')
|
25
|
+
@list.add('But peanuts')
|
26
|
+
@list.to_a.size.should eq(3)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#done' do
|
31
|
+
before do
|
32
|
+
@list = Rubdo::List.new(Rubdo::List.read(File.join(File.dirname(__FILE__), 'test.yml')))
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'deletes a todo item' do
|
36
|
+
@list.add('Watch TV')
|
37
|
+
@list.add('Walk the dog')
|
38
|
+
@list.done(0).description.should eq('Watch TV')
|
39
|
+
@list.to_a.size.should eq(1)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '#edit' do
|
44
|
+
before do
|
45
|
+
@list = Rubdo::List.new(Rubdo::List.read(File.join(File.dirname(__FILE__), 'test.yml')))
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'edits a task' do
|
49
|
+
@list.add("I can't go out, I'm sik")
|
50
|
+
@list.edit(0).description = "I can't go out, I'm sick"
|
51
|
+
@list.to_a[0].description.should eq("I can't go out, I'm sick")
|
52
|
+
@list.to_a.size.should eq(1)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubdo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,9 +9,9 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-22 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
|
-
description:
|
14
|
+
description: My take on the todo-applications
|
15
15
|
email:
|
16
16
|
- teo.ljungberg@gmail.com
|
17
17
|
executables:
|
@@ -32,6 +32,7 @@ files:
|
|
32
32
|
- lib/rubdo/list.rb
|
33
33
|
- lib/rubdo/version.rb
|
34
34
|
- rubdo.gemspec
|
35
|
+
- spec/rubdo_tests.rb
|
35
36
|
homepage: http://github.com/metamorfos/rubdo
|
36
37
|
licenses: []
|
37
38
|
post_install_message:
|
@@ -55,5 +56,6 @@ rubyforge_project:
|
|
55
56
|
rubygems_version: 1.8.23
|
56
57
|
signing_key:
|
57
58
|
specification_version: 3
|
58
|
-
summary:
|
59
|
-
test_files:
|
59
|
+
summary: My take on the todo-applications
|
60
|
+
test_files:
|
61
|
+
- spec/rubdo_tests.rb
|