Sha256: adf99f7ce27dd7eb9746d07ac6ca0b591f57d1a641627846e479e0ee06f7803a

Contents?: true

Size: 702 Bytes

Versions: 2

Compression:

Stored size: 702 Bytes

Contents

require 'virtus'

require 'vedeu/models/colour'
require 'vedeu/models/style'

module Vedeu
  class Stream
    include Virtus.model

    attribute :colour, Colour,  default: Colour.new
    attribute :style,  Style,   default: ''
    attribute :text,   String,  default: ''
    attribute :width,  Integer
    attribute :align,  Symbol,  default: :left

    def to_s
      [ colour, style, data ].join
    end

    private

    def data
      width? ? aligned : text
    end

    def aligned
      case align
      when :right  then text.rjust(width,  ' ')
      when :centre then text.center(width, ' ')
      else text.ljust(width, ' ')
      end
    end

    def width?
      !!width
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.1.9 lib/vedeu/models/stream.rb
vedeu-0.1.8 lib/vedeu/models/stream.rb