Sha256: f367fe3ddfa5f3d3ee0ff05366b03bb595cfe51dd1c227b3b48bcff7a2383eb9

Contents?: true

Size: 842 Bytes

Versions: 8

Compression:

Stored size: 842 Bytes

Contents

module Vedeu
  class Base
    class << self
      def escape_sequence(colour = nil)
        new(colour).escape_sequence
      end
    end

    def initialize(colour = nil)
      @colour = colour
    end

    def escape_sequence
      [Esc.esc, prefix, code, suffix].join
    end

    private

    attr_reader :colour

    def prefix
      named? || default? ? normal : custom
    end

    def code
      no_colour || named || html || default
    end

    def no_colour
      default unless colour
    end

    def default?
      colour.nil? || colour == :default
    end

    def named
      codes[colour] || codes[:default] if named?
    end

    def named?
      colour.is_a?(Symbol)
    end

    def html
      Translator.translate(colour)
    end

    def default
      codes[:default]
    end

    def suffix
      'm'
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
vedeu-0.0.25 lib/vedeu/output/base.rb
vedeu-0.0.24 lib/vedeu/output/base.rb
vedeu-0.0.23 lib/vedeu/output/base.rb
vedeu-0.0.22 lib/vedeu/output/base.rb
vedeu-0.0.21 lib/vedeu/output/base.rb
vedeu-0.0.20 lib/vedeu/output/base.rb
vedeu-0.0.19 lib/vedeu/output/base.rb
vedeu-0.0.18 lib/vedeu/output/base.rb