Sha256: 140c37d0b0a89ffbf9eb7bc09bdd7c7c64cacd26133d881ad8af6876247eb3cb
Contents?: true
Size: 1.12 KB
Versions: 7
Compression:
Stored size: 1.12 KB
Contents
module DiningTable module Presenters class SpreadsheetPresenter < Presenter def render_row( object ) values = columns.map do |column| value = column.value( object ) value = clean( value ) if !!options[:clean] value end add_row( values ) end def render_header add_row( header_strings ) end def render_footer footers = footer_strings if footers.map { |s| blank?(s) }.uniq != [ true ] add_row( footers ) end end private def header_strings columns.map(&:header) end def footer_strings columns.map(&:footer) end def add_row( row ) raise NotImplementedError end def clean(string) replacements = [['—', '--'], ['–', '-'], [' ', ' '] ] base = view_context.strip_tags(string) replacements.each do |pattern, replacement| base.gsub!(pattern, replacement) end base end end end end
Version data entries
7 entries across 7 versions & 1 rubygems