<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -21,6 +21,9 @@ module Craken
   # capistrano deployments
   APP_NAME          = ENV['app_name'] || (DEPLOY_PATH =~ /\/([^\/]*)\/releases\/\d*$/ ? $1 : File.basename(DEPLOY_PATH))
 
+  # see here: http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5
+  SPECIAL_STRINGS   = %w[@reboot @yearly @annually @monthly @weekly @daily @midnight @hourly]
+
   # strip out the existing raketab cron tasks for this project
   def load_and_strip
     crontab = ''
@@ -43,9 +46,15 @@ module Craken
       line.strip!
       unless line =~ /^#/ || line.empty? # ignore comments and blank lines
         sp = line.split
-        crontab &lt;&lt; sp[0,5].join(' ')
+        if SPECIAL_STRINGS.include?(sp.first)
+          crontab &lt;&lt; sp.shift
+          tasks = sp
+        else
+          crontab &lt;&lt; sp[0,5].join(' ')
+          tasks = sp[5,sp.size]
+        end
         crontab &lt;&lt; &quot; cd #{DEPLOY_PATH} &amp;&amp; #{RAKE_EXE} --silent RAILS_ENV=#{RAKETAB_RAILS_ENV}&quot;
-        sp[5,sp.size].each do |task|
+        tasks.each do |task|
           crontab &lt;&lt; &quot; #{task}&quot;
         end
         crontab &lt;&lt; &quot;\n&quot;</diff>
      <filename>lib/craken.rb</filename>
    </modified>
    <modified>
      <diff>@@ -69,6 +69,28 @@ EOS
       cron.should_not match(/# comment to ignore/)
       cron.should_not match(/# another comment to ignore/)
     end
+    
+    it &quot;should not munge the eight crontab special strings&quot; do
+raketab = &lt;&lt;EOS
+@reboot brush:teeth
+@yearly dont_forget_girlfriends:birthday
+@annually just_damn_remember:it
+@monthly do_some:sport
+@weekly get:stash
+@daily take:shower
+@midnight stop_working_on_os:projects
+@hourly drink:water
+EOS
+      cron = append_tasks(@crontab, raketab)
+      cron.should match(/@reboot (.*)/)
+      cron.should match(/@yearly (.*)/)
+      cron.should match(/@annually (.*)/)
+      cron.should match(/@monthly (.*)/)
+      cron.should match(/@weekly (.*)/)
+      cron.should match(/@daily (.*)/)
+      cron.should match(/@midnight (.*)/)
+      cron.should match(/@hourly (.*)/)
+    end
 
     it &quot;should not munge the crontab time configuration&quot; do
 raketab = &lt;&lt;EOS</diff>
      <filename>spec/craken_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7ab467d3b785176056392e5fd039ec0177318f6d</id>
    </parent>
  </parents>
  <author>
    <name>Overbryd</name>
    <email>l.rieder@gmail.com</email>
  </author>
  <url>http://github.com/latimes/craken/commit/62834a0f90a4f1193edc9108b9e8fe2cffe72812</url>
  <id>62834a0f90a4f1193edc9108b9e8fe2cffe72812</id>
  <committed-date>2009-09-10T15:41:32-07:00</committed-date>
  <authored-date>2009-09-10T15:41:32-07:00</authored-date>
  <message>Added parseability for all eight crontabs special strings (ex. @reboot or @annually)</message>
  <tree>4c454c1fbf79af375b3442750dd3fe98348f2fb4</tree>
  <committer>
    <name>Overbryd</name>
    <email>l.rieder@gmail.com</email>
  </committer>
</commit>
