Module: Such::Things

Defined in:
lib/such/things.rb

Class Method Summary collapse

Class Method Details

.in(super_class) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/such/things.rb', line 12

def self.in(super_class)
  Things.list(super_class).each do |sub_class|
    begin
      Things.subclass(sub_class)
    rescue
      $stderr.puts "#{$!.class}:\t#{super_class}" if $VERBOSE
    end
  end
end

.list(super_class) ⇒ Object



3
4
5
# File 'lib/such/things.rb', line 3

def self.list(super_class)
  ObjectSpace.each_object(Class).select{_1 < super_class}
end

.subclass(sub_class) ⇒ Object



7
8
9
10
# File 'lib/such/things.rb', line 7

def self.subclass(sub_class)
  Such.subclass(sub_class.name.sub(/^.*::/,'').to_sym, sub_class,
                include: Such::Thing)
end