Class: Nanoc::Layout
- Inherits:
-
Object
- Object
- Nanoc::Layout
- Extended by:
- Memoization
- Defined in:
- lib/nanoc/base/source_data/layout.rb
Overview
Represents a layout in a nanoc site. It has content, attributes, an identifier and a modification time (to speed up compilation).
Instance Attribute Summary (collapse)
-
- (Hash) attributes
readonly
This layout’s attributes.
-
- (String) identifier
This layout’s identifier, starting and ending with a slash.
-
- (String) raw_content
readonly
The raw content of this layout.
Instance Method Summary (collapse)
-
- (Object) ==(other)
-
- (Object) [](key)
Requests the attribute with the given key.
-
- (String) checksum
The checksum for this object.
-
- (Boolean) eql?(other)
-
- (void) freeze
Prevents all further modifications to the layout.
-
- (Object) hash
-
- (Layout) initialize(raw_content, attributes, identifier, params = nil)
constructor
Creates a new layout.
-
- (Object) inspect
-
- (Object) marshal_dump
-
- (Object) marshal_load(source)
-
- (Object) mtime
deprecated
Deprecated.
Access the modification time using
layout[:mtime]
instead. -
- (Object) reference
private
Returns an object that can be used for uniquely identifying objects.
-
- (Symbol) type
private
Returns the type of this object.
Methods included from Memoization
Constructor Details
- (Layout) initialize(raw_content, attributes, identifier, params = nil)
Creates a new layout.
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/nanoc/base/source_data/layout.rb', line 34 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 |
Instance Attribute Details
- (Hash) attributes (readonly)
Returns This layout’s attributes
13 14 15 |
# File 'lib/nanoc/base/source_data/layout.rb', line 13 def attributes @attributes end |
- (String) identifier
Returns This layout’s identifier, starting and ending with a slash
17 18 19 |
# File 'lib/nanoc/base/source_data/layout.rb', line 17 def identifier @identifier end |
- (String) raw_content (readonly)
Returns The raw content of this layout
10 11 12 |
# File 'lib/nanoc/base/source_data/layout.rb', line 10 def raw_content @raw_content end |
Instance Method Details
- (Object) ==(other)
101 102 103 |
# File 'lib/nanoc/base/source_data/layout.rb', line 101 def ==(other) self.eql?(other) end |
- (Object) [](key)
Requests the attribute with the given key.
50 51 52 |
# File 'lib/nanoc/base/source_data/layout.rb', line 50 def [](key) @attributes[key] end |
- (String) checksum
Returns The checksum for this object. If its contents change, the checksum will change as well.
88 89 90 |
# File 'lib/nanoc/base/source_data/layout.rb', line 88 def checksum Nanoc::Checksummer.calc(self) end |
- (Boolean) eql?(other)
97 98 99 |
# File 'lib/nanoc/base/source_data/layout.rb', line 97 def eql?(other) self.class == other.class && identifier == other.identifier end |
- (void) freeze
This method returns an undefined value.
Prevents all further modifications to the layout.
67 68 69 70 71 |
# File 'lib/nanoc/base/source_data/layout.rb', line 67 def freeze attributes.freeze_recursively identifier.freeze raw_content.freeze end |
- (Object) hash
93 94 95 |
# File 'lib/nanoc/base/source_data/layout.rb', line 93 def hash self.class.hash ^ identifier.hash end |
- (Object) inspect
82 83 84 |
# File 'lib/nanoc/base/source_data/layout.rb', line 82 def inspect "<#{self.class} identifier=\"#{identifier}\">" end |
- (Object) marshal_dump
105 106 107 108 109 110 111 |
# File 'lib/nanoc/base/source_data/layout.rb', line 105 def marshal_dump [ @raw_content, @attributes, @identifier ] end |
- (Object) marshal_load(source)
113 114 115 116 117 |
# File 'lib/nanoc/base/source_data/layout.rb', line 113 def marshal_load(source) @raw_content, @attributes, @identifier = *source end |
- (Object) mtime
Access the modification time using layout[:mtime]
instead.
120 121 122 |
# File 'lib/nanoc/base/source_data/layout.rb', line 120 def mtime self[:mtime] end |
- (Object) reference
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns an object that can be used for uniquely identifying objects.
78 79 80 |
# File 'lib/nanoc/base/source_data/layout.rb', line 78 def reference [type, identifier] end |
- (Symbol) type
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the type of this object. Will always return :layout
, because
this is a layout. For items, this method returns :item
.
60 61 62 |
# File 'lib/nanoc/base/source_data/layout.rb', line 60 def type :layout end |