Module: Virtual

Included in:
Controls::AbstractMethod::Example, Controls::Extended::Example, Controls::Included::Example, Controls::ProtocolMethod::Example, Controls::PureVirtualMethod::Example, Controls::VirtualMethod::Body::Example, Controls::VirtualMethod::Example
Defined in:
lib/virtual/macro.rb,
lib/virtual/virtual.rb,
lib/virtual/activate.rb,
lib/virtual/pure_method.rb,
lib/virtual/controls/clean.rb,
lib/virtual/virtual_method.rb,
lib/virtual/protocol_method.rb,
lib/virtual/controls/extended.rb,
lib/virtual/controls/included.rb,
lib/virtual/controls/virtual_method.rb,
lib/virtual/controls/abstract_method.rb,
lib/virtual/controls/protocol_method.rb,
lib/virtual/controls/pure_virtual_method.rb

Defined Under Namespace

Modules: Controls, Macro, ProtocolMethod, PureMethod, VirtualMethod

Class Method Summary collapse

Class Method Details

.activate(target_class = nil) ⇒ Object



2
3
4
5
6
7
8
# 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) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/virtual/activate.rb', line 10

def self.activated?(target_class=nil)
  target_class ||= Object

  subject = subject_class(target_class)

  Macro.macro_methods.each do |mthd|
    if not subject.respond_to?(mthd)
      return false
    end
  end

  true
end

.extended(cls) ⇒ Object



6
7
8
# File 'lib/virtual/virtual.rb', line 6

def self.extended(cls)
  activate(cls)
end

.included(cls) ⇒ Object



2
3
4
# File 'lib/virtual/virtual.rb', line 2

def self.included(cls)
  activate(cls)
end

.subject_class(subject) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/virtual/activate.rb', line 24

def self.subject_class(subject)
  if [Module, Class].include?(subject)
    return subject
  else
    return subject.class
  end
end