Sha256: b2f06dad38ef36c838ee85194fdadf4a8f92aa24c6d996530536dc1b9226446b

Contents?: true

Size: 637 Bytes

Versions: 1

Compression:

Stored size: 637 Bytes

Contents

class BBCoder
  attr_reader :raw

  def self.configure(&block)
    configuration.instance_eval(&block)
  end

  def self.configuration
    @configuration ||= BBCoder::Configuration.new
  end

  def initialize(text)
    @raw = text.split(/(\[[^\]]+\])/i).select {|string| string.size > 0}
  end

  def to_html
    @html ||= parse
  end

  def parse
    raw.each do |data|
      case data
      when /\[\/([^\]]+)\]/
        buffer.tags.pop($1)
      when /\[([^\]]+)\]/
        buffer.tags.push($1)
      else
        buffer.push(data)
      end
    end

    buffer.join
  end

  def buffer
    @buffer ||= BBCoder::Buffer.new
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bbcoder-0.1.5 lib/bbcoder/base.rb