<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/behaviours/search_indexing.rb</filename>
    </added>
    <added>
      <filename>lib/behaviours/site_mapping.rb</filename>
    </added>
    <added>
      <filename>lib/behaviours/versioning.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -7,7 +7,7 @@
 &lt;%= javascript_include_tag \
   :defaults,
   'application',
-  :cache =&gt; 'default_scripts' %&gt;
+  :cache =&gt; 'minimal_cached' %&gt;
 &lt;/head&gt;
 
 &lt;body class=&quot;popup&quot;&gt;</diff>
      <filename>app/views/textile_editors/link_selector.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -183,6 +183,28 @@ module Content
       end
     end
     
+    # Handles dynamic site behaviour. 
+    # 
+    # behaviours can add features to content items dynamically in the same way 
+    # that many file systems are extendable. e.g. in NTFS, reparse points, etc
+    #
+    # Basically if a given behaviour exists, the code will run, otherwise it 
+    # will be ignored. This system is used as 
+    def behaviour_for(system, &amp;code)
+      behaviour = Module.for system rescue nil
+      return unless behaviour
+      include behaviour unless included_modules.include? behaviour
+      return unless code
+      actions = behaviour::Actions.new self # rescue nil?
+      code[actions]
+    end
+    
+    # Does the class have a given behaviour
+    def has_behaviour?(system)
+      behaviour = Module.for system rescue nil
+      included_modules.include? behaviour
+    end
+    
     # Define a contentn management controller for this cotnent. Tries to guess from class name
     def controller
       @controler_class ||= &quot;::#{name.pluralize}Controller&quot;.constantize rescue nil
@@ -295,7 +317,7 @@ module Content
     # These are for ease of access
     delegate              :label, :label=, :root?, :path, :to =&gt; :site_mapping
     # These methods default to the class level version, but can be over-riden in sub classes
-    delegate              :controller, :access_actions, :identity, :to =&gt; :_class
+    delegate              :has_behaviour?, :controller, :access_actions, :identity, :to =&gt; :_class
     # Protect from random moving
     attr_protected        :parent_id
   end</diff>
      <filename>lib/content.rb</filename>
    </modified>
    <modified>
      <diff>@@ -44,6 +44,8 @@ class PublishingQueue &lt; Array
         SiteMap.find element
       when SiteMap, DeletedContent
         element
+      when String
+        SiteMap[element]
       else 
         raise RuntimeError, &quot;Bad element: #{element.respond_to? :site_mapping}, #{element.inspect}&quot;
     end</diff>
      <filename>lib/publishing_queue.rb</filename>
    </modified>
    <modified>
      <diff>@@ -259,11 +259,15 @@ class PublishingSession
     # 
     # Copy all files in ./publisher/static_resource_files to the storage target on startup
     module CopyBaseFiles
+      def static_files_path
+        File.join content_folder, 'publisher', 'static_resource_files'
+      end
+      
       def self.included(klass)
         klass.instance_eval do
           upon_startup do
             log.info 'Copying Static Resources Files'
-            storage.copy File.join(content_folder, 'publisher', 'static_resource_files') , '.'
+            storage.copy static_files_path, '.'
           end
         end
       end
@@ -462,5 +466,3 @@ class &lt;&lt; PublishingSession
     action_list &lt;&lt; method_list
   end
 end
-
-</diff>
      <filename>lib/publishing_session.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>eb524b7086674dc074e8a3dea8bb1db9401c9103</id>
    </parent>
  </parents>
  <author>
    <name>Jase</name>
    <email>jason@hybd.net</email>
  </author>
  <url>http://github.com/virtualfunction/typeface/commit/4feef52e76159c5859ebeb933697de604ac802e3</url>
  <id>4feef52e76159c5859ebeb933697de604ac802e3</id>
  <committed-date>2008-08-10T17:07:28-07:00</committed-date>
  <authored-date>2008-08-10T17:07:28-07:00</authored-date>
  <message>Commit before refactor of publishing system</message>
  <tree>8bef026c27c8fdef04bd049dddb7370b912c62c7</tree>
  <committer>
    <name>Jase</name>
    <email>jason@hybd.net</email>
  </committer>
</commit>
