Sha256: 093d0a31634e1fb6d6ecdc937956cf28965c75b90dbb6e3a6031c861f64ee5bd

Contents?: true

Size: 719 Bytes

Versions: 4

Compression:

Stored size: 719 Bytes

Contents

require 'devcenter-parser'
require 'yaml'

module Devcenter

  class ArticleFile

    attr_reader :metadata, :html, :content, :parsing_error, :toc

    def initialize(opts = {})
      @metadata = opts[:metadata] || OpenStruct.new
      @content = opts[:content] || ''
      begin
        @html = ::DevcenterParser.to_html(@content)
      rescue Exception => e
        @parsing_error = e.to_s
        @html = ''
      end
      @toc = Nokogiri::HTML(@html).search('h2')
    end

    def self.read(src_path)
      src = IO.read(src_path)
      metadata_yaml, content = src.split(/\r*\n\r*\n/, 2)
      metadata = OpenStruct.new YAML.load(metadata_yaml)
      new(metadata: metadata, content: content)
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
devcenter-1.3.0 lib/devcenter/article_file.rb
devcenter-1.2.0 lib/devcenter/article_file.rb
devcenter-1.1.9 lib/devcenter/article_file.rb
devcenter-1.1.8 lib/devcenter/article_file.rb