Sha256: 279778b4f096cbd7601d1077ece637d8e106cd01bfe8e6606fc1849c2f882469

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

# -*- encoding: utf-8 -*-

module TTY
  class Table

    # @api public
    def self.renderer
      @renderer ||= if TTY::Color.color?
        TTY::Table::Renderer::Color
      else
        TTY::Table::Renderer::Basic
      end
    end

    # @api public
    def self.renderer=(klass)
      @renderer = klass
    end

    # A mixin to allow common rendering methods
    #
    # @return [self]
    #
    # @api public
    module Renderer

      autoload :Basic,   'tty/table/renderer/basic'
      autoload :Color,   'tty/table/renderer/color'
      autoload :Unicode, 'tty/table/renderer/unicode'

      RENDERER_MAPPER = {
        :basic   => TTY::Table::Renderer::Basic,
        :color   => TTY::Table::Renderer::Color,
        :unicode => TTY::Table::Renderer::Unicode
      }

      # Initialize a Renderer
      #
      # @api private
      def initialize(options={})
        super
        self.renderer = RENDERER_MAPPER[:"#{options[:renderer]}"].new
      end

      def pick_renderer(renderer)
      if renderer
        RENDERER_MAPPER[renderer].new
      else
        self.renderer
      end
      end

      def renderer
        @renderer ||= TTY::Table.renderer.new
      end

      def renderer=(renderer)
        @renderer = renderer
      end

    end # Renderer

  end # Table
end # TTY

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tty-0.0.1 lib/tty/table/renderer.rb