taskbot 0.1.1 → 0.1.2
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/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"
|