Represents a layout in a nanoc site. It has content, attributes, an identifier and a modification time (to speed up compilation).
Creates a new layout.
@param [String] raw_content The raw content of this layout.
@param [Hash] attributes A hash containing this layout's attributes.
@param [String] identifier This layout's identifier.
@param [Time, Hash] params Extra parameters. For backwards
compatibility, this can be a Time instance indicating the time when this layout was last modified (mtime).
@option params [Time, nil] :mtime (nil) The time when this layout was
last modified. Deprecated; pass the modification time as the `:mtime` attribute instead.
# File lib/nanoc/base/source_data/layout.rb, line 35 def initialize(raw_content, attributes, identifier, params=nil) @raw_content = raw_content @attributes = attributes.symbolize_keys_recursively @identifier = identifier.cleaned_identifier.freeze # Set mtime params ||= {} params = { :mtime => params } if params.is_a?(Time) @attributes.merge(:mtime => params[:mtime]) if params[:mtime] end
# File lib/nanoc/base/source_data/layout.rb, line 104 def ==(other) self.eql?(other) end
Requests the attribute with the given key.
@param [Symbol] key The name of the attribute to fetch.
@return [Object] The value of the requested attribute.
# File lib/nanoc/base/source_data/layout.rb, line 51 def [](key) @attributes[key] end
@return [String] The checksum for this object. If its contents change,
the checksum will change as well.
# File lib/nanoc/base/source_data/layout.rb, line 89 def checksum attributes = @attributes.dup attributes.delete(:file) @raw_content.checksum + ',' + attributes.checksum end
# File lib/nanoc/base/source_data/layout.rb, line 100 def eql?(other) self.class == other.class && self.identifier == other.identifier end
Prevents all further modifications to the layout.
@return [void]
# File lib/nanoc/base/source_data/layout.rb, line 68 def freeze attributes.freeze_recursively identifier.freeze raw_content.freeze end
# File lib/nanoc/base/source_data/layout.rb, line 96 def hash self.class.hash ^ self.identifier.hash end
# File lib/nanoc/base/source_data/layout.rb, line 83 def inspect "<#{self.class} identifier=\"#{self.identifier}\">" end
# File lib/nanoc/base/source_data/layout.rb, line 108 def marshal_dump [ @raw_content, @attributes, @identifier ] end
# File lib/nanoc/base/source_data/layout.rb, line 116 def marshal_load(source) @raw_content, @attributes, @identifier = *source end
@deprecated Access the modification time using `layout` instead.
# File lib/nanoc/base/source_data/layout.rb, line 123 def mtime self[:mtime] end
Generated with the Darkfish Rdoc Generator 2.