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.58 lib/vedeu/colours/colours.rb
vedeu-0.4.57 lib/vedeu/colours/colours.rb
vedeu-0.4.56 lib/vedeu/colours/colours.rb
vedeu-0.4.55 lib/vedeu/colours/colours.rb
vedeu-0.4.54 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.53 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.52 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.51 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.50 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.49 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.48 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.47 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.46 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.45 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.44 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.43 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.42 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.41 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.40 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.39 lib/vedeu/repositories/repositories/colours.rb