Class: Glimmer::Video::VideoObserverBrowserFunction

Inherits:
BrowserFunction
  • Object
show all
Defined in:
lib/views/glimmer/video.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(video, observer_proc, attribute) ⇒ VideoObserverBrowserFunction

Returns a new instance of VideoObserverBrowserFunction.



223
224
225
226
227
228
# File 'lib/views/glimmer/video.rb', line 223

def initialize(video, observer_proc, attribute)
  @observer_proc = observer_proc
  @attribute = attribute
  name = self.class.generate_name(@attribute)
  super(video.swt_widget, name)
end

Class Method Details

.attribute_max_id(attribute) ⇒ Object



249
250
251
# File 'lib/views/glimmer/video.rb', line 249

def attribute_max_id(attribute)
  attribute_max_ids[attribute] ||= 0
end

.attribute_max_idsObject



253
254
255
# File 'lib/views/glimmer/video.rb', line 253

def attribute_max_ids
  @attribute_max_ids ||= {}
end

.generate_attribute_id(attribute) ⇒ Object



245
246
247
# File 'lib/views/glimmer/video.rb', line 245

def generate_attribute_id(attribute)
  attribute_max_ids[attribute] = attribute_max_id(attribute) + 1
end

.generate_name(attribute) ⇒ Object



241
242
243
# File 'lib/views/glimmer/video.rb', line 241

def generate_name(attribute)
  "video#{attribute}#{generate_attribute_id(attribute)}"
end

Instance Method Details

#function(arguments) ⇒ Object



230
231
232
233
234
235
236
# File 'lib/views/glimmer/video.rb', line 230

def function(arguments)
  @observer_proc.call
rescue => e
  Glimmer::Config.logger&.error "#{e.message}\n#{e.backtrace.join("\n")}"
ensure
  nil
end