taskbot 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/Gemfile.lock +6 -0
- data/README.rdoc +4 -2
- data/VERSION +1 -1
- data/lib/cinch/plugins/taskbot/task.rb +6 -1
- data/lib/cinch/plugins/taskbot/tasks.rb +18 -16
- data/lib/taskbot.rb +1 -1
- data/taskbot.gemspec +5 -2
- metadata +23 -8
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -19,6 +19,11 @@ GEM
|
|
19
19
|
activesupport (>= 2.3.4)
|
20
20
|
jnunemaker-validatable (~> 1.8.4)
|
21
21
|
plucky (~> 0.3.6)
|
22
|
+
mongomapper_id2 (0.0.3)
|
23
|
+
activesupport (>= 2.3.4)
|
24
|
+
jnunemaker-validatable (~> 1.8.4)
|
25
|
+
mongo_mapper
|
26
|
+
plucky (~> 0.3.6)
|
22
27
|
optiflag (0.7)
|
23
28
|
plucky (0.3.7)
|
24
29
|
mongo (~> 1.1)
|
@@ -34,4 +39,5 @@ DEPENDENCIES
|
|
34
39
|
daemons (~> 1.1.0)
|
35
40
|
jeweler (~> 1.5.2)
|
36
41
|
mongo_mapper (~> 0.8.6)
|
42
|
+
mongomapper_id2 (~> 0.0.3)
|
37
43
|
optiflag (~> 0.7)
|
data/README.rdoc
CHANGED
@@ -58,9 +58,11 @@ It is distributed as a Ruby gem and based on Cinch and MongoDB.
|
|
58
58
|
|
59
59
|
Use --daemonize if you want to run it in the background.
|
60
60
|
|
61
|
-
==
|
61
|
+
== Changes
|
62
62
|
|
63
|
-
|
63
|
+
0.1.2 - Fixes a bug preventing tasks from being removed correctly, and shortens visible task
|
64
|
+
identifiers to a simple integer. If you're updating an existing db you will need to
|
65
|
+
add a unique integer 'id2' to each task manually.
|
64
66
|
|
65
67
|
== Getting Help
|
66
68
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
@@ -1,12 +1,17 @@
|
|
1
1
|
module Cinch
|
2
2
|
module Plugins
|
3
3
|
module TaskBot
|
4
|
-
|
4
|
+
|
5
|
+
# content - String - Description of the item
|
6
|
+
# status - Symbol - Typically :open or :completed
|
7
|
+
# id2 - Integer - Auto-incrementing numeric key (id uses ObjectId).
|
8
|
+
# Numeric IDs are easier for users to deal with over IRC.
|
5
9
|
class Task
|
6
10
|
include MongoMapper::Document
|
7
11
|
key :content, String
|
8
12
|
key :status, Symbol, :default => :open
|
9
13
|
belongs_to :user
|
14
|
+
auto_increment!
|
10
15
|
end
|
11
16
|
|
12
17
|
end
|
@@ -7,8 +7,8 @@ module Cinch
|
|
7
7
|
match /add "(.+)"/, :method => :add_task
|
8
8
|
match /add (.+) "(.+)"/, :method => :add_task_for
|
9
9
|
|
10
|
-
match /complete|finish #(
|
11
|
-
match /rm|delete|remove #(
|
10
|
+
match /(complete|finish) #(\d+)/, :method => :complete_task
|
11
|
+
match /(rm|delete|remove) #(\d+)/, :method => :remove_task
|
12
12
|
|
13
13
|
match /list$/, :method => :get_list
|
14
14
|
match /list (.+)/, :method => :get_list_for
|
@@ -49,18 +49,18 @@ module Cinch
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# Mark a task completed
|
52
|
-
def complete_task(m,
|
53
|
-
set_task_status(m,
|
52
|
+
def complete_task(m, cmd_alias, task_id2)
|
53
|
+
set_task_status(m, task_id2.to_i, :completed)
|
54
54
|
end
|
55
55
|
|
56
56
|
# Remove a task
|
57
|
-
def remove_task(m,
|
58
|
-
task = Task.
|
57
|
+
def remove_task(m, cmd_alias, task_id2)
|
58
|
+
task = Task.find_by_id2(task_id2.to_i)
|
59
59
|
if task
|
60
|
-
|
61
|
-
m.reply "Task ##{
|
60
|
+
task.destroy
|
61
|
+
m.reply "Task ##{task_id2} has been removed."
|
62
62
|
else
|
63
|
-
m.reply "Task ##{
|
63
|
+
m.reply "Task ##{task_id2} not found."
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -81,7 +81,7 @@ module Cinch
|
|
81
81
|
user_status = (user.nil?) ? "New user '#{nick}' created" : "Existing user '#{nick}' found"
|
82
82
|
user ||= User.create( :nick => nick )
|
83
83
|
task = user.tasks.create( :content => content )
|
84
|
-
m.reply "#{user_status}, task added as ##{task.
|
84
|
+
m.reply "#{user_status}, task added as ##{task.id2}"
|
85
85
|
return task
|
86
86
|
end
|
87
87
|
|
@@ -90,24 +90,26 @@ module Cinch
|
|
90
90
|
user = User.find_by_nick(nick)
|
91
91
|
user_status = (user.nil?) ? "New user '#{nick}' created" : "Existing user '#{nick}' found"
|
92
92
|
user ||= User.create( :nick => nick )
|
93
|
-
open_tasks = user.tasks.
|
93
|
+
open_tasks = user.tasks.select { |t| t if t.status == :open }
|
94
94
|
if open_tasks.empty?
|
95
95
|
m.reply "#{user_status}, no open tasks."
|
96
96
|
else
|
97
97
|
m.reply "#{user_status}, open tasks:"
|
98
|
-
open_tasks.
|
98
|
+
open_tasks.sort_by { |t| t.id2 }.each do |t|
|
99
|
+
m.reply "##{t.id2} #{t.content}"
|
100
|
+
end
|
99
101
|
end
|
100
102
|
end
|
101
103
|
|
102
|
-
def set_task_status(m,
|
103
|
-
task = Task.
|
104
|
+
def set_task_status(m, task_id2, new_status)
|
105
|
+
task = Task.find_by_id2(task_id2.to_i)
|
104
106
|
if task
|
105
107
|
old_status = task.status
|
106
108
|
task.status = new_status
|
107
109
|
task.save
|
108
|
-
m.reply "Task ##{task.
|
110
|
+
m.reply "Task ##{task.id2} status changed from #{old_status} to #{task.status}"
|
109
111
|
else
|
110
|
-
m.reply "Task ##{
|
112
|
+
m.reply "Task ##{task.id2} not found."
|
111
113
|
end
|
112
114
|
end
|
113
115
|
|
data/lib/taskbot.rb
CHANGED
data/taskbot.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{taskbot}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Logan Koester"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-30}
|
13
13
|
s.default_executable = %q{taskbot}
|
14
14
|
s.description = %q{Simple to-do lists implemented as an IRC robot}
|
15
15
|
s.email = %q{logan@logankoester.com}
|
@@ -49,6 +49,7 @@ Gem::Specification.new do |s|
|
|
49
49
|
s.add_runtime_dependency(%q<bson_ext>, ["~> 1.2.4"])
|
50
50
|
s.add_runtime_dependency(%q<daemons>, ["~> 1.1.0"])
|
51
51
|
s.add_runtime_dependency(%q<optiflag>, ["~> 0.7"])
|
52
|
+
s.add_runtime_dependency(%q<mongomapper_id2>, ["~> 0.0.3"])
|
52
53
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
53
54
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
54
55
|
else
|
@@ -57,6 +58,7 @@ Gem::Specification.new do |s|
|
|
57
58
|
s.add_dependency(%q<bson_ext>, ["~> 1.2.4"])
|
58
59
|
s.add_dependency(%q<daemons>, ["~> 1.1.0"])
|
59
60
|
s.add_dependency(%q<optiflag>, ["~> 0.7"])
|
61
|
+
s.add_dependency(%q<mongomapper_id2>, ["~> 0.0.3"])
|
60
62
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
61
63
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
62
64
|
end
|
@@ -66,6 +68,7 @@ Gem::Specification.new do |s|
|
|
66
68
|
s.add_dependency(%q<bson_ext>, ["~> 1.2.4"])
|
67
69
|
s.add_dependency(%q<daemons>, ["~> 1.1.0"])
|
68
70
|
s.add_dependency(%q<optiflag>, ["~> 0.7"])
|
71
|
+
s.add_dependency(%q<mongomapper_id2>, ["~> 0.0.3"])
|
69
72
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
70
73
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
71
74
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Logan Koester
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-03-
|
17
|
+
date: 2011-03-30 00:00:00 -04:00
|
18
18
|
default_executable: taskbot
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -92,8 +92,23 @@ dependencies:
|
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: *id005
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
95
|
+
name: mongomapper_id2
|
96
96
|
requirement: &id006 !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
- 0
|
104
|
+
- 3
|
105
|
+
version: 0.0.3
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: *id006
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: bundler
|
111
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
97
112
|
none: false
|
98
113
|
requirements:
|
99
114
|
- - ~>
|
@@ -105,10 +120,10 @@ dependencies:
|
|
105
120
|
version: 1.0.0
|
106
121
|
type: :development
|
107
122
|
prerelease: false
|
108
|
-
version_requirements: *
|
123
|
+
version_requirements: *id007
|
109
124
|
- !ruby/object:Gem::Dependency
|
110
125
|
name: jeweler
|
111
|
-
requirement: &
|
126
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
112
127
|
none: false
|
113
128
|
requirements:
|
114
129
|
- - ~>
|
@@ -120,7 +135,7 @@ dependencies:
|
|
120
135
|
version: 1.5.2
|
121
136
|
type: :development
|
122
137
|
prerelease: false
|
123
|
-
version_requirements: *
|
138
|
+
version_requirements: *id008
|
124
139
|
description: Simple to-do lists implemented as an IRC robot
|
125
140
|
email: logan@logankoester.com
|
126
141
|
executables:
|
@@ -158,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
173
|
requirements:
|
159
174
|
- - ">="
|
160
175
|
- !ruby/object:Gem::Version
|
161
|
-
hash: -
|
176
|
+
hash: -3386362502869741852
|
162
177
|
segments:
|
163
178
|
- 0
|
164
179
|
version: "0"
|