Sha256: 702c817cf0e5091ed299cae01c6da129f5856307e1b855136e95296c818f9400

Contents?: true

Size: 981 Bytes

Versions: 1

Compression:

Stored size: 981 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?
      visibility == 'draft'
    end
    
    def hidden?
      visibility == 'hidden'
    end
    
    def visible?
      visibility == 'visible'
    end
    alias_method :published?, :visible?

    def to_file
      frontmatter + "---\n\n".freeze + body.to_s
    end
  
    protected
  
    def frontmatter
      attrs = metadata || {}
      attrs['title'] = title
      attrs['date'] = Time.parse(published_at).utc unless published_at.nil?
      attrs['published'] = false if hidden?
      attrs['permalink'] = permalink unless permalink.nil?
  
      attrs.empty? ? "---\n".freeze : attrs.to_yaml
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
siteleaf-2.0.0.pre.beta7 lib/siteleaf/content.rb