Class: Dimples::Post
- Inherits:
-
Object
- Object
- Dimples::Post
- Includes:
- Frontable, Publishable
- Defined in:
- lib/dimples/post.rb
Instance Attribute Summary collapse
- #contents ⇒ Object
-
#date ⇒ Object
Returns the value of attribute date.
-
#day ⇒ Object
Returns the value of attribute day.
-
#extension ⇒ Object
Returns the value of attribute extension.
-
#filename ⇒ Object
Returns the value of attribute filename.
-
#layout ⇒ Object
Returns the value of attribute layout.
-
#month ⇒ Object
Returns the value of attribute month.
-
#next_post ⇒ Object
Returns the value of attribute next_post.
-
#path ⇒ Object
Returns the value of attribute path.
-
#previous_post ⇒ Object
Returns the value of attribute previous_post.
-
#rendered_contents ⇒ Object
Returns the value of attribute rendered_contents.
-
#slug ⇒ Object
Returns the value of attribute slug.
-
#template ⇒ Object
Returns the value of attribute template.
-
#title ⇒ Object
Returns the value of attribute title.
-
#year ⇒ Object
Returns the value of attribute year.
Instance Method Summary collapse
- #categories ⇒ Object
- #categories=(slugs) ⇒ Object
-
#initialize(site, path) ⇒ Post
constructor
A new instance of Post.
- #output_file_path(parent_path) ⇒ Object
Methods included from Publishable
Methods included from Frontable
Constructor Details
#initialize(site, path) ⇒ Post
Returns a new instance of Post.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/dimples/post.rb', line 23 def initialize(site, path) @site = site @path = path @filename = 'index' @extension = @site.config['file_extensions']['posts'] parts = File.basename(path, File.extname(path)).match(/(\d{4})-(\d{2})-(\d{2})-(.+)/) @slug = parts[4] @date = Time.mktime(parts[1], parts[2], parts[3]) @layout = @site.config['layouts']['post'] @categories = {} @year = @date.strftime('%Y') @month = @date.strftime('%m') @day = @date.strftime('%d') @contents = read_with_yaml(path) end |
Instance Attribute Details
#contents ⇒ Object
45 46 47 |
# File 'lib/dimples/post.rb', line 45 def contents @contents end |
#date ⇒ Object
Returns the value of attribute date.
13 14 15 |
# File 'lib/dimples/post.rb', line 13 def date @date end |
#day ⇒ Object
Returns the value of attribute day.
16 17 18 |
# File 'lib/dimples/post.rb', line 16 def day @day end |
#extension ⇒ Object
Returns the value of attribute extension.
10 11 12 |
# File 'lib/dimples/post.rb', line 10 def extension @extension end |
#filename ⇒ Object
Returns the value of attribute filename.
9 10 11 |
# File 'lib/dimples/post.rb', line 9 def filename @filename end |
#layout ⇒ Object
Returns the value of attribute layout.
11 12 13 |
# File 'lib/dimples/post.rb', line 11 def layout @layout end |
#month ⇒ Object
Returns the value of attribute month.
15 16 17 |
# File 'lib/dimples/post.rb', line 15 def month @month end |
#next_post ⇒ Object
Returns the value of attribute next_post.
19 20 21 |
# File 'lib/dimples/post.rb', line 19 def next_post @next_post end |
#path ⇒ Object
Returns the value of attribute path.
6 7 8 |
# File 'lib/dimples/post.rb', line 6 def path @path end |
#previous_post ⇒ Object
Returns the value of attribute previous_post.
18 19 20 |
# File 'lib/dimples/post.rb', line 18 def previous_post @previous_post end |
#rendered_contents ⇒ Object
Returns the value of attribute rendered_contents.
17 18 19 |
# File 'lib/dimples/post.rb', line 17 def rendered_contents @rendered_contents end |
#slug ⇒ Object
Returns the value of attribute slug.
12 13 14 |
# File 'lib/dimples/post.rb', line 12 def slug @slug end |
#template ⇒ Object
Returns the value of attribute template.
8 9 10 |
# File 'lib/dimples/post.rb', line 8 def template @template end |
#title ⇒ Object
Returns the value of attribute title.
7 8 9 |
# File 'lib/dimples/post.rb', line 7 def title @title end |
#year ⇒ Object
Returns the value of attribute year.
14 15 16 |
# File 'lib/dimples/post.rb', line 14 def year @year end |
Instance Method Details
#categories ⇒ Object
58 59 60 |
# File 'lib/dimples/post.rb', line 58 def categories @categories end |
#categories=(slugs) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/dimples/post.rb', line 49 def categories=(slugs) @categories = {} slugs.each do |slug| @site.categories[slug].posts << self @categories[slug] = @site.categories[slug] end end |
#output_file_path(parent_path) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/dimples/post.rb', line 62 def output_file_path(parent_path) parts = [parent_path] if @site.config['paths']['post'] path = @date.strftime(@site.config['paths']['post']) parts.concat(path.split('/')) if path end parts << @slug parts << "#{@filename}.#{@extension}" File.join(parts) end |