<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>dependencies.yml</filename>
    </added>
    <added>
      <filename>lib/waves/helpers/css.rb</filename>
    </added>
    <added>
      <filename>templates/classic/views/pages.rb.erb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -5,21 +5,7 @@ rescue LoadError =&gt; e
   raise e
 end
 
-runtime_deps = {:rack =&gt; '~&gt; 0.4',
-                'rack-cache' =&gt; '~&gt; 0.2',
-                :extensions =&gt; '~&gt; 0.6',
-                :english =&gt; '~&gt; 0.3',
-                :live_console =&gt; '~&gt; 0.2',
-                :functor =&gt; '&gt;= 0.5.0',
-                :rakegen =&gt; '~&gt; 0.6',
-                :autocode =&gt; '&gt;= 1.0.0',
-                :filebase =&gt; '&gt;= 0.3.5',
-                :RedCloth =&gt; '~&gt; 4.0',
-                :choice =&gt; '~&gt; 0.1',
-                :metaid =&gt; '~&gt; 1.0',
-                :daemons =&gt; '~&gt;1.0.10'
-               }
-
+runtime_deps = YAML::load_file( 'dependencies.yml' )
 developer_deps = { :bacon =&gt; '~&gt; 1.0', :facon =&gt; '~&gt; 0.4' }
 
 gem = Gem::Specification.new do |gem|
@@ -98,23 +84,6 @@ task &quot;edge:gemspec&quot; =&gt; :gemspec do
   end
 end
 
-desc &quot;Publish to RubyForge&quot;
-task( :publish =&gt; [ :package, :rdoc_publish ] ) do
-  `rubyforge login`
-  `rubyforge add_release #{gem.name} #{gem.name} #{gem.version} #{gem.name}-#{gem.version}.gem`
-end
-
-task( :rdoc_publish =&gt; :rdoc ) do
-  path = &quot;/var/www/gforge-projects/#{gem.name}/&quot;
-  `rsync -a --delete ./doc/rdoc/ dyoder67@rubyforge.org:#{path}`
-end
-
-Rake::RDocTask.new do |rdoc|
-  rdoc.rdoc_dir = 'doc/rdoc'
-  rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source' &lt;&lt; '--main' &lt;&lt; 'doc/README'
-  rdoc.rdoc_files.add [ 'lib/**/*.rb', 'doc/*' ]
-end
-
 # based on a blog post by Assaf Arkin
 desc &quot;Set up dependencies so you can work from source&quot;
 task( :setup ) do
@@ -169,3 +138,15 @@ end
 desc &quot;Run all specs and tests.&quot;
 task :spec =&gt; %w[ test specs:run ]
 
+
+Rake::RDocTask.new do |rdoc|
+  rdoc.rdoc_dir = 'doc/rdoc'
+  rdoc.options &lt;&lt; '--line-numbers' &lt;&lt; '--inline-source' &lt;&lt; '--main' &lt;&lt; 'doc/README'
+  rdoc.rdoc_files.add [ 'lib/**/*.rb', 'doc/*' ]
+end
+
+task( :rdoc_publish =&gt; :rdoc ) do
+  path = &quot;/var/www/gforge-projects/#{gem.name}/&quot;
+  `rsync -a --delete ./doc/rdoc/ dyoder67@rubyforge.org:#{path}`
+end
+</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,5 @@
-# TODO: Move ALL of this stuff where it is needed to avoid
-#       unnecessary dependencies.
-
+require 'yaml'
+YAML::load_file( File.expand_path( File.dirname( __FILE__ )) + '/../dependencies.yml' ).each { |name,version| gem name, version }
 # External Dependencies
 require &quot;rubygems&quot;
 require 'rack'</diff>
      <filename>lib/waves.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+gem 'choice', 
 require 'choice'
 
 Choice.options do</diff>
      <filename>lib/waves/commands/console.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'choice'
+gem 'rakegen', '=0.6.6'
 require 'rakegen'
 
 waves = File.expand_path( File.dirname( __FILE__ ) / '..' / '..' / '..' )</diff>
      <filename>lib/waves/commands/generate.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,7 @@ module Waves
 
       def self.included( app )
 
-        gem 'dyoder-autocode', '~&gt; 1.0.1'
         require 'autocode'
-
         require 'waves/layers/mvc'
         require 'waves/layers/text/inflect/english'
         require 'waves/views/templated'</diff>
      <filename>lib/waves/foundations/classic.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,6 @@
 module Waves
   module Helpers
     module Basic
-      attr_reader :request
-      include Waves::ResponseMixin
-      
-      def app ; Waves.main ; end
-      
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/waves/helpers/basic.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ module Waves
         end
 
         app.auto_create_module( :Views ) do
-          auto_create_class :Default, Hoshi::View[:html4_transitional] do
+          auto_create_class :Default, Hoshi::View[:html4] do
             include Waves::Views::Mixin
             include Waves::Helpers::Basic
             include Waves::Helpers::Formatting</diff>
      <filename>lib/waves/layers/mvc.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,12 +29,14 @@ module Waves
 
     def controller( resource = nil )
       resource ||= self.class.basename.snake_case
-      @controller ||= app::Controllers[ resource ].new( @request )
+      @controller ||= {}
+      @controller[resource] ||= app::Controllers[ resource ].new( @request )
     end
     
     def view( resource = nil )
       resource ||= self.class.basename.snake_case
-      @view ||= app::Views[ resource ].new( @request )
+      @view ||= {}
+      @view[resource] ||= app::Views[ resource ].new( @request )
     end
 
     # MVC Params get automatically destructured with the keys as accessors methods.</diff>
      <filename>lib/waves/layers/mvc/extensions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -124,10 +124,15 @@ module Waves
 
     # File extension of path, with leading dot
     def extension
-      @ext ||= ( if ( e = File.extname( path )).empty? then nil else e end )
+      @ext ||= ( ( e = File.extname( path ) ).empty? ? nil : e )
     end
+    
     alias :ext :extension
 
+    def basename
+      @basename ||= File.basename( path )
+    end
+
     module Utilities
 
       def self.destructure( hash )</diff>
      <filename>lib/waves/runtime/request.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,24 +31,18 @@ module Waves
       define_method( m ) { request.send( m ) }
     end
     
-    # Issue a redirect for the given location.
     def redirect(location, status = '302'); request.redirect(location, status); end
-    # Access the Waves::Logger.
+
     def log; Waves::Logger; end
-    # access stuff from an app
-    def app_name ; self.class.rootname.snake_case.to_sym ; end
-    def app ; eval(  &quot;::#{app_name.to_s.camel_case}&quot; ) ; end    
+
+    def app ; self.class.root ; end
+
+    def main ; Waves.main ; end
+
     def paths( rname = nil )
       ( rname ? app::Resources[ rname ].paths : resource.class.paths ).new
     end
 
-    # these take strings or operate on the path by default
-    def basename( str = nil ) ; ( str or path ).sub(/\.([^\.]+)$/,'') ; end
-
-    def extension( str = nil )
-      ( m = ( str or path ).match(/\.([^\.]+)$/) ) ? m[1] : nil
-    end
-    
   end
 
 end</diff>
      <filename>lib/waves/runtime/response_mixin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@ module Waves
 
       def initialize( request )
         @request = request
+        super()
       end
 
     end</diff>
      <filename>lib/waves/views/mixin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,9 @@ module &lt;%= @name %&gt;
     class Server
       include Waves::Resources::Mixin
       
+      def get
+        view(:pages).welcome
+      end
     end
   end
 end
\ No newline at end of file</diff>
      <filename>templates/classic/resources/server.rb.erb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b3703685d67f09ef5c85c83843058ee247e76f2e</id>
    </parent>
  </parents>
  <author>
    <name>Dan Yoder</name>
    <email>dan@zeraweb.com</email>
  </author>
  <url>http://github.com/waves/edge/commit/0ced74174fee8ebe553dd2cdfd35b9c42477aade</url>
  <id>0ced74174fee8ebe553dd2cdfd35b9c42477aade</id>
  <committed-date>2009-08-22T20:36:11-07:00</committed-date>
  <authored-date>2009-08-22T20:36:11-07:00</authored-date>
  <message>Created external dependencies file to manage them by specific version, along with corresponding changes in code; minor updates to waves commands; further changes to make Cassandra and Hoshi the defaults for views; gave default classic app a default welcome view.</message>
  <tree>75a549265ef511cce553de0c3b606217189b3027</tree>
  <committer>
    <name>Dan Yoder</name>
    <email>dan@zeraweb.com</email>
  </committer>
</commit>
