Class: Module

Inherits:
Object
  • Object
show all
Defined in:
lib/rubernate/mixins.rb

Instance Method Summary collapse

Instance Method Details

#find_all(scaned = Set.new, &filter) ⇒ Object

Iterates over all classes.



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rubernate/mixins.rb', line 22

def find_all scaned = Set.new, &filter # :yeild: class
  scaned << self    
  result = []
  for unit in module_units - scaned
    if unit.is_a? Class
      result << unit if yield unit
    end
    result.concat unit.find_all(scaned, &filter)
  end
  return result        
end

#find_class(name, scaned = Set.new) ⇒ Object

Finds class defined in current module.

:call-seq: find_class(name, scaned = Set.new)

Module.find_class 'ClassName' # finds class 'ClassName' in global space
SomeModule.find_class 'ClassName' # finds class 'ClassName' in module SomeModule


11
12
13
14
15
16
17
18
19
# File 'lib/rubernate/mixins.rb', line 11

def find_class name, scaned = Set.new
  scaned << self
  for unit in module_units - scaned
    return unit if unit.name == name
    result = unit.find_class name, scaned
    return result if result
  end
  nil
end