cap_gun 0.0.2 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ v0.0.5. Fix subject line iv there is no rails_env defined
2
+
3
+ v0.0.4. Add dev dependency on echoe; update manifest
4
+
5
+ v0.0.3. Don't try to convert the RAILS_ENV if its not set to better support default capistrano deployments
6
+
1
7
  v0.0.2. Converts the release times to the current time zone; improved docs.
2
8
 
3
9
  v0.0.1. Initial release. Rock n roll mcdonalds.
@@ -37,7 +37,7 @@ In your Capistrano config file (usually deploy.rb):
37
37
  == REQUIREMENTS
38
38
 
39
39
  * Capistrano 2+
40
- * A Gmail account to send from, or an MTA installed locally to send from
40
+ * A Gmail account to send from, or an MTA (mail transport agent) installed locally to send from
41
41
  * Something to deploy
42
42
 
43
43
  == TODO & KNOWN ISSUES
@@ -55,7 +55,7 @@ In your Capistrano config file (usually deploy.rb):
55
55
 
56
56
  * Log bugs, issues, and suggestions on Trac: http://opensource.thinkrelevance.com/wiki/cap_gun
57
57
  * View source: http://github.com/relevance/cap_gun/tree/master
58
- * Git clone source: git://github.com/relevance/cap_gun.git
58
+ * Git: git clone git://github.com/relevance/cap_gun.git
59
59
  * RDocs: http://thinkrelevance.rubyforge.org/cap_gun/
60
60
 
61
61
  == LICENSE
@@ -0,0 +1,28 @@
1
+ begin
2
+ gem 'technicalpickles-echoe'
3
+ rescue LoadError => e
4
+ puts "couldn't find the correct version of echoe - please install from forked version on github: http://github.com/technicalpickles/echoe/"
5
+ puts "gem sources -a http://gems.github.com"
6
+ puts "sudo gem install technicalpickles-echoe"
7
+ end
8
+
9
+ require 'rubygems'
10
+ require 'echoe'
11
+ require './lib/cap_gun.rb'
12
+
13
+ echoe = Echoe.new('cap_gun') do |p|
14
+ p.rubyforge_name = 'thinkrelevance'
15
+ p.author = ["Rob Sanheim", "Relevance"]
16
+ p.email = 'opensource@thinkrelevance.com'
17
+ p.version = CapGun::VERSION
18
+ p.summary = "Bang! You're deployed!"
19
+ p.description = 'Super simple capistrano deployments.'
20
+ p.url = "http://opensource.thinkrelevance.com/wiki/cap_gun"
21
+ p.rdoc_pattern = /^(lib|bin|ext)|txt|rdoc|CHANGELOG|MIT-LICENSE$/
22
+ rdoc_template = `allison --path`.strip << ".rb"
23
+ p.rdoc_template = rdoc_template
24
+ p.test_pattern = 'spec/**/*_spec.rb'
25
+ p.manifest_name = 'manifest.txt'
26
+ end
27
+
28
+ echoe.spec.add_development_dependency "echoe"
@@ -1,48 +1,36 @@
1
-
2
- # Gem::Specification for Cap_gun-0.0.2
3
- # Originally generated by Echoe
4
-
5
1
  Gem::Specification.new do |s|
6
2
  s.name = %q{cap_gun}
7
- s.version = "0.0.2"
8
-
9
- s.specification_version = 2 if s.respond_to? :specification_version=
3
+ s.version = "0.0.5"
10
4
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
5
+ s.required_rubygems_version = Gem::Requirement.new("= 1.2") if s.respond_to? :required_rubygems_version=
12
6
  s.authors = ["Rob Sanheim, Relevance"]
13
- s.date = %q{2008-04-20}
7
+ s.date = %q{2008-07-04}
14
8
  s.description = %q{Super simple capistrano deployments.}
15
9
  s.email = %q{opensource@thinkrelevance.com}
16
10
  s.extra_rdoc_files = ["CHANGELOG", "lib/cap_gun.rb", "MIT-LICENSE", "README.rdoc"]
17
- s.files = ["CHANGELOG", "init.rb", "install.rb", "lib/cap_gun.rb", "manifest.txt", "MIT-LICENSE", "README.rdoc", "spec/cap_gun_spec.rb", "tasks/cap_bot_tasks.rake", "vendor/action_mailer_tls/init.rb", "vendor/action_mailer_tls/lib/smtp_tls.rb", "vendor/action_mailer_tls/README", "vendor/action_mailer_tls/sample/mailer.yml.sample", "vendor/action_mailer_tls/sample/smtp_gmail.rb", "cap_gun.gemspec"]
11
+ s.files = ["cap_gun.gemspec", "CHANGELOG", "init.rb", "install.rb", "lib/cap_gun.rb", "manifest.txt", "MIT-LICENSE", "Rakefile", "README.rdoc", "spec/cap_gun_spec.rb", "tasks/cap_bot_tasks.rake", "vendor/action_mailer_tls/init.rb", "vendor/action_mailer_tls/lib/smtp_tls.rb", "vendor/action_mailer_tls/README", "vendor/action_mailer_tls/sample/mailer.yml.sample", "vendor/action_mailer_tls/sample/smtp_gmail.rb"]
18
12
  s.has_rdoc = true
19
13
  s.homepage = %q{http://opensource.thinkrelevance.com/wiki/cap_gun}
20
14
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Cap_gun", "--main", "README.rdoc"]
21
15
  s.require_paths = ["lib"]
22
16
  s.rubyforge_project = %q{thinkrelevance}
23
- s.rubygems_version = %q{1.1.1}
17
+ s.rubygems_version = %q{1.2.0}
24
18
  s.summary = %q{Bang! You're deployed!}
25
19
  s.test_files = ["spec/cap_gun_spec.rb"]
26
- end
27
20
 
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 2
28
24
 
29
- # # Original Rakefile source (requires the Echoe gem):
30
- #
31
- # require 'rubygems'
32
- # require 'echoe'
33
- # require './lib/cap_gun.rb'
34
- #
35
- # hoe = Echoe.new('cap_gun') do |p|
36
- # p.rubyforge_name = 'thinkrelevance'
37
- # p.author = ["Rob Sanheim", "Relevance"]
38
- # p.email = 'opensource@thinkrelevance.com'
39
- # p.version = CapGun::VERSION
40
- # p.summary = "Bang! You're deployed!"
41
- # p.description = 'Super simple capistrano deployments.'
42
- # p.url = "http://opensource.thinkrelevance.com/wiki/cap_gun"
43
- # p.rdoc_pattern = /^(lib|bin|ext)|txt|rdoc|CHANGELOG|MIT-LICENSE$/
44
- # rdoc_template = `allison --path`.strip << ".rb"
45
- # p.rdoc_template = rdoc_template
46
- # p.test_pattern = 'spec/**/*_spec.rb'
47
- # p.manifest_name = 'manifest.txt'
48
- # end
25
+ if current_version >= 3 then
26
+ s.add_development_dependency(%q<echoe>, [">= 0"])
27
+ s.add_development_dependency(%q<echoe>, [">= 0"])
28
+ else
29
+ s.add_dependency(%q<echoe>, [">= 0"])
30
+ s.add_dependency(%q<echoe>, [">= 0"])
31
+ end
32
+ else
33
+ s.add_dependency(%q<echoe>, [">= 0"])
34
+ s.add_dependency(%q<echoe>, [">= 0"])
35
+ end
36
+ end
@@ -27,7 +27,7 @@ require File.join(File.dirname(__FILE__), *%w[.. vendor action_mailer_tls lib sm
27
27
  #
28
28
  # See README for full install/config instructions.
29
29
  module CapGun
30
- VERSION = '0.0.2'
30
+ VERSION = '0.0.5'
31
31
 
32
32
  module Helper
33
33
 
@@ -53,6 +53,7 @@ module CapGun
53
53
  # This assumes Capistrano uses UTC for its date/timestamped directories, and converts to the local
54
54
  # machine timezone.
55
55
  def humanize_release_time(path)
56
+ return unless path
56
57
  match = path.match(/(\d+)$/)
57
58
  return unless match
58
59
  local = convert_from_utc(match[1])
@@ -83,11 +84,12 @@ module CapGun
83
84
  class Mailer < ActionMailer::Base
84
85
  include CapGun::Helper
85
86
  DEFAULT_SENDER = %("CapGun" <cap_gun@example.com>)
86
- DEFAULT_EMAIL_PREFIX = "[DEPLOY] "
87
+ DEFAULT_EMAIL_PREFIX = "[DEPLOY]"
87
88
 
88
89
  adv_attr_accessor :email_prefix
90
+ attr_accessor :summary
89
91
 
90
- # Grab the options for emaililng from cap_gun_email_envelope (should be set in your deploy file)
92
+ # Grab the options for emailing from cap_gun_email_envelope (should be set in your deploy file)
91
93
  #
92
94
  # Valid options:
93
95
  # :recipients (required) an array or string of email address(es) that should get notifications
@@ -102,16 +104,25 @@ module CapGun
102
104
  # Do the actual email
103
105
  def deployment_notification(capistrano)
104
106
  init(capistrano[:cap_gun_email_envelope])
107
+ self.summary = create_summary(capistrano)
105
108
 
106
109
  content_type "text/plain"
107
- subject "#{email_prefix} #{capistrano[:application]} deployed to #{capistrano[:rails_env]}"
110
+ subject "#{email_prefix} #{capistrano[:application]} #{deployed_to(capistrano)}"
108
111
  body create_body(capistrano)
109
112
  end
110
113
 
114
+ def create_summary(capistrano)
115
+ %[#{capistrano[:application]} was deployed#{" to " << capistrano[:rails_env] if capistrano[:rails_env]} by #{current_user} at #{humanize_release_time(capistrano[:current_release])}.]
116
+ end
117
+
118
+ def deployed_to(capistrano)
119
+ returning(s = "deployed") { s += " to #{capistrano[:rails_env]}" if capistrano[:rails_env] }
120
+ end
121
+
111
122
  # Create the body of the message using a bunch of values from Capistrano
112
123
  def create_body(capistrano)
113
124
  <<-EOL
114
- #{capistrano[:application]} was deployed to #{capistrano[:rails_env]} by #{current_user} at #{humanize_release_time(capistrano[:current_release])}.
125
+ #{summary}
115
126
 
116
127
  Comment: #{capistrano[:comment] || "[none given]"}
117
128
 
@@ -1,9 +1,11 @@
1
+ cap_gun.gemspec
1
2
  CHANGELOG
2
3
  init.rb
3
4
  install.rb
4
5
  lib/cap_gun.rb
5
6
  manifest.txt
6
7
  MIT-LICENSE
8
+ Rakefile
7
9
  README.rdoc
8
10
  spec/cap_gun_spec.rb
9
11
  tasks/cap_bot_tasks.rake
@@ -59,7 +59,7 @@ describe "CapGun" do
59
59
  end
60
60
 
61
61
  describe "handling release time" do
62
- include CapGun::Helper
62
+ include CapGun::Helper
63
63
 
64
64
  before do # make DateTime act as if local timezone is EDT
65
65
  stubs(:local_timezone).returns("EDT")
@@ -112,4 +112,22 @@ describe "CapGun" do
112
112
  end
113
113
  end
114
114
 
115
+ describe "creating body" do
116
+ it "has a friendly summary line" do
117
+ CapGun::Mailer.any_instance.stubs(:current_user).returns("jdoe")
118
+ capistrano = { :application => "my app", :rails_env => "staging", :current_release => "/data/foo/releases/20080227120000", :cap_gun_email_envelope => { :from => "booyakka!@example.com", :recipients => ["foo@here.com", "bar@here.com"] } }
119
+ mail = CapGun::Mailer.create_deployment_notification capistrano
120
+ mail.body.split("\n").first.should == "my app was deployed to staging by jdoe at February 27th, 2008 8:00 AM EDT."
121
+ end
122
+
123
+ it "does not include rails env in summary if not defined" do
124
+ CapGun::Mailer.any_instance.stubs(:current_user).returns("jdoe")
125
+ capistrano = { :application => "my app", :current_release => "/data/foo/releases/20080227120000", :cap_gun_email_envelope => { :from => "booyakka!@example.com", :recipients => ["foo@here.com", "bar@here.com"] } }
126
+ mail = CapGun::Mailer.create_deployment_notification capistrano
127
+ mail.subject.should == "[DEPLOY] my app deployed"
128
+ mail.body.split("\n").first.should == "my app was deployed by jdoe at February 27th, 2008 8:00 AM EDT."
129
+ end
130
+
131
+ end
132
+
115
133
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cap_gun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Sanheim, Relevance
@@ -9,10 +9,29 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-20 00:00:00 -04:00
12
+ date: 2008-07-04 00:00:00 -04:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: echoe
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: echoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
16
35
  description: Super simple capistrano deployments.
17
36
  email: opensource@thinkrelevance.com
18
37
  executables: []
@@ -25,12 +44,14 @@ extra_rdoc_files:
25
44
  - MIT-LICENSE
26
45
  - README.rdoc
27
46
  files:
47
+ - cap_gun.gemspec
28
48
  - CHANGELOG
29
49
  - init.rb
30
50
  - install.rb
31
51
  - lib/cap_gun.rb
32
52
  - manifest.txt
33
53
  - MIT-LICENSE
54
+ - Rakefile
34
55
  - README.rdoc
35
56
  - spec/cap_gun_spec.rb
36
57
  - tasks/cap_bot_tasks.rake
@@ -39,7 +60,6 @@ files:
39
60
  - vendor/action_mailer_tls/README
40
61
  - vendor/action_mailer_tls/sample/mailer.yml.sample
41
62
  - vendor/action_mailer_tls/sample/smtp_gmail.rb
42
- - cap_gun.gemspec
43
63
  has_rdoc: true
44
64
  homepage: http://opensource.thinkrelevance.com/wiki/cap_gun
45
65
  post_install_message:
@@ -60,14 +80,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
80
  version:
61
81
  required_rubygems_version: !ruby/object:Gem::Requirement
62
82
  requirements:
63
- - - ">="
83
+ - - "="
64
84
  - !ruby/object:Gem::Version
65
- version: "0"
85
+ version: "1.2"
66
86
  version:
67
87
  requirements: []
68
88
 
69
89
  rubyforge_project: thinkrelevance
70
- rubygems_version: 1.1.1
90
+ rubygems_version: 1.2.0
71
91
  signing_key:
72
92
  specification_version: 2
73
93
  summary: Bang! You're deployed!