class Nanoc::Core::BasicItemView

Public Instance Methods

binary?() click to toggle source

@return [Boolean] True if the item is binary, false otherwise

# File lib/nanoc/core/basic_item_view.rb, line 43
def binary?
  _unwrap.content.binary?
end
children() click to toggle source

Returns the children of this item. For items with identifiers that have extensions, returns an empty collection.

@return [Enumerable<Nanoc::Core::CompilationItemView>]

# File lib/nanoc/core/basic_item_view.rb, line 12
def children
  unless _unwrap.identifier.legacy?
    raise Nanoc::Core::Errors::CannotGetParentOrChildrenOfNonLegacyItem.new(_unwrap.identifier)
  end

  children_pattern = Nanoc::Core::Pattern.from(_unwrap.identifier.to_s + '*/')
  children = @context.items.select { |i| children_pattern.match?(i.identifier) }

  children.map { |i| self.class.new(i, @context) }.freeze
end
parent() click to toggle source

Returns the parent of this item, if one exists. For items with identifiers that have extensions, returns nil.

@return [Nanoc::Core::CompilationItemView] if the item has a parent

@return [nil] if the item has no parent

# File lib/nanoc/core/basic_item_view.rb, line 29
def parent
  unless _unwrap.identifier.legacy?
    raise Nanoc::Core::Errors::CannotGetParentOrChildrenOfNonLegacyItem.new(_unwrap.identifier)
  end

  parent_identifier = '/' + _unwrap.identifier.components[0..-2].join('/') + '/'
  parent_identifier = '/' if parent_identifier == '//'

  parent = @context.items[parent_identifier]

  parent && self.class.new(parent, @context)
end
raw_filename() click to toggle source

@return [String, nil] The path to the file containing the uncompiled content of this item.

# File lib/nanoc/core/basic_item_view.rb, line 48
def raw_filename
  @context.dependency_tracker.bounce(_unwrap, raw_content: true)
  _unwrap.content.filename
end