Module: HomeWorkChecker::TestRunStat

Defined in:
lib/hw_checker/ruby_stat.rb,
lib/hw_checker/python_stat.rb,
lib/hw_checker/ruby_test_run.rb,
lib/hw_checker/test_run_stat.rb,
lib/hw_checker/python_test_run.rb

Defined Under Namespace

Classes: PythonStat, PythonTestRun, RubyStat, RubyTestRun

Class Method Summary collapse

Class Method Details

.detect_language(path) ⇒ Object



3
4
5
6
7
8
9
10
11
# File 'lib/hw_checker/test_run_stat.rb', line 3

def self.detect_language(path)
  return '.py' unless Dir.exist?("#{path}/test")
  Dir.foreach("#{path}/test") do |p|
    if File.file?("#{path}/test/#{p}") && LANGUAGE_TYPES.include?(File.extname p)
      return File.extname p
    end
  end
  raise "Any .rb/.py file doesn't exist"
end

.execute(work_path, tmp_path, dirname) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/hw_checker/test_run_stat.rb', line 13

def self.execute(work_path, tmp_path, dirname)
  lang_needed = TestRunStat::detect_language("#{tmp_path}/#{dirname}")
  class_names = LANGUAGE_TYPES[lang_needed]
  test_passed = class_names.first.new(tmp_path, dirname).perform
  code_quality = class_names.last.new(tmp_path, dirname).perform      
  [name_language(lang_needed), test_passed, code_quality]
end

.name_language(extname) ⇒ Object



21
22
23
# File 'lib/hw_checker/test_run_stat.rb', line 21

def self.name_language(extname)
  extname == '.rb' ? 'ruby' : 'python' 
end