Module: Vedeu::DisplayBuffer

Includes:
Common
Included in:
Interface
Defined in:
lib/vedeu/buffers/display_buffer.rb

Overview

This module is included in Vedeu::Interface to provide means to store client application views created with renders or views.

Instance Method Summary collapse

Methods included from Common

#defined_value?, #to_sentence

Instance Method Details

#store_cursorInterface (private)

Registers a new cursor for the interface unless already registered.

Returns:



72
73
74
75
76
77
78
# File 'lib/vedeu/buffers/display_buffer.rb', line 72

def store_cursor
  unless Vedeu.cursors.registered?(name)
    Vedeu::Cursor.new({ name: name }).store
  end

  self
end

#store_deferredInterface

Store the view if it has a name. This view will be shown next time the refresh event is triggered for the interface.

Returns:

Raises:

  • (InvalidSyntax)

    The name is not defined.



29
30
31
32
33
34
35
36
37
# File 'lib/vedeu/buffers/display_buffer.rb', line 29

def store_deferred
  unless defined_value?(name)
    fail InvalidSyntax, 'Cannot store an interface without a name.'
  end

  store_new_buffer

  self
end

#store_focusableInterface (private)

Registers interface name in focus list unless already registered.

Returns:



61
62
63
64
65
66
67
# File 'lib/vedeu/buffers/display_buffer.rb', line 61

def store_focusable
  unless Vedeu.focusable.registered?(name)
    Vedeu.focusable.add(name)
  end

  self
end

#store_groupInterface (private)

Registers a new group for the interface unless already registered.

Returns:



83
84
85
86
87
88
89
# File 'lib/vedeu/buffers/display_buffer.rb', line 83

def store_group
  unless group.nil? || group.empty? || Vedeu.groups.registered?(group)
    Vedeu::Group.new(name, group).store
  end

  self
end

#store_immediateInterface

Store the view and immediate refresh it; causing to be pushed to the Terminal.

Returns:



16
17
18
19
20
21
22
# File 'lib/vedeu/buffers/display_buffer.rb', line 16

def store_immediate
  store_deferred

  Vedeu::Refresh.by_name(name)

  self
end

#store_new_bufferInterface (private)

Registers a set of buffers for the interface unless already registered, and also adds interface’s name to list of focussable interfaces.

Returns:

See Also:



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/vedeu/buffers/display_buffer.rb', line 46

def store_new_buffer
  if Vedeu.buffers.registered?(name)
    Vedeu.buffers.find(name).add(self)

  else
    Buffer.new(name, self).store

  end

  self
end