Class: Tabula::Writers::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/tabula/writers/writer.rb

Overview

Base class for table output writers

Direct Known Subclasses

CSVWriter, JSONWriter, MarkdownWriter, TSVWriter

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**options) ⇒ Writer

Returns a new instance of Writer.

Parameters:

  • options (Hash) —

    writer options



27
28
29
# File 'lib/tabula/writers/writer.rb', line 27

def initialize(**options)
  @options = options
end

Class Method Details

.to_string(tables, **options) ⇒ String

Write tables to a string

Parameters:

  • tables (Array<Table>) —

    tables to write

  • options (Hash) —

    writer-specific options

Returns:

  • (String) —

    formatted output



19
20
21
22
23
24
# File 'lib/tabula/writers/writer.rb', line 19

def self.to_string(tables, **options)
  require 'stringio'
  io = StringIO.new
  write(tables, io, **options)
  io.string
end

.write(tables, io = $stdout, **options) ⇒ Object

Write tables to an IO object

Parameters:

  • tables (Array<Table>) —

    tables to write

  • io (IO) (defaults to: $stdout) —

    output destination

  • options (Hash) —

    writer-specific options



11
12
13
# File 'lib/tabula/writers/writer.rb', line 11

def self.write(tables, io = $stdout, **options)
  new(**options).write(tables, io)
end

Instance Method Details

#write(tables, io) ⇒ Object

Write tables to an IO object

Parameters:

  • tables (Array<Table>) —

    tables to write

  • io (IO) —

    output destination

Raises:

  • (NotImplementedError)


34
35
36
# File 'lib/tabula/writers/writer.rb', line 34

def write(tables, io)
  raise NotImplementedError, 'Subclasses must implement #write'
end