Method: Multitest.find_classes_in_file

Defined in:
lib/multitest/multitest.rb

.find_classes_in_file(f) ⇒ Object



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/multitest/multitest.rb', line 110

def self.find_classes_in_file(f)
  code = ""
  File.open(f) {|buffer| code = buffer.read}
  matches = code.scan(/class\s+([\S]+)/)
  klasses = matches.collect do |c|
    begin
      if c.first.respond_to? :constantize
        c.first.constantize
      else
        eval(c.first)
      end
    rescue NameError
      # $stderr.write "Could not load [#{c.first}] from [#{f}]\n"
      nil
    rescue SyntaxError
      # $stderr.write "Could not load [#{c.first}] from [#{f}]\n"
      nil
    end
  end
  return klasses.select{|k| k.respond_to? 'suite'}
end