Sha256: f7c6d458515029f6fa94f77915a208b73e7df1c7d2ab44b4b4cf5edf79f2ee41

Contents?: true

Size: 890 Bytes

Versions: 2

Compression:

Stored size: 890 Bytes

Contents

module Vedeu

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

    include Vedeu::Common

    attr_reader :values

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

    # Return the terminal escape sequences for the values provided.
    #
    # @return [String]
    def to_s
      escape_sequences
    end

    private

    # Converts the style or styles into terminal escape sequences.
    #
    # @api private
    # @return [String]
    def escape_sequences
      return '' unless defined_value?(values)

      @_sequences ||= Array(values).flatten.map do |value|
        Esc.string(value)
      end.join
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.2.0 lib/vedeu/models/style.rb
vedeu-0.1.19 lib/vedeu/models/style.rb