<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,10 +1,10 @@
 require './lib/rails_manifest.rb'
 
-# This class is for a *single* application.
+# This class is for a *single* application. And yes, these could be easily implemented in json/yaml.
 class ApplicationManifest &lt; RailsManifest
   
   # name your app
-  name :birddog
+  name &quot;birddog&quot;
   domain &quot;birddog.railsmachine.com&quot;
   database_password &quot;secret&quot;
   </diff>
      <filename>application_manifest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,10 @@
 require 'shadow_puppet'
 require File.dirname(__FILE__) + '/recipes.rb'
 
-RAILS_USER = &quot;rails&quot;
-RAILS_GROUP = &quot;rails&quot;
-RAILS_PREFIX = &quot;/var/rails&quot;
-PASSENGER_VERSION = &quot;2.0.6&quot;
+Configuration[:user] = &quot;rails&quot;
+Configuration[:group] = &quot;rails&quot;
+Configuration[:prefix] = &quot;/var/rails&quot;
+Configuration[:passenger_version] = &quot;2.0.6&quot;
 
 class RailsManifest &lt; ShadowPuppet::Manifest
   include MySQLRecipes
@@ -14,16 +14,16 @@ class RailsManifest &lt; ShadowPuppet::Manifest
   include CapistranoRecipes
   
   class &lt;&lt; self
-    def name(name)
-      Configuration.name = name.to_s
+    def name(value)
+      Configuration[:name] = value
     end
     
-    def domain(name)
-      Configuration.domain = name
+    def domain(value)
+      Configuration[:domain] = value
     end
     
-    def database_password(password)
-      Configuration.database_password = password
+    def database_password(value)
+      Configuration[:database_password] = value
     end
   end
   
@@ -33,8 +33,8 @@ class RailsManifest &lt; ShadowPuppet::Manifest
   recipe :rails_gem, :rails_user, :rails_prefix, :rails_root
   recipe :mysql_database
   recipe :application_packages
-  recipe :passenger_site, :domain =&gt; Configuration.domain
-  recipe :mysql_user, :password =&gt; Configuration.database_password
+  recipe :passenger_site
+  recipe :mysql_user
   
   # implement this in subclass if you want
   def applications_packages</diff>
      <filename>lib/rails_manifest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,9 +2,9 @@ require File.join(File.dirname(__FILE__), 'configuration.rb')
 
 module CapistranoRecipes
   def capistrano_setup
-    root_path = &quot;#{RAILS_PREFIX}/#{Configuration.name}&quot;
+    root_path = &quot;#{RAILS_PREFIX}/#{Configuration[:name]}&quot;
     
-    file_args = { :ensure =&gt; :directory, :owner =&gt; RAILS_USER, :group =&gt; RAILS_GROUP, :require =&gt; file(root_path) }
+    file_args = { :ensure =&gt; :directory, :owner =&gt; Configuration[:user], :group =&gt; Configuration[:group], :require =&gt; file(root_path) }
     file &quot;#{root_path}/shared&quot;, file_args
     file &quot;#{root_path}/releases&quot;, file_args
     </diff>
      <filename>lib/recipes/capistrano_recipes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,11 @@
 class Configuration
   class &lt;&lt; self
-    attr_accessor :name, :domain, :database_password
+    @values = {}
+    def [](key)
+      @values[key]
+    end
+    def []=(key, value)
+      @values[:key] = value
+    end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/recipes/configuration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ module PassengerRecipes
     # this needs to be attached to a fact
     #version = Gem::SourceIndex.from_installed_gems.find_name(&quot;passenger&quot;).last.version.to_s
    
-    path = &quot;/usr/lib/ruby/gems/1.8/gems/passenger-#{PASSENGER_VERSION}&quot;
+    path = &quot;/usr/lib/ruby/gems/1.8/gems/passenger-#{Configuration[:passenger_version]}&quot;
     
     package &quot;apache2-threaded-dev&quot;, :ensure =&gt; :installed
     exec &quot;build_passenger&quot;, {:cwd =&gt; path, 
@@ -38,13 +38,14 @@ module PassengerRecipes
   end
   
   def passenger_site(args)
-    name = Configuration.name
-    domain = args[:domain]
+    name = Configuration[:name]
+    domain = Configuration[:domain]
     
     # TODO: ShadowPuppet needs template helper
     conf_file = &quot;/etc/apache2/sites-available/#{name}&quot;
     conf_template = File.join(File.dirname(__FILE__), &quot;../../templates&quot;, &quot;passenger.vhost.erb&quot;)
     conf_template_contents = File.read(conf_template)
+    doc_root = Configuration[:prefix] + &quot;/&quot; + name 
     conf_content = ERB.new(conf_template_contents).result(binding)
     file conf_file, { :ensure =&gt; :present, :content =&gt; conf_content }
     </diff>
      <filename>lib/recipes/passenger_recipes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,18 +1,20 @@
+require File.join(File.dirname(__FILE__), 'configuration.rb')
+
 module RailsRecipes 
   def rails_gem
     package &quot;rails&quot;, :ensure =&gt; :installed, :provider =&gt; :gem
   end
   
   def rails_user
-    user RAILS_USER, :ensure =&gt; :present 
+    user Configuration[:user], :ensure =&gt; :present 
   end
   
   def rails_prefix
-    file RAILS_PREFIX, { :ensure =&gt; :directory, :owner =&gt; RAILS_USER, :group =&gt; RAILS_GROUP, :require =&gt; user(RAILS_USER) }
+    file RAILS_PREFIX, { :ensure =&gt; :directory, :owner =&gt; Configuration[:user], :group =&gt; Configuration[:group], :require =&gt; user(Configuration[:user]) }
   end
   
-  def rails_root(args)
-    path = &quot;#{RAILS_PREFIX}/#{args[:name]}&quot;
-    file path, { :ensure =&gt; :directory, :owner =&gt; RAILS_USER, :group =&gt; RAILS_GROUP, :require =&gt; user(RAILS_USER) }
+  def rails_root
+    path = &quot;#{Configuration[:prefix]}/#{Configuration[:name]}&quot;
+    file path, { :ensure =&gt; :directory, :owner =&gt; Configuration[:user], :group =&gt; Configuration[:group], :require =&gt; user(Configuration[:user]) }
   end
 end
\ No newline at end of file</diff>
      <filename>lib/recipes/rails_recipes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 &lt;VirtualHost *:80&gt;
     ServerName &lt;%= domain %&gt;
-    DocumentRoot &lt;%= RAILS_PREFIX + &quot;/&quot; + name %&gt;
+    DocumentRoot &lt;%= doc_root %&gt;
 &lt;/VirtualHost&gt;</diff>
      <filename>templates/passenger.vhost.erb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>09de980e499e35553d96eade6187e3a4544162f6</id>
    </parent>
  </parents>
  <author>
    <name>Bradley Taylor</name>
    <email>bradley@railsmachine.com</email>
  </author>
  <url>http://github.com/wrecked/shadow_rails/commit/fdf75ba9493c9c3482f18a6329ea6f351e0650bb</url>
  <id>fdf75ba9493c9c3482f18a6329ea6f351e0650bb</id>
  <committed-date>2009-02-06T14:14:43-08:00</committed-date>
  <authored-date>2009-02-06T14:14:43-08:00</authored-date>
  <message>moved to global config</message>
  <tree>0d95fc027de1ddbc7d50002d51af2891029359b1</tree>
  <committer>
    <name>Bradley Taylor</name>
    <email>bradley@railsmachine.com</email>
  </committer>
</commit>
