chicken_soup 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +1 -0
  3. data/.rvmrc +1 -0
  4. data/chicken_soup.gemspec +3 -1
  5. data/lib/chicken_soup/capabilities.rb +21 -6
  6. data/lib/chicken_soup/capabilities/apache/apache-checks.rb +19 -0
  7. data/lib/chicken_soup/capabilities/apache/apache-defaults.rb +30 -0
  8. data/lib/chicken_soup/capabilities/apache/apache-tasks.rb +85 -0
  9. data/lib/chicken_soup/capabilities/bundler/bundler-checks.rb +19 -0
  10. data/lib/chicken_soup/capabilities/bundler/bundler-defaults.rb +14 -0
  11. data/lib/chicken_soup/capabilities/bundler/bundler-tasks.rb +35 -0
  12. data/lib/chicken_soup/capabilities/checks.rb +1 -1
  13. data/lib/chicken_soup/capabilities/defaults.rb +22 -5
  14. data/lib/chicken_soup/capabilities/{git.rb → git/git-defaults.rb} +2 -13
  15. data/lib/chicken_soup/capabilities/heroku/heroku-checks.rb +22 -0
  16. data/lib/chicken_soup/capabilities/heroku/heroku-defaults.rb +16 -0
  17. data/lib/chicken_soup/capabilities/{heroku.rb → heroku/heroku-tasks.rb} +5 -45
  18. data/lib/chicken_soup/capabilities/{mysql.rb → mysql/mysql-tasks.rb} +0 -0
  19. data/lib/chicken_soup/capabilities/nginx/nginx-checks.rb +19 -0
  20. data/lib/chicken_soup/capabilities/nginx/nginx-defaults.rb +21 -0
  21. data/lib/chicken_soup/capabilities/nginx/nginx-tasks.rb +85 -0
  22. data/lib/chicken_soup/capabilities/{passenger.rb → passenger/passenger-tasks.rb} +1 -1
  23. data/lib/chicken_soup/capabilities/postgres/postgres-checks.rb +17 -0
  24. data/lib/chicken_soup/capabilities/postgres/postgres-defaults.rb +15 -0
  25. data/lib/chicken_soup/capabilities/{postgres.rb → postgres/postgres-tasks.rb} +1 -1
  26. data/lib/chicken_soup/capabilities/rvm/rvm-checks.rb +21 -0
  27. data/lib/chicken_soup/capabilities/rvm/rvm-defaults.rb +13 -0
  28. data/lib/chicken_soup/capabilities/rvm/rvm-tasks.rb +6 -0
  29. data/lib/chicken_soup/capabilities/shared/db-checks.rb +19 -0
  30. data/lib/chicken_soup/capabilities/shared/db-defaults.rb +13 -0
  31. data/lib/chicken_soup/capabilities/shared/{db.rb → db-tasks.rb} +24 -11
  32. data/lib/chicken_soup/capabilities/shared/web_server-tasks.rb +99 -0
  33. data/lib/chicken_soup/capabilities/{svn.rb → svn/svn-defaults.rb} +0 -13
  34. data/lib/chicken_soup/capabilities/svn/svn-tasks.rb +12 -0
  35. data/lib/chicken_soup/capabilities/tasks.rb +12 -0
  36. data/lib/chicken_soup/capabilities/unix/unix-checks.rb +33 -0
  37. data/lib/chicken_soup/capabilities/unix/unix-defaults.rb +42 -0
  38. data/lib/chicken_soup/capabilities/{unix.rb → unix/unix-tasks.rb} +4 -83
  39. data/lib/chicken_soup/deploy.rb +0 -5
  40. data/lib/chicken_soup/environment.rb +10 -0
  41. data/lib/chicken_soup/environment/checks.rb +17 -2
  42. data/lib/chicken_soup/environment/defaults.rb +25 -3
  43. data/lib/chicken_soup/environment/tasks.rb +12 -0
  44. data/lib/chicken_soup/global.rb +77 -2
  45. data/lib/chicken_soup/notifiers.rb +7 -4
  46. data/lib/chicken_soup/notifiers/checks.rb +1 -1
  47. data/lib/chicken_soup/notifiers/defaults.rb +1 -2
  48. data/lib/chicken_soup/notifiers/email/email-checks.rb +26 -0
  49. data/lib/chicken_soup/notifiers/email/email-defaults.rb +50 -0
  50. data/lib/chicken_soup/notifiers/email/email-tasks.rb +37 -0
  51. data/lib/chicken_soup/notifiers/email/presenter.rb +56 -0
  52. data/lib/chicken_soup/notifiers/{git.rb → git/git-tasks.rb} +0 -0
  53. data/lib/chicken_soup/notifiers/{hoptoad.rb → hoptoad/hoptoad-tasks.rb} +0 -0
  54. data/lib/chicken_soup/notifiers/tasks.rb +12 -0
  55. data/lib/chicken_soup/templates/client_email.html.erb +21 -0
  56. data/lib/chicken_soup/templates/internal_email.html.erb +19 -0
  57. data/lib/chicken_soup/version.rb +1 -1
  58. data/lib/chicken_stock.rb +3 -3
  59. data/spec/support/focused.rb +10 -0
  60. metadata +91 -35
  61. data/lib/chicken_soup/capabilities/apache.rb +0 -235
  62. data/lib/chicken_soup/capabilities/bundler.rb +0 -68
  63. data/lib/chicken_soup/capabilities/rvm.rb +0 -42
  64. data/lib/chicken_soup/notifiers/email.rb +0 -109
@@ -2,7 +2,7 @@
2
2
  # NOTIFIERS CHECK #
3
3
  ######################################################################
4
4
  Capistrano::Configuration.instance(:must_exist).load do
5
- after 'environment:check', 'notifiers:check'
5
+ before 'notifiers:check', 'load_notifier_checks'
6
6
 
7
7
  namespace :notifiers do
8
8
  namespace :check do
@@ -2,8 +2,7 @@
2
2
  # DEFAULT NOTIFIERS SETUP #
3
3
  ######################################################################
4
4
  Capistrano::Configuration.instance(:must_exist).load do
5
- after 'environment:defaults', 'notifiers:defaults'
6
- before 'notifiers:defaults', 'load_notifiers'
5
+ before 'notifiers:defaults', 'load_notifier_defaults'
7
6
 
8
7
  namespace :notifiers do
9
8
  namespace :defaults do
@@ -0,0 +1,26 @@
1
+ ######################################################################
2
+ # EMAIL NOTIFIER CHECKS #
3
+ ######################################################################
4
+ Capistrano::Configuration.instance(:must_exist).load do
5
+ namespace :notifiers do
6
+ namespace :check do
7
+ desc <<-DESC
8
+ [internal] Checks to see if all necessary email notification environment variables have been set up.
9
+ DESC
10
+ task :email do
11
+ required_variables = [
12
+ :email_notifier_client_recipients,
13
+ :email_notifier_internal_recipients,
14
+ :email_notifier_domain,
15
+ :email_notifier_username,
16
+ :email_notifier_password,
17
+ :vc_log
18
+ ]
19
+
20
+ abort "You must specify either internal or client recipients in order to use the email notifier." if email_notifier_client_recipients.empty? && email_notifier_internal_recipients.empty?
21
+
22
+ verify_variables(required_variables)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,50 @@
1
+ ######################################################################
2
+ # EMAIL NOTIFIER DEFAULTS #
3
+ ######################################################################
4
+ require 'mail'
5
+ require 'erb'
6
+ require 'chicken_soup/notifiers/email/presenter'
7
+
8
+ Capistrano::Configuration.instance(:must_exist).load do |cap|
9
+ namespace :notifiers do
10
+ namespace :defaults do
11
+ task :email do
12
+ _cset :email_notifier_format, 'html'
13
+
14
+ _cset :email_notifier_mail_method, :smtp
15
+ _cset :email_notifier_server, "smtp.gmail.com"
16
+ _cset :email_notifier_port, 587
17
+ _cset :email_notifier_authentication, 'plain'
18
+
19
+ _cset(:email_notifier_mail_options) do
20
+ { :address => email_notifier_server,
21
+ :port => email_notifier_port,
22
+ :domain => email_notifier_domain,
23
+ :user_name => email_notifier_username,
24
+ :password => email_notifier_password,
25
+ :authentication => email_notifier_authentication,
26
+ :enable_starttls_auto => true }
27
+ end
28
+
29
+ _cset :email_notifier_client_recipients, []
30
+ _cset :email_notifier_internal_recipients, []
31
+ _cset :email_notifier_sender, 'theshadow@theshadowknows.com'
32
+ _cset :email_notifier_subject, "#{application.titleize} has been deployed to #{rails_env.capitalize}"
33
+ _cset :email_notifier_client_template, read_template("client_email.#{email_notifier_format}.erb")
34
+ _cset :email_notifier_internal_template, read_template("internal_email.#{email_notifier_format}.erb")
35
+
36
+ email_presenter= ChickenSoup::Email::Presenter.new(cap)
37
+ _cset :email_notifier_client_body, render_erb(email_notifier_client_template, email_presenter)
38
+ _cset :email_notifier_internal_body, render_erb(email_notifier_internal_template, email_presenter)
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ def render_erb(template, email_info)
45
+ ERB.new(template, 0, "%<>").result(binding)
46
+ end
47
+
48
+ def read_template(template)
49
+ File.read(File.join(File.dirname(__FILE__), '..', '..', 'templates', template))
50
+ end
@@ -0,0 +1,37 @@
1
+ ######################################################################
2
+ # EMAIL NOTIFIER TASKS #
3
+ ######################################################################
4
+ require 'mail'
5
+
6
+ Capistrano::Configuration.instance(:must_exist).load do |cap|
7
+ after 'deploy:cleanup', 'notify:by_email'
8
+
9
+ namespace :notify do
10
+ desc <<-DESC
11
+ [internal] Sends a notification via email once a deployment is complete.
12
+ DESC
13
+ task :by_email do
14
+ Mail.defaults do
15
+ delivery_method cap[:email_notifier_mail_method], cap[:email_notifier_mail_options]
16
+ end
17
+
18
+ if !cap[:email_notifier_client_recipients].empty?
19
+ Mail.deliver do
20
+ to cap[:email_notifier_client_recipients]
21
+ from cap[:email_notifier_sender]
22
+ subject cap[:email_notifier_subject]
23
+ body cap[:email_notifier_client_body]
24
+ end
25
+ end
26
+
27
+ if !cap[:email_notifier_internal_recipients].empty?
28
+ Mail.deliver do
29
+ to cap[:email_notifier_internal_recipients]
30
+ from cap[:email_notifier_sender]
31
+ subject cap[:email_notifier_subject]
32
+ body cap[:email_notifier_internal_body]
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,56 @@
1
+ require 'etc'
2
+ require 'time'
3
+
4
+ module ChickenSoup
5
+ module Email
6
+ class Presenter
7
+ LongDateFormat = "%A, %B %e, %Y at %l:%M%p %Z"
8
+
9
+ def initialize(capistrano)
10
+ @capistrano = capistrano
11
+ end
12
+
13
+ def application
14
+ @capistrano[:application].titleize
15
+ end
16
+
17
+ def environment
18
+ @capistrano[:rails_env].titleize
19
+ end
20
+
21
+ def deployed_by
22
+ Etc.getlogin
23
+ end
24
+
25
+ def deploy_date_in_long_format
26
+ format_timestamp(@capistrano[:current_release], LongDateFormat)
27
+ end
28
+
29
+ def previous_deploy_date_in_long_format
30
+ format_timestamp(@capistrano[:previous_release], LongDateFormat)
31
+ end
32
+
33
+ def notifiers
34
+ @capistrano[:notifiers].join(", ")
35
+ end
36
+
37
+ def changes_since_last_deployment
38
+ @capistrano[:vc_log]
39
+ end
40
+
41
+ private
42
+ def format_timestamp(capistrano_timestamp, format)
43
+ timestamp = convert_capistrano_timestamp(capistrano_timestamp)
44
+ timestamp.strftime(format)
45
+ end
46
+
47
+ def convert_capistrano_timestamp(capistrano_timestamp)
48
+ begin
49
+ Date.strptime(capistrano_timestamp, "%Y%m%d%H%M%S")
50
+ rescue
51
+ Date.today
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,12 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+ before 'notifiers:load_tasks', 'load_notifier_tasks'
3
+
4
+ namespace :notifiers do
5
+ desc <<-DESC
6
+ [internal] A helper task used to load all of the tasks associated with the
7
+ requested notifiers.
8
+ DESC
9
+ task :load_tasks do
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ <%= email_info.application %>
2
+
3
+ Deployment to <%= email_info.environment %>
4
+
5
+ Deployed By <%= email_info.deployed_by %>
6
+ <%= email_info.deploy_date_in_long_format %>
7
+
8
+ <%= email_info.application %> was last deployed to <%= email_info.environment %> on <%= email_info.previous_deploy_date_in_long_format %>.
9
+
10
+ Other Notifications Sent
11
+ -------------------------------
12
+ <%= email_info.notifiers %>
13
+
14
+
15
+ Changes Since The Last Deployment
16
+ -------------------------------
17
+ <%= email_info.changes_since_last_deployment %>
18
+
19
+
20
+ Thank you for eating your Chicken Soup. Your mother would be proud.
21
+ Chicken Soup is a free product of The Kompanee. Please deploy responsibly.
@@ -0,0 +1,19 @@
1
+ <%= email_info.application %>
2
+
3
+ Deployment to <%= email_info.environment %>
4
+
5
+ Deployed By <%= email_info.deployed_by %>
6
+ <%= email_info.deploy_date_in_long_format %>
7
+
8
+ <%= email_info.application %> was last deployed to <%= email_info.environment %> on <%= email_info.previous_deploy_date_in_long_format %>.
9
+
10
+ Other Notifications Sent
11
+ -------------------------------
12
+ <%= email_info.notifiers %>
13
+
14
+ Changes Since The Last Deployment
15
+ -------------------------------
16
+ <%= email_info.changes_since_last_deployment %>
17
+
18
+ Thank you for eating your Chicken Soup. Your mother would be proud.
19
+ Chicken Soup is a free product of The Kompanee. Please deploy responsibly.
@@ -1,3 +1,3 @@
1
1
  module ChickenSoup
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/chicken_stock.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "chicken_soup/global"
2
- require "chicken_soup/environment"
1
+ require 'chicken_soup/global'
2
+ require 'chicken_soup/environment'
3
3
  require 'chicken_soup/capabilities'
4
4
  require 'chicken_soup/notifiers'
5
- require "chicken_soup/deploy"
5
+ require 'chicken_soup/deploy'
@@ -0,0 +1,10 @@
1
+ RSpec.configure do |config|
2
+ # Configure RSpec to run focused specs, and also respect the alias 'fit' for focused specs
3
+ config.filter_run :focused => true
4
+ config.alias_example_to :fit, :focused => true
5
+
6
+ # Configure RSpec to respect the alias 'pit' for pending specs
7
+ config.alias_example_to :pit, :pending => true
8
+
9
+ config.run_all_when_everything_filtered = true
10
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chicken_soup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ prerelease:
5
+ version: 0.2.0
5
6
  platform: ruby
6
7
  authors:
7
8
  - thekompanee
@@ -10,39 +11,64 @@ autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
13
 
13
- date: 2011-03-03 00:00:00 -06:00
14
+ date: 2011-06-13 00:00:00 -05:00
14
15
  default_executable:
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: capistrano
18
- type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
19
+ prerelease: false
20
+ requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
21
22
  requirements:
22
23
  - - ~>
23
24
  - !ruby/object:Gem::Version
24
- version: 2.5.19
25
- version:
25
+ version: 2.6.0
26
+ type: :runtime
27
+ version_requirements: *id001
26
28
  - !ruby/object:Gem::Dependency
27
29
  name: mail
28
- type: :runtime
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
30
+ prerelease: false
31
+ requirement: &id002 !ruby/object:Gem::Requirement
32
+ none: false
31
33
  requirements:
32
34
  - - ~>
33
35
  - !ruby/object:Gem::Version
34
36
  version: 2.2.15
35
- version:
37
+ type: :runtime
38
+ version_requirements: *id002
36
39
  - !ruby/object:Gem::Dependency
37
40
  name: bundler
38
- type: :development
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
41
+ prerelease: false
42
+ requirement: &id003 !ruby/object:Gem::Requirement
43
+ none: false
41
44
  requirements:
42
45
  - - ~>
43
46
  - !ruby/object:Gem::Version
44
47
  version: 1.0.10
45
- version:
48
+ type: :development
49
+ version_requirements: *id003
50
+ - !ruby/object:Gem::Dependency
51
+ name: rspec
52
+ prerelease: false
53
+ requirement: &id004 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: 2.6.0
59
+ type: :development
60
+ version_requirements: *id004
61
+ - !ruby/object:Gem::Dependency
62
+ name: yard
63
+ prerelease: false
64
+ requirement: &id005 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.7.1
70
+ type: :development
71
+ version_requirements: *id005
46
72
  description: ...for the Deployment Soul. Why do you keep typing all that crap into your Capistrano recipes? Are you too cool for standards? Well, ARE YA!?
47
73
  email: support@thekompanee.com
48
74
  executables: []
@@ -54,38 +80,68 @@ extra_rdoc_files:
54
80
  - LICENSE
55
81
  files:
56
82
  - .gitignore
83
+ - .rspec
84
+ - .rvmrc
57
85
  - Gemfile
58
86
  - LICENSE
59
87
  - README.md
60
88
  - Rakefile
61
89
  - chicken_soup.gemspec
62
90
  - lib/chicken_soup/capabilities.rb
63
- - lib/chicken_soup/capabilities/apache.rb
64
- - lib/chicken_soup/capabilities/bundler.rb
91
+ - lib/chicken_soup/capabilities/apache/apache-checks.rb
92
+ - lib/chicken_soup/capabilities/apache/apache-defaults.rb
93
+ - lib/chicken_soup/capabilities/apache/apache-tasks.rb
94
+ - lib/chicken_soup/capabilities/bundler/bundler-checks.rb
95
+ - lib/chicken_soup/capabilities/bundler/bundler-defaults.rb
96
+ - lib/chicken_soup/capabilities/bundler/bundler-tasks.rb
65
97
  - lib/chicken_soup/capabilities/checks.rb
66
98
  - lib/chicken_soup/capabilities/defaults.rb
67
- - lib/chicken_soup/capabilities/git.rb
68
- - lib/chicken_soup/capabilities/heroku.rb
69
- - lib/chicken_soup/capabilities/mysql.rb
70
- - lib/chicken_soup/capabilities/passenger.rb
71
- - lib/chicken_soup/capabilities/postgres.rb
72
- - lib/chicken_soup/capabilities/rvm.rb
73
- - lib/chicken_soup/capabilities/shared/db.rb
74
- - lib/chicken_soup/capabilities/svn.rb
75
- - lib/chicken_soup/capabilities/unix.rb
99
+ - lib/chicken_soup/capabilities/git/git-defaults.rb
100
+ - lib/chicken_soup/capabilities/heroku/heroku-checks.rb
101
+ - lib/chicken_soup/capabilities/heroku/heroku-defaults.rb
102
+ - lib/chicken_soup/capabilities/heroku/heroku-tasks.rb
103
+ - lib/chicken_soup/capabilities/mysql/mysql-tasks.rb
104
+ - lib/chicken_soup/capabilities/nginx/nginx-checks.rb
105
+ - lib/chicken_soup/capabilities/nginx/nginx-defaults.rb
106
+ - lib/chicken_soup/capabilities/nginx/nginx-tasks.rb
107
+ - lib/chicken_soup/capabilities/passenger/passenger-tasks.rb
108
+ - lib/chicken_soup/capabilities/postgres/postgres-checks.rb
109
+ - lib/chicken_soup/capabilities/postgres/postgres-defaults.rb
110
+ - lib/chicken_soup/capabilities/postgres/postgres-tasks.rb
111
+ - lib/chicken_soup/capabilities/rvm/rvm-checks.rb
112
+ - lib/chicken_soup/capabilities/rvm/rvm-defaults.rb
113
+ - lib/chicken_soup/capabilities/rvm/rvm-tasks.rb
114
+ - lib/chicken_soup/capabilities/shared/db-checks.rb
115
+ - lib/chicken_soup/capabilities/shared/db-defaults.rb
116
+ - lib/chicken_soup/capabilities/shared/db-tasks.rb
117
+ - lib/chicken_soup/capabilities/shared/web_server-tasks.rb
118
+ - lib/chicken_soup/capabilities/svn/svn-defaults.rb
119
+ - lib/chicken_soup/capabilities/svn/svn-tasks.rb
120
+ - lib/chicken_soup/capabilities/tasks.rb
121
+ - lib/chicken_soup/capabilities/unix/unix-checks.rb
122
+ - lib/chicken_soup/capabilities/unix/unix-defaults.rb
123
+ - lib/chicken_soup/capabilities/unix/unix-tasks.rb
76
124
  - lib/chicken_soup/deploy.rb
77
125
  - lib/chicken_soup/environment.rb
78
126
  - lib/chicken_soup/environment/checks.rb
79
127
  - lib/chicken_soup/environment/defaults.rb
128
+ - lib/chicken_soup/environment/tasks.rb
80
129
  - lib/chicken_soup/global.rb
81
130
  - lib/chicken_soup/notifiers.rb
82
131
  - lib/chicken_soup/notifiers/checks.rb
83
132
  - lib/chicken_soup/notifiers/defaults.rb
84
- - lib/chicken_soup/notifiers/email.rb
85
- - lib/chicken_soup/notifiers/git.rb
86
- - lib/chicken_soup/notifiers/hoptoad.rb
133
+ - lib/chicken_soup/notifiers/email/email-checks.rb
134
+ - lib/chicken_soup/notifiers/email/email-defaults.rb
135
+ - lib/chicken_soup/notifiers/email/email-tasks.rb
136
+ - lib/chicken_soup/notifiers/email/presenter.rb
137
+ - lib/chicken_soup/notifiers/git/git-tasks.rb
138
+ - lib/chicken_soup/notifiers/hoptoad/hoptoad-tasks.rb
139
+ - lib/chicken_soup/notifiers/tasks.rb
140
+ - lib/chicken_soup/templates/client_email.html.erb
141
+ - lib/chicken_soup/templates/internal_email.html.erb
87
142
  - lib/chicken_soup/version.rb
88
143
  - lib/chicken_stock.rb
144
+ - spec/support/focused.rb
89
145
  has_rdoc: true
90
146
  homepage: http://github.com/jfelchner/chicken_soup
91
147
  licenses: []
@@ -96,23 +152,23 @@ rdoc_options:
96
152
  require_paths:
97
153
  - lib
98
154
  required_ruby_version: !ruby/object:Gem::Requirement
155
+ none: false
99
156
  requirements:
100
157
  - - ">="
101
158
  - !ruby/object:Gem::Version
102
159
  version: "0"
103
- version:
104
160
  required_rubygems_version: !ruby/object:Gem::Requirement
161
+ none: false
105
162
  requirements:
106
163
  - - ">="
107
164
  - !ruby/object:Gem::Version
108
165
  version: "0"
109
- version:
110
166
  requirements: []
111
167
 
112
168
  rubyforge_project: chicken_soup
113
- rubygems_version: 1.3.5
169
+ rubygems_version: 1.6.2
114
170
  signing_key:
115
171
  specification_version: 3
116
- summary: chicken_soup-0.1.0
117
- test_files: []
118
-
172
+ summary: chicken_soup-0.2.0
173
+ test_files:
174
+ - spec/support/focused.rb