Sha256: f2d4c64ed8c71da2cd7b8fd679c574c2b773279a9352faacab878869204cdba9

Contents?: true

Size: 1.37 KB

Versions: 26

Compression:

Stored size: 1.37 KB

Contents

module Vedeu

  # Allows the storing of HTML/CSS colours and their respective escape
  # sequences.
  #
  # @api public
  class Colours

    # @!attribute [r] storage
    # @return [Hash<String => String>]
    attr_reader :storage

    # Returns a new instance of Vedeu::Colours.
    #
    # @return [Vedeu::Colours]
    def initialize
      @storage = {}
    end

    # Registers a colour with respective escape sequence.
    #
    # @return [String]
    def register(colour, escape_sequence)
      storage.store(colour, escape_sequence)
    end

    # Returns a boolean indicating whether the colour has been registered.
    #
    # @param colour [String]
    # @return [Boolean]
    def registered?(colour)
      return false unless colour

      storage.key?(colour)
    end

    # Removes all stored colours.
    #
    # @return [Hash]
    def reset!
      storage.clear
    end

    # Retrieves the escape sequence of a registered colour.
    #
    # @return [String]
    def retrieve(colour)
      storage.fetch(colour, '')
    end

    # Retrieves the escape sequence of a registered colour, or registers the
    # colour with its respective escape sequence.
    #
    # @return [String]
    def retrieve_or_register(colour, escape_sequence)
      if registered?(colour)
        retrieve(colour)

      else
        register(colour, escape_sequence)

      end
    end

  end # Colours

end # Vedeu

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
vedeu-0.4.38 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.37 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.36 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.35 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.34 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.33 lib/vedeu/repositories/repositories/colours.rb