Sha256: 9e6a6cd9dbc44e78fd413386db4ee66e2769a8689fdf09c41f21945f10d8839c

Contents?: true

Size: 1.03 KB

Versions: 8

Compression:

Stored size: 1.03 KB

Contents

require 'vedeu/support/common'
require 'vedeu/support/coercions'

module Vedeu

  # Converts the style value or value collection into a terminal escape
  # sequence. Unrecognised values are discarded- an empty string is returned.
  #
  # @api private
  class Style

    include Vedeu::Common
    include Vedeu::Coercions

    attr_accessor :value

    # Return a new instance of Style.
    #
    # @param value [Array|Array<String>|Array<Symbol>|String|Symbol]
    #   The style value or a collection of values.
    # @return [Style]
    def initialize(value = nil)
      @value = value
    end

    # Return an attributes hash for this class.
    #
    # @return [Hash]
    def attributes
      {
        style: value
      }
    end

    # Return the terminal escape sequences after converting the style or styles.
    #
    # @return [String]
    def to_s
      return '' unless defined_value?(value)

      @_sequences ||= Array(value).flatten.map { |v| Esc.string(v) }.join
    end
    alias_method :escape_sequences, :to_s

  end # Style

end # Vedeu

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
vedeu-0.4.1 lib/vedeu/output/style.rb
vedeu-0.4.0 lib/vedeu/output/style.rb
vedeu-0.3.5 lib/vedeu/presentation/style.rb
vedeu-0.3.4 lib/vedeu/presentation/style.rb
vedeu-0.3.3 lib/vedeu/presentation/style.rb
vedeu-0.3.2 lib/vedeu/presentation/style.rb
vedeu-0.3.1 lib/vedeu/presentation/style.rb
vedeu-0.3.0 lib/vedeu/presentation/style.rb