module Virtual

Public Class Methods

activate(target_class=nil) click to toggle source
# File lib/virtual/activate.rb, line 2
def self.activate(target_class=nil)
  target_class ||= Object

  return if target_class.ancestors.include?(Virtual::Macro)

  target_class.extend(Virtual::Macro)
end
activated?(target_class=nil) click to toggle source
# File lib/virtual/activate.rb, line 10
def self.activated?(target_class=nil)
  target_class ||= Object

  subject = subject_class(target_class)

  ['virtual', 'pure_virtual', 'abstract'].each do |mthd|
    fail mthd unless subject.respond_to?(mthd)
  end
end
extended(cls) click to toggle source
# File lib/virtual/virtual.rb, line 6
def self.extended(cls)
  activate(cls)
end
included(cls) click to toggle source
# File lib/virtual/virtual.rb, line 2
def self.included(cls)
  activate(cls)
end
subject_class(subject) click to toggle source
# File lib/virtual/activate.rb, line 20
def self.subject_class(subject)
  if [Module, Class].include?(subject)
    return subject
  else
    return subject.class
  end
end