Sha256: 53f35f78a26f91e98a23819531ac410cd9bffd7353dc39e552e80c778e7ffef8

Contents?: true

Size: 1.91 KB

Versions: 2

Compression:

Stored size: 1.91 KB

Contents

module Rack
  module Blogengine
    class DocParser
      # Parse in .content Documents.
      # @param target.
      # @return [Hash] Documents 
      def self.parseInDocuments(target)
        @target = target
        documents = []

        layout_file = ::File.open("#{@target}/assets/layout/layout.html", "r")
        @layout = layout_file.read

        Dir.foreach("#{target}/") do |item|
          extension = item.split(".")[1]
          next if item == '.' or item == '..' or extension != "content"
  					
          getFileContents(item)
          @html = fillFileContents(@layout)
  					
          @document = {path: @path, html: @html}
          documents << @document
        end

        return documents
      end

      # Get File Contents (path, title, content)
      # @param file
      def self.getFileContents(file)
        # do work on real items
        content_file = ::File.open("#{@target}/#{file}");
        content = content_file.read

        content["/path"] = "/close"
        content["/title"] = "/close"
        content["/content"] = "/close"
  
        contentarray = content.split("[/close]")

        contentarray.each do |contentblock|
          if contentblock.include? "[path]:"
            contentblock["[path]:"] = ""
            @path = "/#{contentblock}"
          end

          if contentblock.include? "[title]:"
            contentblock["[title]:"] = ""
            @title = contentblock
          end

          if contentblock.include? "[content]:"
            contentblock["[content]:"] = ""
            @content = contentblock
          end
        end
      end

	    # Replace layout placeholder with content from .content file
	    # @param layout
	    # return [String] html placeholder replaced with content
      def self.fillFileContents(layout)
        html = layout.dup

        html.gsub! "{title}", @title
        html["{content}"] = @content

        return html
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-blogengine-0.1.1 lib/rack/blogengine/doc_parser.rb
rack-blogengine-0.1.0 lib/rack/blogengine/doc_parser.rb