Sha256: 140c148c53919cd0f19fa358bbded5367159cd3231357e83bbcb34c232b40e78

Contents?: true

Size: 1.93 KB

Versions: 3

Compression:

Stored size: 1.93 KB

Contents

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

        stylesheet = ::File.open("#{@target}/layout/style.css", "r")
        @css = stylesheet.read
        documents << { path:"/style.css", html: @css }

        layout_file = ::File.open("#{@target}/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

        contentarray = content.split(",")

        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

3 entries across 3 versions & 1 rubygems

Version Path
rack-blogengine-0.0.6 lib/rack/blogengine/doc_parser.rb
rack-blogengine-0.0.5 lib/rack/blogengine/doc_parser.rb
rack-blogengine-0.0.4 lib/rack/blogengine/doc_parser.rb