Sha256: 332ec61d2ebcc5ab39bfb7236eebe42ff1c1b810d04c886650bf5fcd6703bb59

Contents?: true

Size: 847 Bytes

Versions: 1

Compression:

Stored size: 847 Bytes

Contents

class PrettyDiff::LineGenerator

  attr_reader :line

  def initialize(line)
    @line = line
  end

  def generate
    if line.modified?
      modified_html(content)
    elsif line.added?
      added_html(content)
    elsif line.deleted?
      deleted_html(content)
    else
      not_modified_html(content)
    end
  end

private

  def content
    @_content ||= line.format
  end

  def wrapper_html
    if line.diff.options[:wrap_lines]
      "<div> #{yield} </div>"
    else
      yield
    end
  end

  def modified_html(text)
    wrapper_html { %Q[<span class="gm">#{text}</span>] }
  end

  def added_html(text)
    wrapper_html { %Q[<span class="gi">#{text}</span>] }
  end

  def deleted_html(text)
    wrapper_html { %Q[<span class="gd">#{text}</span>] }
  end

  def not_modified_html(text)
    wrapper_html { %Q[#{text}] }
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pretty_diff-0.9.1 lib/pretty_diff/html_generators/line_generator.rb