You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: project_spec.rb
    path of file: ./repos/serve/spec
    
    the code of the file until where you have to start completion: require File.dirname(__FILE__) + '/spec_helper.rb'
require 'serve/project'
require 'fileutils'

describe Serve::Project do

  de
    
      def puts(*args); end
      def print(*args); end
    end

    include Serve::Path

    before(:all) do
      @options = {
        port:        4000,
        address:     '0.0.0.0',
        directory:   'serve_project_for_tests',
        framework:   'jquery'
      }

      @project        = Serve::Project.new(@options)
      @project.stdout = SilentOut.new
      @project.stderr = SilentOut.new

      @project_root  = normalize_path(@options[:directory])
    end

    after :all do
      FileUtils.rm_rf @project_root
    end

    it "should have a project directory" do
      @project.location.should == 'serve_project_for_tests'
    end

    it "should have a framework" do
      @project.framework.should == 'jquery'
    end

    it "should have a default template" do
      @project.template.should == 'default'
    end

    describe "The created files" do
      before(:all) do
        @project.create
      end

      it "should create a directory" do
        exists?('.').should be_true
      end

      it "should have a public directory" do
        exists?('public').should be_true
      end

      it "should have a javascript directory" do
        exists?('public/javascripts').should be_true
      end

      it "should have a stylesheets directory" do
        exists?('public/stylesheets').should be_true
      end

      it "should have an images directory" do
        exists?('public/images').should be_true
      end

      it "should have a sass directory" do
        exists?('stylesheets').should be_true
      end

      it "should have a tmp directory" do
        exists?('tmp').should be_true
      end

      it "should have a views directory" do
        exists?('views').should be_true
      end

      it "should have config.ru file" do
        exists?('config.ru').should be_true
      end

      it "should have a compass.config file" do
        exists?('compass.config').should be_true
      end

      it "should have a dot gitignore file" do
        exists?('.gitignore').should be_true
      end

      it "should have a restart file" do
        exists?('tmp/restart.txt').should be_true
      end

      def exists?(filename)
        File.exists?(File.join(@project_root, filename))
      end
    end

  end