Sha256: fcd3447422beff17a226cc8a5c96471302edc1f962fd610efff33ea154fddc82

Contents?: true

Size: 922 Bytes

Versions: 4

Compression:

Stored size: 922 Bytes

Contents

module Vedeu

  # Adjusts the visibility of the cursor.
  class ToggleCursor

    # @param cursor [Cursor]
    # @return [ToggleCursor]
    def initialize(cursor)
      @cursor = cursor
    end

    # Hides the cursor.
    #
    # @param cursor [Cursor]
    # @return [Cursor]
    def self.hide(cursor)
      return cursor if cursor.invisible?

      new(cursor).hide
    end

    # Shows the cursor.
    #
    # @param cursor [Cursor]
    # @return [Cursor]
    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

    attr_reader :cursor

  end # ToggleCursor

end # Vedeu

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.3.4 lib/vedeu/cursor/toggle_cursor.rb
vedeu-0.3.3 lib/vedeu/cursor/toggle_cursor.rb
vedeu-0.3.2 lib/vedeu/cursor/toggle_cursor.rb
vedeu-0.3.1 lib/vedeu/cursor/toggle_cursor.rb