Sha256: 19d1e354d5aba53c7fb3b18003a4a36f23695c7c373ae1fd7f704c23563086d5

Contents?: true

Size: 1003 Bytes

Versions: 1

Compression:

Stored size: 1003 Bytes

Contents

require 'vedeu/api/base'
require 'vedeu/api/stream'

module Vedeu
  module API
    class Line < Base
      def build
        attributes
      end

      def align(value)
        attributes[:align] = value
      end

      def stream(&block)
        attributes[:streams] << API::Stream.build(&block)
      end

      def text(value)
        attributes[:streams] << { text: value }
      end

      def foreground(value = '', &block)
        attributes[:streams] << API::Stream.build({
                                  colour: { foreground: value }
                                }, &block)
      end

      def background(value = '', &block)
        attributes[:streams] << API::Stream.build({
                                  colour: { background: value }
                                }, &block)
      end

      def attributes
        @_attributes ||= { colour:  {},
                           style:   [],
                           streams: [] }.merge!(@attributes)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.1.6 lib/vedeu/api/line.rb