Sha256: 800fa14fc767777a53583c8f1f331b922973b04cbfb6ae429628050d962094f8

Contents?: true

Size: 815 Bytes

Versions: 2

Compression:

Stored size: 815 Bytes

Contents

module Flannel
  class BlockCutter
    def cut markup
      parser = BlockParser.new
      blocks = parser.parse(markup).content.map { |block| form_blocks block }
    end
    
    def form_blocks block
      Flannel::BaseBlock.new(block)
    end
    
    def split_into_blocks markup
      if is_preformatted markup
        markup
      else
        markup.split(/\n\s*?\n/).map { |s| s.strip }
      end
    end
    
    def split_preformatted_blocks markup
      markup.split(/^(_(?=\n\n)|(?=_))/).map { |s| s.strip }.reject { |s| is_invalid_block s}
    end
    
    def convert_to_text_blocks pieces
      pieces.map{ |piece| Flannel::TextBlock.new piece }
    end
    
    def is_invalid_block s
      s == "" || s == "_" 
    end
    
    def is_preformatted markup
      markup[0] == '_'[0]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flannel-0.2.13 lib/flannel/block_cutter.rb
flannel-0.2.12 lib/flannel/block_cutter.rb