Sha256: 153a965f61020269ac909d6f7f013db6f20502b4891d8490862ece2b29407d95

Contents?: true

Size: 1.36 KB

Versions: 23

Compression:

Stored size: 1.36 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

23 entries across 23 versions & 1 rubygems

Version Path
vedeu-0.6.1 lib/vedeu/colours/colours.rb
vedeu-0.6.0 lib/vedeu/colours/colours.rb
vedeu-0.5.13 lib/vedeu/colours/colours.rb
vedeu-0.5.12 lib/vedeu/colours/colours.rb
vedeu-0.5.11 lib/vedeu/colours/colours.rb
vedeu-0.5.10 lib/vedeu/colours/colours.rb
vedeu-0.5.9 lib/vedeu/colours/colours.rb
vedeu-0.5.8 lib/vedeu/colours/colours.rb
vedeu-0.5.7 lib/vedeu/colours/colours.rb
vedeu-0.5.6 lib/vedeu/colours/colours.rb
vedeu-0.5.5 lib/vedeu/colours/colours.rb
vedeu-0.5.4 lib/vedeu/colours/colours.rb
vedeu-0.5.3 lib/vedeu/colours/colours.rb
vedeu-0.5.2 lib/vedeu/colours/colours.rb
vedeu-0.5.1 lib/vedeu/colours/colours.rb
vedeu-0.5.0 lib/vedeu/colours/colours.rb
vedeu-0.4.65 lib/vedeu/colours/colours.rb
vedeu-0.4.64 lib/vedeu/colours/colours.rb
vedeu-0.4.63 lib/vedeu/colours/colours.rb
vedeu-0.4.62 lib/vedeu/colours/colours.rb