campfire-bot-standup 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in campfire-bot-standup.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,85 @@
1
+ # NOTE
2
+
3
+ Currently, this only works with [my fork](https://github.com/hoverlover/campfire-bot). Hopefully,
4
+ the maintainers of the [main repo](https://github.com/joshwand/campfire-bot) will pull in my changes.
5
+
6
+ #CampfireBot::Standup
7
+
8
+ This is a plugin for use with [campfire-bot](https://github.com/joshwand/campfire-bot).
9
+ It provides the ability to send [daily standup](http://en.wikipedia.org/wiki/Stand-up_meeting) emails
10
+ to a list of people (your managers). This campfire-bot plugin is
11
+ targeted at distributed teams that don't have the luxury of standing in
12
+ the same room. The message goes out in the campfire room for all
13
+ developers to see, and at the same time an email is sent to the
14
+ configured list of managers so they can also see the status.
15
+
16
+ ## Installation
17
+
18
+ 1. First, make sure you install the campfire-bot gem.
19
+ 2. `gem install campfire-bot-absentee-camper`
20
+ 3. Create Gemfile with the following lines:
21
+ gem 'campfire-bot'
22
+ gem 'campfire-bot-standup'
23
+ 4. Create your _standup-config.yml_ file (see below).
24
+ 5. Register the plugin to your main _config.yml_ file
25
+
26
+ ## Usage
27
+
28
+ First, fire up the bot:
29
+
30
+ `bundle exec bot <environment>`
31
+
32
+ `<environment>` is the matching environment from the config file. Now,
33
+ in the campfire room, give your standup status using the `!standup`
34
+ command:
35
+
36
+ !standup Yesterday I goofed off a lot. Today, after checking my Twitter feed, I will hopefully get some work done.
37
+
38
+ After sending this message, a message will be sent by the Campfire Bot
39
+ that your standup email has been emailed to your manager(s):
40
+
41
+ Campfire B. Sent standup email to michael.scott@dunder-mifflin.com
42
+
43
+
44
+ ## Configuration
45
+
46
+ Here is a sample config file:
47
+
48
+ ---
49
+ production:
50
+ subject: Daily Standup
51
+ to:
52
+ - michael.scott@dunder-mifflin.com
53
+ pony_options:
54
+ # NOTE: The colons before these options are very important.
55
+ # Pony requires that the keys be symbols and not strings.
56
+ #
57
+ :via: :smtp
58
+ :via_options:
59
+ :address: smtp.sendgrid.net
60
+ :port: 587
61
+ :enable_starttls_auto: true
62
+ :authentication: :plain
63
+ :user_name: your-user-name
64
+ :password: secret
65
+
66
+ * `production` - This is the environment for which the settins apply.
67
+ You can specify multiple environments (e.g. development, test, etc).
68
+ * `subject` - The subject line of the outgoing email.
69
+ * `to` - The list of email addresses where the email will be sent.
70
+ * `pony_options` - The configuration options for [Pony](https://github.com/adamwiggins/pony)
71
+
72
+ ## TODO
73
+
74
+ * Specs coming soon!
75
+
76
+ ## Testing
77
+
78
+ You have two options:
79
+
80
+ * run `bundle exec rake`
81
+ * run `bundle exec guard` for continuous feedback
82
+
83
+ ## Contributing
84
+
85
+ Do the usual fork -> change -> pull request dance.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "campfire_bot/standup/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "campfire-bot-standup"
7
+ s.version = CampfireBot::Standup::VERSION
8
+ s.authors = ["hoverlover"]
9
+ s.email = ["hoverlover@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Plugin for campfire-bot that sends Standup emails using the command !standup.}
12
+ s.description = s.summary
13
+
14
+ s.rubyforge_project = "campfire-bot-standup"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib/campfire_bot"]
20
+
21
+ s.add_dependency 'campfire-bot', '~> 0.0.1'
22
+ s.add_dependency 'pony', '~> 1.3'
23
+ end
@@ -0,0 +1,5 @@
1
+ module CampfireBot
2
+ module Standup
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,44 @@
1
+ require 'pony'
2
+
3
+ module CampfireBot
4
+ module Standup
5
+ class Plugin < CampfireBot::Plugin
6
+ on_command 'standup', :standup
7
+
8
+ def initialize
9
+ @config = YAML::load(ERB.new(File.read("#{BOT_ROOT}/standup-config.yml")).result)[BOT_ENVIRONMENT]
10
+ end
11
+
12
+ def standup(msg)
13
+ bot.log.debug "sending standup email to #{to_addresses}"
14
+
15
+ Pony.mail({
16
+ :to => to_addresses,
17
+ :from => from(msg),
18
+ :subject => subject,
19
+ :body => msg[:message]
20
+ }.merge(pony_options))
21
+
22
+ msg.speak "Sent standup email to #{to_addresses.join(', ')}"
23
+ end
24
+
25
+ private
26
+
27
+ def from(msg)
28
+ msg[:user][:email_address]
29
+ end
30
+
31
+ def to_addresses
32
+ @config['to']
33
+ end
34
+
35
+ def subject
36
+ @config['subject']
37
+ end
38
+
39
+ def pony_options
40
+ @config['pony_options']
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,17 @@
1
+ ---
2
+ production:
3
+ subject: Daily Standup
4
+ to:
5
+ - michael.scott@dunder-mifflin.com
6
+ pony_options:
7
+ # NOTE: The colons before these options are very important.
8
+ # Pony requires that the keys be symbols and not strings.
9
+ #
10
+ :via: :smtp
11
+ :via_options:
12
+ :address: smtp.sendgrid.net
13
+ :port: 587
14
+ :enable_starttls_auto: true
15
+ :authentication: :plain
16
+ :user_name: your-user-name
17
+ :password: secret
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: campfire-bot-standup
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - hoverlover
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-03 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: campfire-bot
16
+ requirement: &70115511760240 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70115511760240
25
+ - !ruby/object:Gem::Dependency
26
+ name: pony
27
+ requirement: &70115511759720 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70115511759720
36
+ description: Plugin for campfire-bot that sends Standup emails using the command !standup.
37
+ email:
38
+ - hoverlover@gmail.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - .gitignore
44
+ - Gemfile
45
+ - README.md
46
+ - Rakefile
47
+ - campfire-bot-standup.gemspec
48
+ - lib/campfire_bot/standup.rb
49
+ - lib/campfire_bot/standup/version.rb
50
+ - standup-config.example.yml
51
+ homepage: ''
52
+ licenses: []
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib/campfire_bot
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ requirements: []
70
+ rubyforge_project: campfire-bot-standup
71
+ rubygems_version: 1.8.10
72
+ signing_key:
73
+ specification_version: 3
74
+ summary: Plugin for campfire-bot that sends Standup emails using the command !standup.
75
+ test_files: []