Sha256: 80c7b28bf6ba87b67cca769240ff64f997d9fb6b77d9a2c2694abd7672cf8ef9

Contents?: true

Size: 970 Bytes

Versions: 2

Compression:

Stored size: 970 Bytes

Contents

module Vedeu

  # Adjusts the visibility of the cursor.
  #
  class Toggle

    # Returns an instance of Toggle.
    #
    # @param cursor [Cursor]
    # @return [Toggle]
    def initialize(cursor)
      @cursor = cursor
    end

    # Hides the cursor.
    #
    # @param (see #initialize)
    def self.hide(cursor)
      return cursor if cursor.invisible?

      new(cursor).hide
    end

    # Shows the cursor.
    #
    # @param (see #initialize)
    def self.show(cursor)
      return cursor if cursor.visible?

      new(cursor).show
    end

    # Hides the cursor.
    #
    # @return [Cursor]
    def hide
      cursor.class.new(cursor.attributes.merge!({ state: false })).store
    end

    # Shows the cursor.
    #
    # @return [Cursor]
    def show
      cursor.class.new(cursor.attributes.merge!({ state: true })).store
    end

    private

    # @!attribute [r] cursor
    # @return [Vedeu::Cursor]
    attr_reader :cursor

  end # Toggle

end # Vedeu

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.4.9 lib/vedeu/cursor/toggle.rb
vedeu-0.4.8 lib/vedeu/cursor/toggle.rb