Class: Nanoc::Core::BasicItemView
- Includes:
- DocumentViewMixin
- Defined in:
- lib/nanoc/core/basic_item_view.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#binary? ⇒ Boolean
True if the item is binary, false otherwise.
-
#children ⇒ Enumerable<Nanoc::Core::CompilationItemView>
Returns the children of this item.
-
#parent ⇒ Nanoc::Core::CompilationItemView?
Returns the parent of this item, if one exists.
-
#raw_filename ⇒ String?
The path to the file containing the uncompiled content of this item.
Methods included from DocumentViewMixin
#==, #[], #_unwrap, #attributes, #eql?, #fetch, #hash, #identifier, #initialize, #inspect, #key?, #raw_content, #reference
Methods inherited from View
#_context, #_unwrap, #frozen?, #initialize, #inspect
Methods included from ContractsSupport
enabled?, included, setup_once, warn_about_performance
Instance Method Details
#binary? ⇒ Boolean
Returns True if the item is binary, false otherwise.
43 44 45 |
# File 'lib/nanoc/core/basic_item_view.rb', line 43 def binary? _unwrap.content.binary? end |
#children ⇒ Enumerable<Nanoc::Core::CompilationItemView>
Returns the children of this item. For items with identifiers that have extensions, returns an empty collection.
12 13 14 15 16 17 18 19 20 21 |
# 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 ⇒ Nanoc::Core::CompilationItemView?
Returns the parent of this item, if one exists. For items with identifiers that have extensions, returns nil.
29 30 31 32 33 34 35 36 37 38 39 40 |
# 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.object_with_identifier(parent_identifier) parent && self.class.new(parent, @context) end |
#raw_filename ⇒ String?
Returns The path to the file containing the uncompiled content of this item.
48 49 50 51 |
# 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 |