class Akapen::Core
Akapen::Core
¶ ↑
Constants
- AKAPEN_CHECKER_FILE
check script template file name¶ ↑
- AKAPEN_CHECKER_TEMPLATE
check script template¶ ↑
- AKAPEN_PARAMETER_FILE
report parameter template file name¶ ↑
- AKAPEN_PARAMETER_TEMPLATE
report parameter template¶ ↑
- AKAPEN_RESULT_FILE
result file name¶ ↑
- AKAPEN_TEMPLATE_FILE
report template file name¶ ↑
- AKAPEN_TEMPLATE_TEMPLATE
report template template¶ ↑
Public Instance Methods
grade()
click to toggle source
check test or report, and generate result report from Akapentemplate & Akapenparameter.
# File lib/akapen_core.rb, line 78 def grade require "./akapen_checker" template = read_template parameters = read_parameters dsl = Dsl.new dsl.instance_eval parameters test_results = get_test_results id = get_id q_results = get_q_results(dsl, test_results) result = get_report(dsl, q_results, template) File.open(get_output_filename(id), "w") {|f|f.puts result} end
init()
click to toggle source
init Akapen::Core
# File lib/akapen_core.rb, line 71 def init File.open("./#{AKAPEN_CHECKER_FILE}", "w") {|f|f.puts AKAPEN_CHECKER_TEMPLATE} File.open("./#{AKAPEN_TEMPLATE_FILE}", "w") {|f|f.puts AKAPEN_TEMPLATE_TEMPLATE} File.open("./#{AKAPEN_PARAMETER_FILE}", "w") {|f|f.puts AKAPEN_PARAMETER_TEMPLATE} end
Private Instance Methods
get_id()
click to toggle source
# File lib/akapen_core.rb, line 119 def get_id AkapenChecker.new.id end
get_output_filename(id)
click to toggle source
# File lib/akapen_core.rb, line 149 def get_output_filename(id) AKAPEN_RESULT_FILE.gsub('$id$', id) end
get_q_results(dsl, test_results)
click to toggle source
# File lib/akapen_core.rb, line 123 def get_q_results(dsl, test_results) questions = dsl.questions ret = [] test_results.each_with_index do |result, index| if (result) ret << questions[index].ok else ret << questions[index].ng end end ret.join.chomp end
get_report(dsl, q_results, template)
click to toggle source
# File lib/akapen_core.rb, line 137 def get_report(dsl, q_results, template) dynamic_filed_names = Akapen::Dsl.get_dynamic_field_names code = [] dynamic_filed_names.each do |field_name| method_value = dsl.method("_#{field_name}").call code << "#{field_name.to_s} = '#{method_value}'" end code << "erb = ERB.new(template)" code << "erb.result(binding)" eval code.join("\n"), binding end
get_test_results()
click to toggle source
# File lib/akapen_core.rb, line 110 def get_test_results akapen_checker = AkapenChecker.new test_results = [] AkapenChecker.instance_methods.grep(/^q(\d+)$/).sort.each do |m| test_results << akapen_checker.method(m).call end test_results end
read_parameters()
click to toggle source
# File lib/akapen_core.rb, line 101 def read_parameters AKAPEN_PARAMETER_FILE unless File.exists? "./#{AKAPEN_PARAMETER_FILE}" raise AkapenTemplateNotExistsError.new("you must create #{AKAPEN_PARAMETER_FILE}. create manually or execute 'akapen init' command") end File.read("./#{AKAPEN_PARAMETER_FILE}") end
read_template()
click to toggle source
# File lib/akapen_core.rb, line 93 def read_template unless File.exists? "./#{AKAPEN_TEMPLATE_FILE}" raise AkapenTemplateNotExistsError.new("you must create #{AKAPEN_TEMPLATE_FILE}. create manually or execute 'akapen init' command") end File.read("./#{AKAPEN_TEMPLATE_FILE}") end