<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -17,10 +17,22 @@ class Webbastic::Layout
   has n, :headers, :class_name =&gt; Webbastic::Header
   
   # Force layout generation on first time
-  after :create, :is_dirty
+  after :create, :create_defaults
   
   # Add :dirty header to rewrite file during next generation
-  after :update, :is_dirty
+  # after :update, :is_dirty
+  
+  # =====
+  #
+  # Defaults
+  #
+  # =====
+  
+  def create_defaults
+    self.headers.create :name =&gt; &quot;extension&quot;, :content =&gt; &quot;html&quot;
+    self.headers.create :name =&gt; &quot;filter&quot;, :content =&gt; &quot;erb&quot;
+    self.headers.create :name =&gt; &quot;dirty&quot;, :content =&gt; true
+  end
   
   # =====
   #
@@ -38,15 +50,15 @@ class Webbastic::Layout
   
   # Write generated page to static file
   def write_file
-    if self.is_dirty?
+    # if self.dirty?
       self.generate
       File.delete self.absolute_path if File.exists? self.absolute_path
       File.open(self.absolute_path, 'w+') do |f| 
         f.write(self.generated_header)
         f.write(self.content)
       end
-      self.not_dirty
-    end
+    #   self.not_dirty
+    # end
   end
   
   # =====
@@ -57,6 +69,7 @@ class Webbastic::Layout
   
   def generate
     self.generate_header
+    self.not_dirty
   end
   
   # Generate YAML header from current page eader and its children
@@ -65,8 +78,7 @@ class Webbastic::Layout
     self.headers.reload
     
     # Default header values
-    yaml_headers = { 'extension' =&gt; 'html',
-                     'filter'    =&gt; 'erb' }
+    yaml_headers = {}
                         
     self.headers.each do |header|
       yaml_headers[header.name] = header.content
@@ -85,9 +97,8 @@ class Webbastic::Layout
     if header = self.headers.first(:name =&gt; name)
       header.update_attributes(:content =&gt; content)
     else
-      Webbastic::Header.create :name =&gt; name,
-                               :content =&gt; content,
-                               :page_id =&gt; self.id
+      self.headers.create :name =&gt; name,
+                          :content =&gt; content
     end
   end
   
@@ -105,17 +116,17 @@ class Webbastic::Layout
   
   # Make this page dirty, it'll force Webby to re-generate page
   def is_dirty
-    add_header(:dirty, true)
-    self.pages.each {|page| page.is_dirty }
+    self.headers.first_or_create(:name =&gt; :dirty)
+    self.pages.each {|page| page.is_dirty}
   end
   
   # Remove dirty header for this page
   def not_dirty
-    headers.first(:name =&gt; :dirty).destroy if is_dirty?
+    self.headers.first(:name =&gt; :dirty).destroy
   end
   
   # Verify if page is dirty
-  def is_dirty?
-    return !header_content(:dirty).nil?
+  def dirty?
+    return !self.headers.first(:name =&gt; :dirty).nil?
   end
 end</diff>
      <filename>app/models/layout.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,14 +18,26 @@ class Webbastic::Page
   has n, :widgets,  :class_name =&gt; Webbastic::Widget
   
   # Force page generation on first time
-  after :create, :is_dirty
-  after :update, :is_dirty
+  after :create, :create_defaults
+  # after :update, :is_dirty
   
   # Delete page from filesystem
   before :destroy, :delete_page
   
   # =====
   #
+  # Defaults
+  #
+  # =====
+  
+  def create_defaults
+    self.headers.create :name =&gt; &quot;extension&quot;, :content =&gt; &quot;html&quot;
+    self.headers.create :name =&gt; &quot;filter&quot;, :content =&gt; &quot;erb&quot;
+    self.headers.create :name =&gt; &quot;dirty&quot;, :content =&gt; true
+  end
+  
+  # =====
+  #
   # File Path
   #
   # =====
@@ -41,18 +53,18 @@ class Webbastic::Page
   # Write generated page to static file
   def write_file
     
-    if self.is_dirty?
-      self.generate
+    # if dirty?
+      generate
     
-      filename = self.absolute_path.gsub(&quot;.txt&quot;, &quot;&quot;)
+      filename = absolute_path.gsub(&quot;.txt&quot;, &quot;&quot;)
       delete_file filename
       
       File.open(filename, 'w+') do |f| 
-        f.write(self.generated_header)
-        f.write(self.generated_content)
+        f.write(generated_header)
+        f.write(generated_content)
       end
-      self.not_dirty
-    end
+    #   not_dirty
+    # end
   end
   
   def delete_file(filename)
@@ -68,6 +80,7 @@ class Webbastic::Page
   def generate
     generate_header
     generate_content
+    not_dirty
   end
   
   # Generate YAML header from current page eader and its children
@@ -76,14 +89,12 @@ class Webbastic::Page
     self.reload
     self.headers.reload
     
-    layout = self.current_layout.relative_path unless self.current_layout.nil?
+    layout_path = self.current_layout.relative_path unless self.current_layout.nil?
     
     # Default header values
     yaml_headers = {'title' =&gt; self.name, 
                     'created_at' =&gt; Time.now,
-                    'extension' =&gt; 'html',
-                    'filter' =&gt; 'erb',
-                    'layout' =&gt; layout}
+                    'layout' =&gt; layout_path}
                         
     self.headers.each do |header|
       yaml_headers[header.name] = header.content
@@ -114,17 +125,17 @@ class Webbastic::Page
   
   # Make this page dirty, it'll force Webby to re-generate page
   def is_dirty
-    self.add_header(:dirty, true) unless is_dirty?
+    self.headers.first_or_create(:name =&gt; :dirty)
   end
   
   # Remove dirty header for this page
   def not_dirty
-    self.headers.first(:name =&gt; :dirty).destroy if is_dirty?
+    self.headers.first(:name =&gt; :dirty).destroy
   end
   
   # Verify if page is dirty
-  def is_dirty?
-    return !self.header_content(:dirty).nil?
+  def dirty?
+    return !self.headers.first(:name =&gt; :dirty).nil?
   end
   
   # =====
@@ -137,9 +148,8 @@ class Webbastic::Page
     if header = self.headers.first(:name =&gt; name)
       header.update_attributes(:content =&gt; content)
     else
-      Webbastic::Header.create :name =&gt; name,
-                               :content =&gt; content,
-                               :page_id =&gt; self.id
+      self.headers.create :name =&gt; name,
+                          :content =&gt; content
     end
   end
   </diff>
      <filename>app/models/page.rb</filename>
    </modified>
    <modified>
      <diff>@@ -76,9 +76,9 @@ class Webbastic::Site
       # and read its content to put it in a static widget
       else
         if parent_folder
-          @page = parent_folder.pages.create :name =&gt; path
+          @page = parent_folder.pages.create :name =&gt; path, :layout =&gt; self.default_layout
         else
-          @page = self.pages.create :name =&gt; path
+          @page = self.pages.create :name =&gt; path, :layout =&gt; self.default_layout
         end
         
       end</diff>
      <filename>app/models/site.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,9 +23,36 @@ describe Webbastic::Layout do
     @layout = @site.layouts.create :name =&gt; &quot;new_layout&quot;
     @page1.layout = @layout
     
+    @page1.current_layout.id.should_not == @site.default_layout.id
     @page1.current_layout.id.should_not == @page2.current_layout.id
     
     @site.destroy
   end
 
+  it &quot;should be dirty&quot; do
+    @site = Webbastic::Site.create :name =&gt; &quot;test&quot;
+    @page = @site.pages.create :name =&gt; &quot;home&quot;
+    @layout = @site.default_layout
+    
+    @page.dirty?.should == true
+    @layout.dirty?.should == true
+    
+    @site.generate
+    
+    @page.dirty?.should == false
+    @layout.dirty?.should == false
+    
+    @layout.update_attributes :content =&gt; &quot;123&quot;
+    
+    @page.dirty?.should == true
+    @layout.dirty?.should == true
+    
+    @layout.not_dirty
+    
+    @page.dirty?.should == true
+    @layout.dirty?.should == false
+    
+    @site.destroy
+  end
+
 end
\ No newline at end of file</diff>
      <filename>spec/models/layout_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,7 +53,7 @@ describe Webbastic::Page do
     @page = Webbastic::Page.create :name =&gt; &quot;test&quot;
     @page.add_static_content &quot;pop&quot;
     
-    @page.is_dirty?.should == true
+    @page.dirty?.should == true
   end
   
 end
\ No newline at end of file</diff>
      <filename>spec/models/page_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7dce7b35355e012e9092ba63b8b24d1fd5567d3b</id>
    </parent>
  </parents>
  <author>
    <name>Alexandre Girard</name>
    <email>alx.girard@gmail.com</email>
  </author>
  <url>http://github.com/alx/webbastic/commit/77f2fbe59627b92f009ab298cf6182f35c284372</url>
  <id>77f2fbe59627b92f009ab298cf6182f35c284372</id>
  <committed-date>2009-03-31T03:21:27-07:00</committed-date>
  <authored-date>2009-03-31T03:21:27-07:00</authored-date>
  <message>review is_dirty and desactivate it until improvement</message>
  <tree>9e6bf3d277fbeee2da84d288a28a55e9419e99d2</tree>
  <committer>
    <name>Alexandre Girard</name>
    <email>alx.girard@gmail.com</email>
  </committer>
</commit>
