class Webby::Resources::Partial

A Partial is a file in the content folder whose filename starts with an underscore “_” character. Partials contain text that can be included into other pages. Partials are not standalone pages, and they will never correspond directly to an output file.

Partials can contain YAML meta-data at the top of the file. This information is only used to determine the filters to apply to the partial. If there is no meta-data, then the partial text is used “as is” without any processing by the Webby rendering engine.

Public Class Methods

new( path ) click to toggle source

Creates a new Partial object given the full path to the partial file. Partial filenames start with an underscore (this is an enforced convention).

Calls superclass method
# File lib/webby/resources/partial.rb, line 24
def initialize( fn )
  super

  @_meta_data = MetaFile.meta_data(@path)
  @_meta_data ||= {}
  @_meta_data.sanitize!
end

Public Instance Methods

destination → string click to toggle source

The output file destination for the partial. This is the “.cairn” file in the output folder. It is used to determine if the partial is newer than the build products.

# File lib/webby/resources/partial.rb, line 61
def destination
  ::Webby.cairn
end
dirty? → true or false click to toggle source

Returns true if this resource is newer than its corresponding output product. The resource needs to be rendered (if a page or layout) or copied (if a static file) to the output directory.

# File lib/webby/resources/partial.rb, line 39
def dirty?
  return _meta_data['dirty'] if _meta_data.has_key? 'dirty'

  # if the destination file does not exist, then we are dirty
  return true unless test(?e, destination)

  # if this file's mtime is larger than the destination file's
  # mtime, then we are dirty
  dirty = @mtime > ::File.mtime(destination)
  return dirty if dirty

  # if we got here, then we are not dirty
  false
end
url → nil click to toggle source

Partials do not have a URL. This method will alwasy return nil.

# File lib/webby/resources/partial.rb, line 72
def url
  nil
end