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"
         
     |