Class: Dimples::Page

Inherits:
Object
  • Object
show all
Includes:
Frontable, Renderable, Writeable
Defined in:
lib/dimples/page.rb

Overview

A class that models a single site page.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Renderable

#build_scope, #render, #renderer

Methods included from Writeable

#write

Methods included from Frontable

#apply_metadata, #read_with_front_matter

Constructor Details

#initialize(site, path = nil) ⇒ Page

Returns a new instance of Page.



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/dimples/page.rb', line 19

def initialize(site, path = nil)
  @site = site
  @extension = 'html'
  @path = path

  if @path
    @filename = File.basename(@path, File.extname(@path))
    @contents = read_with_front_matter(@path)
  else
    @filename = 'index'
    @contents = ''
  end
end

Instance Attribute Details

#contentsObject

Returns the value of attribute contents.



16
17
18
# File 'lib/dimples/page.rb', line 16

def contents
  @contents
end

#extensionObject

Returns the value of attribute extension.



14
15
16
# File 'lib/dimples/page.rb', line 14

def extension
  @extension
end

#filenameObject

Returns the value of attribute filename.



13
14
15
# File 'lib/dimples/page.rb', line 13

def filename
  @filename
end

#layoutObject

Returns the value of attribute layout.



15
16
17
# File 'lib/dimples/page.rb', line 15

def layout
  @layout
end

#pathObject

Returns the value of attribute path.



10
11
12
# File 'lib/dimples/page.rb', line 10

def path
  @path
end

#rendered_contentsObject

Returns the value of attribute rendered_contents.



17
18
19
# File 'lib/dimples/page.rb', line 17

def rendered_contents
  @rendered_contents
end

#templateObject

Returns the value of attribute template.



12
13
14
# File 'lib/dimples/page.rb', line 12

def template
  @template
end

#titleObject

Returns the value of attribute title.



11
12
13
# File 'lib/dimples/page.rb', line 11

def title
  @title
end

Instance Method Details

#output_path(parent_path) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/dimples/page.rb', line 33

def output_path(parent_path)
  parts = [parent_path]

  unless @path.nil?
    parts << File.dirname(@path).gsub(@site.source_paths[:pages], '')
  end

  parts << "#{@filename}.#{@extension}"

  File.join(parts)
end