Class: TkWrapper::Widgets::Base::Manager

Inherits:
Object
  • Object
show all
Defined in:
lib/widgets/base/manager.rb

Constant Summary collapse

ComparatorItemStore =
TkWrapper::Widgets::Base::ComparatorItemStore

Instance Method Summary collapse

Constructor Details

#initializeManager

Returns a new instance of Manager.



8
9
10
11
# File 'lib/widgets/base/manager.rb', line 8

def initialize
  @configurations = ComparatorItemStore.new
  @modifications = ComparatorItemStore.new
end

Instance Method Details

#add_configuration(comparator, configuration) ⇒ Object



19
20
21
# File 'lib/widgets/base/manager.rb', line 19

def add_configuration(comparator, configuration)
  @configurations.push(comparator, configuration)
end

#add_configurations(matcher = nil, configuration = nil, **configurations) ⇒ Object



13
14
15
16
17
# File 'lib/widgets/base/manager.rb', line 13

def add_configurations(matcher = nil, configuration = nil, **configurations)
  add_configuration(matcher, configuration) if configuration

  configurations.each { |mat, cfg| add_configuration(mat, cfg) }
end

#add_modification(matcher, &callback) ⇒ Object



23
24
25
# File 'lib/widgets/base/manager.rb', line 23

def add_modification(matcher, &callback)
  @modifications.push(matcher, callback)
end

#configurations(widget) ⇒ Object



27
28
29
30
# File 'lib/widgets/base/manager.rb', line 27

def configurations(widget)
  config_list = @configurations.items_and_matches_for_widget(widget)
  config_list.map { |configs| configs[:items] }.flatten(1)
end

#execute_modifications(widget) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/widgets/base/manager.rb', line 32

def execute_modifications(widget)
  item_list = @modifications.items_and_matches_for_widget(widget)
  item_list.each do |items|
    items[:items].each do |callback|
      callback.call(widget, items[:match])
    end
  end
end