Sha256: 9406b670896c3dd0c0c850ac75ad5b972c94769823550ec6186e8150401ef911

Contents?: true

Size: 1.35 KB

Versions: 10

Compression:

Stored size: 1.35 KB

Contents

module Vedeu

  # Allows the storing of HTML/CSS colours and their respective escape
  # sequences.
  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

10 entries across 10 versions & 1 rubygems

Version Path
vedeu-0.4.32 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.31 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.30 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.29 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.28 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.27 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.26 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.25 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.24 lib/vedeu/repositories/repositories/colours.rb
vedeu-0.4.23 lib/vedeu/repositories/repositories/colours.rb