class Octopress::Docs::Doc

Attributes

base_url[R]
description[R]
filename[R]
gem[R]
name[R]
slug[R]
source_url[R]
type[R]
version[R]

Public Class Methods

new(options={}) click to toggle source
# File lib/octopress/docs/doc.rb, line 6
def initialize(options={})
  @file            = options[:file]
  @path            = options[:path] ||= '.'
  @file_dir        = File.dirname(@file)
  @name            = options[:name]
  @slug            = options[:slug]
  @type            = options[:type]
  @base_url        = options[:base_url]
  @source_url      = options[:source_url]
  @description     = options[:description]
  @data            = options[:data] || {}
  @gem             = options[:gem]
  @version         = options[:version]
end

Public Instance Methods

add() click to toggle source

Add doc page to Jekyll pages

# File lib/octopress/docs/doc.rb, line 23
def add
  Octopress.site.pages << page
end
disabled?() click to toggle source
# File lib/octopress/docs/doc.rb, line 27
def disabled?
  false
end
file() click to toggle source
# File lib/octopress/docs/doc.rb, line 31
def file
  File.basename(@file)
end
info() click to toggle source
# File lib/octopress/docs/doc.rb, line 35
def info
  "  - #{permalink.ljust(35)}"
end
page() click to toggle source
# File lib/octopress/docs/doc.rb, line 39
def page
  @page ||= begin
    p = Octopress::Docs::Page.new(Octopress.site, @path, page_dir, file, {'path'=>@base_url})
    p.data['layout'] = 'docs'
    p.data['escape_code'] = true

    p.data['plugin'] = { 
      'name'        => @name, 
      'slug'        => @slug,
      'type'        => @type,
      'source_url'  => @source_url,
      'description' => @description,
      'url'         => @base_url,
      'version'     => @version,
      'gem'         => @gem,
    }

    p.data['dir'] = doc_dir
    p.data = @data.merge(p.data)
    p.data.merge!(comment_yaml(p.content))
    p
  end
end

Private Instance Methods

comment_yaml(content) click to toggle source
# File lib/octopress/docs/doc.rb, line 85
def comment_yaml(content)
  if content =~ /<!-{3}\s+(.+)?-{3}>/m
    SafeYAML.load($1)
  else
    {}
  end
end
doc_dir() click to toggle source
# File lib/octopress/docs/doc.rb, line 81
def doc_dir
  File.join(@path, page_dir, File.dirname(@file))
end
page_dir() click to toggle source
# File lib/octopress/docs/doc.rb, line 77
def page_dir
  @file_dir == '.' ? '' : @file_dir
end
plugin_slug() click to toggle source
# File lib/octopress/docs/doc.rb, line 73
def plugin_slug
  Jekyll::Utils.slugify(@type == 'theme' ? 'theme' : @slug)
end
read() click to toggle source
# File lib/octopress/docs/doc.rb, line 69
def read
  File.open(File.join(@path, @file)).read
end