milkmaid 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.rdoc +18 -38
- data/VERSION +1 -1
- data/bin/milkmaid +82 -65
- data/lib/milkmaid.rb +34 -14
- data/milkmaid.gemspec +3 -3
- data/spec/milkmaid_spec.rb +67 -10
- metadata +18 -18
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -1,20 +1,16 @@
|
|
1
|
-
|
2
1
|
= Milkmaid
|
3
|
-
|
4
2
|
Milkmaid is a command-line client for Remember the Milk.
|
5
3
|
|
6
4
|
==Features
|
7
|
-
* View a list of incomplete tasks, and their
|
5
|
+
* View a list of incomplete tasks, their due dates, and their priorities by list
|
8
6
|
* Complete a task
|
9
7
|
* Postpone a task
|
10
8
|
* Add a new task, setting properties using the Smart Add feature
|
11
9
|
|
12
10
|
== Installing
|
13
|
-
|
14
|
-
$ gem install milkmaid
|
11
|
+
$ gem install milkmaid
|
15
12
|
|
16
13
|
== Authorizing
|
17
|
-
|
18
14
|
Before you can connect to your tasks you must authorize the client.
|
19
15
|
|
20
16
|
1. $ milkmaid auth start
|
@@ -24,58 +20,43 @@ Before you can connect to your tasks you must authorize the client.
|
|
24
20
|
Now you are ready to work with your tasks.
|
25
21
|
|
26
22
|
== Commands
|
23
|
+
Use the -h option to view a list of commands and options for each command.
|
27
24
|
|
28
|
-
|
29
|
-
|
30
|
-
number appears at the beginning.
|
31
|
-
|
32
|
-
$ milkmaid list
|
33
|
-
|
34
|
-
|
35
|
-
Complete a task
|
36
|
-
|
37
|
-
$ milkmaid complete <task number>
|
38
|
-
|
39
|
-
|
40
|
-
Postpone a task
|
41
|
-
|
42
|
-
$ milkmaid postpone <task number>
|
25
|
+
$ milkmaid -h
|
26
|
+
$ milkmaid task -h
|
43
27
|
|
28
|
+
== Working with tasks and lists
|
29
|
+
Whenever you want to reference a task or list, such as when completing a task or
|
30
|
+
viewing tasks within a specific list you must first view the tasks or lists in order
|
31
|
+
to load their ID numbers and assign them to a much easier to use local ID.
|
44
32
|
|
45
|
-
|
46
|
-
|
47
|
-
$ milkmaid delete <task number>
|
48
|
-
|
49
|
-
Add a task (Use single quotes to contain the task name)
|
50
|
-
|
51
|
-
Adding a task supports Remember the Milk's Smart Add feature. With it you
|
52
|
-
can set properties such as the due date, priority, etc.
|
53
|
-
|
54
|
-
$ milkmaid add '<task name>'
|
33
|
+
$ milkmaid list
|
34
|
+
$ milkmaid task
|
55
35
|
|
56
36
|
== Version history
|
37
|
+
=== 0.3.0
|
38
|
+
* See a list of available lists with the list command
|
39
|
+
* View incomplete tasks by list with the -l option
|
40
|
+
* Updated command structure. Use the -h option to see commands.
|
41
|
+
* Friendly message when unable to connect to server
|
57
42
|
|
58
43
|
=== 0.2.1
|
59
|
-
|
60
44
|
* Fixed auth scenarios
|
61
45
|
|
62
|
-
|
63
46
|
=== 0.2.0
|
64
|
-
|
65
47
|
* New delete command
|
66
48
|
* Friendlier usage information
|
67
49
|
|
68
50
|
=== 0.1.1
|
69
|
-
|
70
51
|
* Fixed an issue when listing tasks with recurrences that were completed
|
71
52
|
|
72
53
|
=== 0.1.0
|
73
|
-
|
74
54
|
* Initial version
|
75
55
|
|
56
|
+
== Contact me
|
57
|
+
Follow me on twitter: @mariusgrigoriu
|
76
58
|
|
77
59
|
== Contributing to Milkmaid
|
78
|
-
|
79
60
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
80
61
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
81
62
|
* Fork the project
|
@@ -85,7 +66,6 @@ $ milkmaid add '<task name>'
|
|
85
66
|
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
86
67
|
|
87
68
|
== Copyright
|
88
|
-
|
89
69
|
Copyright (c) 2011 Marius Grigoriu. See LICENSE.txt for
|
90
70
|
further details.
|
91
71
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/bin/milkmaid
CHANGED
@@ -10,6 +10,22 @@ def milkmaid
|
|
10
10
|
@milkmaid ||= Milkmaid.new
|
11
11
|
end
|
12
12
|
|
13
|
+
def handle_exceptions
|
14
|
+
begin
|
15
|
+
yield
|
16
|
+
rescue RTM::NoTokenException
|
17
|
+
puts "Authentication token not found. Run `#{__FILE__} auth start`"
|
18
|
+
rescue Milkmaid::TaskNotFound
|
19
|
+
puts "Task ##{params['tasknum'].value} not found. Run `#{__FILE__} task` " +
|
20
|
+
"to load a list of tasks."
|
21
|
+
rescue Milkmaid::ListNotFound
|
22
|
+
puts "List ##{params['listnum'].value} not found. Run `#{__FILE__} list` " +
|
23
|
+
"to load lists."
|
24
|
+
rescue Errno::ETIMEDOUT
|
25
|
+
puts "Unable to connect to the server. Please try again later."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
13
29
|
Main {
|
14
30
|
description "Milkmaid command-line client for Remember the Milk\n" +
|
15
31
|
"If this is your first time running this, use the auth command to connect to your account."
|
@@ -19,20 +35,39 @@ Main {
|
|
19
35
|
end
|
20
36
|
|
21
37
|
mode :list do
|
22
|
-
description "
|
38
|
+
description "Display the available lists."
|
39
|
+
|
40
|
+
def run
|
41
|
+
handle_exceptions do
|
42
|
+
milkmaid.lists.each_with_index { |list, i| puts "#{i+1}: #{list['name']}" }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
mode :task do
|
48
|
+
description "Lists inactive tasks. Tasks that repeat are marked with a (R).\n" +
|
23
49
|
"If there is a due date, it appears to the right of the task. Tasks are color\n" +
|
24
50
|
"coded by priority the same when viewed on the web. Tasks due today are in bold\n" +
|
25
51
|
"while tasks that are overdue are underlined.\n" +
|
26
52
|
"Use this command to assign a number to tasks so you may perform other actions."
|
27
|
-
|
53
|
+
|
54
|
+
option('listnum','l') {
|
55
|
+
argument :optional
|
56
|
+
cast :int
|
57
|
+
description <<-EOD
|
58
|
+
Show tasks that belong to the given list. Use the number as printed by the
|
59
|
+
list command.
|
60
|
+
EOD
|
61
|
+
}
|
62
|
+
|
28
63
|
def run
|
29
|
-
|
30
|
-
milkmaid.incomplete_tasks.each_with_index do |
|
31
|
-
task = Milkmaid::last_task
|
32
|
-
text = "#{i+1}: #{
|
33
|
-
text << "(R)" unless
|
34
|
-
text << " #{Time.parse(Milkmaid::last_task(
|
35
|
-
|
64
|
+
handle_exceptions do
|
65
|
+
milkmaid.incomplete_tasks(params['listnum'].value).each_with_index do |ts, i|
|
66
|
+
task = Milkmaid::last_task ts
|
67
|
+
text = "#{i+1}: #{ts['name']}"
|
68
|
+
text << "(R)" unless ts['rrule'].nil?
|
69
|
+
text << " #{Time.parse(Milkmaid::last_task(ts)['due']).getlocal.strftime(
|
70
|
+
"%A %b %d, %Y %I:%M %p")}" unless task['due'].empty?
|
36
71
|
color = {
|
37
72
|
'1'=>[234, 82, 0],
|
38
73
|
'2'=>[0, 96, 191],
|
@@ -49,83 +84,57 @@ Main {
|
|
49
84
|
end unless task['due'].empty?
|
50
85
|
puts Paint[text, color[task['priority']], mode1, mode2]
|
51
86
|
end
|
52
|
-
rescue RTM::NoTokenException
|
53
|
-
puts "Authentication token not found. Run `#{__FILE__} auth start`"
|
54
87
|
end
|
55
88
|
end
|
56
|
-
|
89
|
+
|
90
|
+
mode :complete do
|
91
|
+
description "Marks a task as complete."
|
57
92
|
|
58
|
-
|
59
|
-
|
93
|
+
argument(:tasknum) {
|
94
|
+
cast :int
|
95
|
+
description "The number of the task as printed by the list command."
|
96
|
+
}
|
60
97
|
|
61
|
-
|
62
|
-
|
63
|
-
description "The number of the task as printed by the list command."
|
64
|
-
}
|
65
|
-
|
66
|
-
def run
|
67
|
-
begin
|
68
|
-
milkmaid.complete_task params['tasknum'].value
|
69
|
-
rescue Milkmaid::TaskNotFound
|
70
|
-
puts "Task ##{params['tasknum'].value} not found. Run `#{__FILE__} list` " +
|
71
|
-
"to load a list of tasks."
|
72
|
-
rescue RTM::NoTokenException
|
73
|
-
puts "Authentication token not found. Run `#{__FILE__} auth start`"
|
98
|
+
def run
|
99
|
+
handle_exceptions { milkmaid.complete_task params['tasknum'].value }
|
74
100
|
end
|
75
101
|
end
|
76
|
-
end
|
77
102
|
|
78
|
-
|
79
|
-
|
103
|
+
mode :postpone do
|
104
|
+
description "Extends the due date of a task."
|
80
105
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
106
|
+
argument(:tasknum) {
|
107
|
+
cast :int
|
108
|
+
description "The number of the task as printed by the list command."
|
109
|
+
}
|
85
110
|
|
86
|
-
|
87
|
-
|
88
|
-
milkmaid.postpone_task params['tasknum'].value
|
89
|
-
rescue Milkmaid::TaskNotFound
|
90
|
-
puts "Task ##{params['tasknum'].value} not found. Run `#{__FILE__} list` " +
|
91
|
-
"to load a list of tasks."
|
92
|
-
rescue RTM::NoTokenException
|
93
|
-
puts "Authentication token not found. Run `#{__FILE__} auth start`"
|
111
|
+
def run
|
112
|
+
handle_exceptions { milkmaid.postpone_task params['tasknum'].value }
|
94
113
|
end
|
95
114
|
end
|
96
|
-
end
|
97
115
|
|
98
|
-
|
99
|
-
|
116
|
+
mode :delete do
|
117
|
+
description "Gets rid of a task."
|
100
118
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
119
|
+
argument(:tasknum) {
|
120
|
+
cast :int
|
121
|
+
description "The number of the task as printed by the list command."
|
122
|
+
}
|
105
123
|
|
106
|
-
|
107
|
-
|
108
|
-
milkmaid.delete_task params['tasknum'].value
|
109
|
-
rescue Milkmaid::TaskNotFound
|
110
|
-
puts "Task ##{params['tasknum'].value} not found. Run `#{__FILE__} list` " +
|
111
|
-
"to load a list of tasks."
|
112
|
-
rescue RTM::NoTokenException
|
113
|
-
puts "Authentication token not found. Run `#{__FILE__} auth start`"
|
124
|
+
def run
|
125
|
+
handle_exceptions { milkmaid.delete_task params['tasknum'].value }
|
114
126
|
end
|
115
127
|
end
|
116
|
-
end
|
117
128
|
|
118
|
-
|
119
|
-
|
129
|
+
mode :add do
|
130
|
+
argument(:taskname)
|
120
131
|
|
121
|
-
|
122
|
-
|
123
|
-
milkmaid.add_task params['taskname'].value
|
124
|
-
rescue RTM::NoTokenException
|
125
|
-
puts "Authentication token not found. Run `#{__FILE__} auth start`"
|
132
|
+
def run
|
133
|
+
handle_exceptions { milkmaid.add_task params['taskname'].value }
|
126
134
|
end
|
127
135
|
end
|
128
136
|
end
|
137
|
+
|
129
138
|
|
130
139
|
mode :auth do
|
131
140
|
description "Auth commands are used to connect Milkmaid to your account."
|
@@ -157,4 +166,12 @@ Main {
|
|
157
166
|
end
|
158
167
|
end
|
159
168
|
end
|
169
|
+
|
170
|
+
mode :clean do
|
171
|
+
description "Cleans cached data out of the config file."
|
172
|
+
|
173
|
+
def run
|
174
|
+
milkmaid.clean
|
175
|
+
end
|
176
|
+
end
|
160
177
|
}
|
data/lib/milkmaid.rb
CHANGED
@@ -15,10 +15,27 @@ class Milkmaid
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
18
|
+
def lists
|
19
|
+
entries = @rtm.lists.get_list['lists']['list'].as_array
|
20
|
+
list_ids = entries.map { |list| list['id'] }
|
21
|
+
@config[:lists] = list_ids
|
22
|
+
save_config
|
23
|
+
entries
|
24
|
+
end
|
25
|
+
|
26
|
+
def incomplete_tasks(list=nil)
|
27
|
+
params = {}
|
28
|
+
unless list.nil?
|
29
|
+
if @config[:lists]
|
30
|
+
list = @config[:lists][list-1]
|
31
|
+
params[:list_id] = list unless list.nil?
|
32
|
+
end
|
33
|
+
raise ListNotFound if params.empty?
|
34
|
+
end
|
19
35
|
entries = []
|
20
36
|
list_id = nil
|
21
|
-
@rtm.tasks.get_list['tasks']['list'].
|
37
|
+
@rtm.tasks.get_list(params)['tasks']['list'].
|
38
|
+
as_array.each do |items|
|
22
39
|
list_id = items['id']
|
23
40
|
if !items['taskseries'].nil?
|
24
41
|
items['taskseries'].as_array.each do |taskseries|
|
@@ -43,10 +60,10 @@ class Milkmaid
|
|
43
60
|
result
|
44
61
|
end
|
45
62
|
end
|
46
|
-
entries.
|
47
|
-
|
48
|
-
|
49
|
-
|
63
|
+
@config[:tasks] = entries.map do |taskseries|
|
64
|
+
{:list_id => taskseries['list_id'],
|
65
|
+
:taskseries_id => taskseries['id'],
|
66
|
+
:task_id => Milkmaid::last_task(taskseries)['id']}
|
50
67
|
end
|
51
68
|
save_config
|
52
69
|
entries
|
@@ -83,28 +100,31 @@ class Milkmaid
|
|
83
100
|
save_config
|
84
101
|
end
|
85
102
|
|
103
|
+
def clean
|
104
|
+
@config.delete_if { |k| k != :token }
|
105
|
+
save_config
|
106
|
+
end
|
107
|
+
|
86
108
|
class TaskNotFound < StandardError
|
87
109
|
end
|
88
110
|
|
111
|
+
class ListNotFound < StandardError
|
112
|
+
end
|
113
|
+
|
114
|
+
private
|
89
115
|
def self.last_task(taskseries)
|
90
116
|
taskseries['task'].as_array.last
|
91
117
|
end
|
92
118
|
|
93
|
-
private
|
94
119
|
def save_config
|
95
120
|
File.open(@config_file, 'w') { |f| YAML.dump(@config, f) }
|
96
121
|
end
|
97
122
|
|
98
123
|
def check_task_ids(tasknum)
|
99
|
-
raise TaskNotFound if @config[
|
100
|
-
@config["#{tasknum}taskseries_id"].nil? ||
|
101
|
-
@config["#{tasknum}task_id"].nil?
|
124
|
+
raise TaskNotFound if @config[:tasks].nil? || @config[:tasks][tasknum-1].nil?
|
102
125
|
end
|
103
126
|
|
104
127
|
def call_rtm_api(method, tasknum)
|
105
|
-
@rtm.tasks.send method,
|
106
|
-
:taskseries_id=>@config["#{tasknum}taskseries_id"],
|
107
|
-
:task_id=>@config["#{tasknum}task_id"],
|
108
|
-
:timeline=>@timeline
|
128
|
+
@rtm.tasks.send method, @config[:tasks][tasknum-1].merge(:timeline=>@timeline)
|
109
129
|
end
|
110
130
|
end
|
data/milkmaid.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "milkmaid"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Marius Grigoriu"]
|
12
|
-
s.date = "2011-10-
|
12
|
+
s.date = "2011-10-10"
|
13
13
|
s.description = "Milkmaid is a command-line client for Remember the Milk"
|
14
14
|
s.email = "marius.grigoriu@live.com"
|
15
15
|
s.executables = ["milkmaid"]
|
@@ -35,7 +35,7 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.homepage = "http://github.com/mariusgrigoriu/milkmaid"
|
36
36
|
s.licenses = ["MIT"]
|
37
37
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = "1.8.
|
38
|
+
s.rubygems_version = "1.8.11"
|
39
39
|
s.summary = "Milkmaid is a command-line client for Remember the Milk"
|
40
40
|
|
41
41
|
if s.respond_to? :specification_version then
|
data/spec/milkmaid_spec.rb
CHANGED
@@ -41,6 +41,23 @@ describe "Milkmaid" do
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
+
describe 'listing lists' do
|
45
|
+
let(:a) {{"id"=>"21242147", "name"=>"Inbox", "deleted"=>"0", "locked"=>"1", "archived"=>"0", "position"=>"-1", "smart"=>"0", "sort_order"=>"0"}}
|
46
|
+
|
47
|
+
before do
|
48
|
+
rtm_double.stub_chain(:lists, :get_list) {{"stat"=>"ok", "lists"=>{"list"=>a}}}
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'returns all lists' do
|
52
|
+
lib.lists.should == [a]
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'assigns and stores a local ID number for each list' do
|
56
|
+
should_store_in_configuration({ :token=>'tsttoken', :lists=>['21242147'] })
|
57
|
+
lib.lists
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
44
61
|
describe "listing tasks" do
|
45
62
|
let(:a) {{"name"=>"a", "id"=>"ats", "task"=>{"completed"=>"", "priority"=>"1",
|
46
63
|
"id"=>"at", "due"=>""}}}
|
@@ -53,8 +70,7 @@ describe "Milkmaid" do
|
|
53
70
|
"id"=>"ct", "due"=>"2012-10-02T02:52:58Z"}}}
|
54
71
|
let(:d) {{"name"=>"d", "id"=>"dts", "task"=>{"completed"=>"", "priority"=>"N",
|
55
72
|
"id"=>"dt", "due"=>"2011-10-02T02:52:58Z"}}}
|
56
|
-
|
57
|
-
RTM::RTM.stub_chain(:new, :tasks, :get_list) {
|
73
|
+
let(:response) {
|
58
74
|
{"tasks"=>{"list"=>[{"id"=>"21242147", "taskseries"=>[
|
59
75
|
a, b, c, d,
|
60
76
|
{"name"=>"done task", "task"=>{"completed"=>"2011-10-02T02:52:58Z"}}
|
@@ -66,7 +82,40 @@ describe "Milkmaid" do
|
|
66
82
|
{"id"=>"21242152"}],
|
67
83
|
"rev"=>"4k555btb3vcwscc8g44sog8kw4ccccc"},
|
68
84
|
"stat"=>"ok"}
|
69
|
-
|
85
|
+
}
|
86
|
+
|
87
|
+
before do
|
88
|
+
tasks_double.stub(:get_list).and_return(response)
|
89
|
+
end
|
90
|
+
|
91
|
+
context 'when a list number is provided' do
|
92
|
+
it 'passes in a list_id if the list number is found' do
|
93
|
+
YAML.stub(:load_file) {{
|
94
|
+
:token=>'tsttoken',
|
95
|
+
:lists=>['tstlistid']
|
96
|
+
}}
|
97
|
+
tasks_double.should_receive(:get_list).with(:list_id=>'tstlistid')
|
98
|
+
lib.incomplete_tasks 1
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'does not pass in a list_id if the list number is not found' do
|
102
|
+
YAML.stub(:load_file) {{
|
103
|
+
:token=>'tsttoken',
|
104
|
+
:lists=>['tstlistid']
|
105
|
+
}}
|
106
|
+
lambda { lib.incomplete_tasks 2 }.should raise_error(Milkmaid::ListNotFound)
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'does not pass in a list_id if the list cache does not exist' do
|
110
|
+
lambda { lib.incomplete_tasks 2 }.should raise_error(Milkmaid::ListNotFound)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
context 'when a list number is not provided' do
|
115
|
+
it 'does not pass in a list_id' do
|
116
|
+
tasks_double.should_receive(:get_list).with({})
|
117
|
+
lib.incomplete_tasks
|
118
|
+
end
|
70
119
|
end
|
71
120
|
|
72
121
|
it "returns all incomplete tasks in order of priority then due date" do
|
@@ -76,10 +125,12 @@ describe "Milkmaid" do
|
|
76
125
|
it "assigns and stores a local ID number to each task for easy addressing" do
|
77
126
|
should_store_in_configuration({
|
78
127
|
:token=>'tsttoken',
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
128
|
+
:tasks=>[
|
129
|
+
{:list_id=>'21242147', :taskseries_id=>'bts', :task_id=>'bt'},
|
130
|
+
{:list_id=>'21242147', :taskseries_id=>'ats', :task_id=>'at'},
|
131
|
+
{:list_id=>'21242147', :taskseries_id=>'dts', :task_id=>'dt'},
|
132
|
+
{:list_id=>'21242147', :taskseries_id=>'cts', :task_id=>'ct'}
|
133
|
+
]
|
83
134
|
})
|
84
135
|
lib.incomplete_tasks
|
85
136
|
end
|
@@ -148,6 +199,12 @@ describe "Milkmaid" do
|
|
148
199
|
end
|
149
200
|
end
|
150
201
|
end
|
202
|
+
|
203
|
+
it 'cleans out the cache' do
|
204
|
+
YAML.stub(:load_file) {{ :token=>'tsttoken', 'junk'=>'trash' }}
|
205
|
+
should_store_in_configuration({:token=>'tsttoken'})
|
206
|
+
lib.clean
|
207
|
+
end
|
151
208
|
end
|
152
209
|
|
153
210
|
def should_store_in_configuration(config)
|
@@ -159,9 +216,9 @@ end
|
|
159
216
|
def should_call_rtm_api(method, tasknum)
|
160
217
|
YAML.stub(:load_file) {{
|
161
218
|
:token=>'tsttoken',
|
162
|
-
|
163
|
-
|
164
|
-
|
219
|
+
:tasks=>(0...tasknum).collect do |n|
|
220
|
+
{:list_id=>"#{n+1}l", :taskseries_id=>"#{n+1}ts", :task_id=>"#{n+1}t"}
|
221
|
+
end
|
165
222
|
}}
|
166
223
|
tasks_double.should_receive(method).with(
|
167
224
|
:list_id=>"#{tasknum}l", :taskseries_id=>"#{tasknum}ts",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: milkmaid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.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: 2011-10-
|
12
|
+
date: 2011-10-10 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: main
|
16
|
-
requirement: &
|
16
|
+
requirement: &70207460096000 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 4.7.7
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70207460096000
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: moocow
|
27
|
-
requirement: &
|
27
|
+
requirement: &70207460095400 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.1.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70207460095400
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: paint
|
38
|
-
requirement: &
|
38
|
+
requirement: &70207460094800 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.8.3
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70207460094800
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70207460094200 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70207460094200
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70207460093620 !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: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70207460093620
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: jeweler
|
71
|
-
requirement: &
|
71
|
+
requirement: &70207460093040 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70207460093040
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: ZenTest
|
82
|
-
requirement: &
|
82
|
+
requirement: &70207460092460 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70207460092460
|
91
91
|
description: Milkmaid is a command-line client for Remember the Milk
|
92
92
|
email: marius.grigoriu@live.com
|
93
93
|
executables:
|
@@ -125,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
125
125
|
version: '0'
|
126
126
|
segments:
|
127
127
|
- 0
|
128
|
-
hash:
|
128
|
+
hash: 4484778310645484132
|
129
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
130
|
none: false
|
131
131
|
requirements:
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project:
|
137
|
-
rubygems_version: 1.8.
|
137
|
+
rubygems_version: 1.8.11
|
138
138
|
signing_key:
|
139
139
|
specification_version: 3
|
140
140
|
summary: Milkmaid is a command-line client for Remember the Milk
|