Sha256: 8cfce956d341e82b36228bcbec1a54c243818c2437aacb9f7787cf577a44e626
Contents?: true
Size: 1.36 KB
Versions: 100
Compression:
Stored size: 1.36 KB
Contents
require 'json' module Generator # Contains methods accessible to the ERB template class TemplateValues attr_reader :abbreviated_commit_hash, :version, :exercise_name, :test_cases, :canonical_data_version def initialize(abbreviated_commit_hash:, version:, exercise_name:, test_cases:, canonical_data_version: nil) @abbreviated_commit_hash = abbreviated_commit_hash @version = version @exercise_name = exercise_name @test_cases = test_cases @canonical_data_version = canonical_data_version end def get_binding binding end def exercise_test_classname exercise_name_camel + 'Test' end private def exercise_name_camel exercise_name.split('_').map(&:capitalize).join end end module TemplateValuesFactory def template_values TemplateValues.new( abbreviated_commit_hash: canonical_data.abbreviated_commit_hash, canonical_data_version: canonical_data.version, version: version, exercise_name: exercise.name, test_cases: extract ) end private def extract load cases_load_name extractor.cases(canonical_data.to_s) end def extractor CaseValues::Extractor.new( case_class: Object.const_get(exercise.case_class) ) end def cases_load_name test_case.filename end end end
Version data entries
100 entries across 100 versions & 1 rubygems