Class: Drift::BlogPostBase

Inherits:
StaticModel show all
Defined in:
lib/drift/blog_post_base.rb

Direct Known Subclasses

BlogPost

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from StaticModel

all, all_files, find_by_file

Constructor Details

#initialize(args = {}) ⇒ BlogPostBase

Returns a new instance of BlogPostBase.



33
34
35
36
# File 'lib/drift/blog_post_base.rb', line 33

def initialize(args = {})
  super
  set_attributes_from_filename(args[:file]) unless args[:file].nil?
end

Class Attribute Details

.markup_extObject

Returns the value of attribute markup_ext.



4
5
6
# File 'lib/drift/blog_post_base.rb', line 4

def markup_ext
  @markup_ext
end

Instance Attribute Details

#authorObject

Returns the value of attribute author.



31
32
33
# File 'lib/drift/blog_post_base.rb', line 31

def author
  @author
end

#contentObject

Returns the value of attribute content.



31
32
33
# File 'lib/drift/blog_post_base.rb', line 31

def content
  @content
end

#created_atObject

Returns the value of attribute created_at.



31
32
33
# File 'lib/drift/blog_post_base.rb', line 31

def created_at
  @created_at
end

#slugObject

Returns the value of attribute slug.



31
32
33
# File 'lib/drift/blog_post_base.rb', line 31

def slug
  @slug
end

#titleObject

Returns the value of attribute title.



31
32
33
# File 'lib/drift/blog_post_base.rb', line 31

def title
  @title
end

#versionObject

Returns the value of attribute version.



31
32
33
# File 'lib/drift/blog_post_base.rb', line 31

def version
  @version
end

Class Method Details

.find_by_slug(slug) ⇒ Object



14
15
16
17
18
# File 'lib/drift/blog_post_base.rb', line 14

def find_by_slug(slug)
  file = all_files.detect{ |f| slug == parse_slug_from_filename(f) }

  find_by_file(file)
end

.parse_datetime_from_filename(filename) ⇒ Object



20
21
22
23
24
# File 'lib/drift/blog_post_base.rb', line 20

def parse_datetime_from_filename(filename)
  date = filename.split(/[_|\.]/)[0]
  time = filename.split(/[_|\.]/)[1]
  DateTime.parse "#{date} #{time[0..1]}:#{time[2..3]}:#{time[4..5]}"
end

.parse_slug_from_filename(filename) ⇒ Object



26
27
28
# File 'lib/drift/blog_post_base.rb', line 26

def parse_slug_from_filename(filename)
  filename.split(/[_|\.]/)[2]
end

.sourceObject



6
7
8
# File 'lib/drift/blog_post_base.rb', line 6

def source
  @source ||= 'db/static/blog_posts'
end