Sha256: 3bfc735bf984a599beaf774ff2b992cc3adf29ebc735083c933446933ddcd782

Contents?: true

Size: 835 Bytes

Versions: 4

Compression:

Stored size: 835 Bytes

Contents

require 'fileutils'

module Everything
  class Piece
    class Content
      def initialize(piece_path)
        @piece_path = piece_path
      end

      def file_name
        'index.md'
      end

      def file_path
        @file_path ||= File.join(piece_path, file_name)
      end

      def title
        partitioned_text.first.sub('# ', '')
      end

      def body
        partitioned_text.last
      end

      def raw_markdown
        @raw_markdown ||= File.read(file_path)
      end

      def raw_markdown=(value)
        @raw_markdown = value
      end

      def save
        FileUtils.mkdir_p(piece_path)

        File.write(file_path, @raw_markdown)
      end

    private
      attr_reader :piece_path

      def partitioned_text
        @partitioned_text ||= raw_markdown.partition("\n\n")
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
everything-core-0.0.12 lib/everything/piece/content.rb
everything-core-0.0.11 lib/everything/piece/content.rb
everything-core-0.0.10 lib/everything/piece/content.rb
everything-core-0.0.9 lib/everything/piece/content.rb