Class: Class

Inherits:
Object show all
Defined in:
lib/clevic/framework.rb

Overview

To handle multiple GUI frameworks, Clevic makes use of

Ruby's open classes. Whenever there is a class that
interacts with a GUI framework (say Qt, or Java Swing)
the framework-specific part of the class is loaded
first to get access to the framework's inheritance
hierarchy, then the file with the framework-neutral
code is loaded. The code below helps to check
that the relevant methods from framework-neutral code
are already defined by the time the framework-neutral
class definition is executed.

Instance Method Summary collapse

Instance Method Details

#framework_responsibility(method_name) ⇒ Object

method_name can be a symbol or a string.

If a method of this name doesn’t already exist add it, so that if when it’s called later it raises and exception. Otherwise if the named method already exists, just leave it alone.



22
23
24
25
26
27
28
# File 'lib/clevic/framework.rb', line 22

def framework_responsibility( method_name )
  unless method_defined?( method_name.to_sym )
    define_method method_name do
      raise "Framework-specific code not defined for #{self.class}##{method_name}"
    end
  end
end

#subclass_responsibility(method_name) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/clevic/framework.rb', line 30

def subclass_responsibility( method_name )
  unless instance_methods.include?( method_name.to_s )
    define_method( method_name ) do
      raise "#{method_name} is subclass responsibility for #{self.class}"
    end
  end
end