Class Nanoc::Item
In: lib/nanoc/base/source_data/item.rb
Parent: Object

Represents a compileable item in a site. It has content and attributes, as well as an identifier (which starts and ends with a slash). It can also store the modification time to speed up compilation.

Methods

==   []   []=   binary?   checksum   compiled_content   eql?   forced_outdated=   forced_outdated?   freeze   hash   inspect   marshal_dump   marshal_load   mtime   new   path   reference   rep_named   type  

Attributes

attributes  [RW]  @return [Hash] This item‘s attributes
children  [RW]  @return [Array<Nanoc::Item>] The child items of this item
identifier  [RW]  A string that uniquely identifies an item in a site.

Identifiers start and end with a slash. They are comparable to paths on the filesystem, with the difference that file system paths usually do not have a trailing slash. The item hierarchy (parent and children of items) is determined by the item identifier.

The root page (the home page) has the identifier “/”, which means that it is the ancestor of all other items.

@return [String] This item‘s identifier

parent  [RW]  @return [Nanoc::Item, nil] The parent item of this item. This can be
  nil even for non-root items.
raw_content  [R]  @return [String] This item‘s raw, uncompiled content of this item (only
  available for textual items)
raw_filename  [R]  @return [String] The filename pointing to the file containing this
  item’s content (only available for binary items)
reps  [R]  @return [Array<Nanoc::ItemRep>] This item’s list of item reps
site  [RW]  @return [Nanoc::Site] The site this item belongs to

Public Class methods

Creates a new item with the given content or filename, attributes and identifier.

@param [String] raw_content_or_raw_filename The uncompiled item content

  (if it is a textual item) or the path to the filename containing the
  content (if it is a binary item).

@param [Hash] attributes A hash containing this item‘s attributes.

@param [String] identifier This item‘s identifier.

@param [Time, Hash] params Extra parameters. For backwards

  compatibility, this can be a Time instance indicating the time when
  this item was last modified (mtime).

@option params [Time, nil] :mtime (nil) The time when this item was last

  modified. Deprecated; pass the modification time as the `:mtime`
  attribute instead.

@option params [Symbol, nil] :binary (true) Whether or not this item is

  binary

Public Instance methods

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

Sets the attribute with the given key to the given value.

@param [Symbol] key The name of the attribute to set

@param [Object] value The value of the attribute to set

@return [Boolean] True if the item is binary; false if it is not

@return [String] The checksum for this object. If its contents change,

  the checksum will change as well.

Returns the compiled content from a given representation and a given snapshot. This is a convenience method that makes fetching compiled content easier.

@option params [String] :rep (:default) The name of the representation

  from which the compiled content should be fetched. By default, the
  compiled content will be fetched from the default representation.

@option params [String] :snapshot The name of the snapshot from which to

  fetch the compiled content. By default, the returned compiled content
  will be the content compiled right before the first layout call (if
  any).

@return [String] The compiled content of the given rep (or the default

  rep if no rep is specified) at the given snapshot (or the default
  snapshot if no snapshot is specified)

@see ItemRep#compiled_content

Prevents all further modifications to its attributes.

@return [void]

@deprecated Access the modification time using `item[:mtime]` instead.

Returns the path from a given representation. This is a convenience method that makes fetching the path of a rep easier.

@option params [String] :rep (:default) The name of the representation

  from which the path should be fetched. By default, the path will be
  fetched from the default representation.

@return [String] The path of the given rep ( or the default rep if no

  rep is specified)

Returns an object that can be used for uniquely identifying objects.

@api private

@return [Object] An unique reference to this object

Returns the rep with the given name.

@param [Symbol] rep_name The name of the representation to return

@return [Nanoc::ItemRep] The representation with the given name

Returns the type of this object. Will always return `:item`, because this is an item. For layouts, this method returns `:layout`.

@api private

@return [Symbol] :item

[Validate]