Sha256: 12434d6fe9280e048d5cdbec641f975e7a51f4874ed4668ae356d1ec5f004ded

Contents?: true

Size: 869 Bytes

Versions: 4

Compression:

Stored size: 869 Bytes

Contents

module Siteleaf
  class Content < Entity

    attr_accessor :title, :body, :path, :permalink, :visibility, :published_at, :user_id, :site_id, :metadata
    attr_reader :id, :filename, :basename, :directory, :url, :filesize, :sha, :published, :created_at, :updated_at
    
    def site
      Site.find(self.site_id) if self.site_id
    end
    
    def draft?
      !published?
    end
    
    def published?
      published != false
    end

    def to_file
      [frontmatter, "---\n\n".freeze, body].join('')
    end
  
    protected
  
    def frontmatter
      attrs = metadata || {}
      attrs['title'] = title
      attrs['date'] = Time.parse(published_at).utc.strftime('%F %T %z')
      attrs['published'] = false if draft?
      attrs['permalink'] = permalink unless permalink.nil?
  
      attrs.empty? ? "---\n".freeze : attrs.to_yaml
    end
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
siteleaf-2.0.0.pre.beta4 lib/siteleaf/content.rb
siteleaf-2.0.0.pre.beta3 lib/siteleaf/content.rb
siteleaf-2.0.0.pre.beta2 lib/siteleaf/content.rb
siteleaf-2.0.0.pre.beta1 lib/siteleaf/content.rb