Sha256: 3b1370f72fbd81ab37cf15e52fbe0d81f798e60f6b2d5c8e995d04bec6960c83

Contents?: true

Size: 1.39 KB

Versions: 42

Compression:

Stored size: 1.39 KB

Contents

require 'json'
require 'generator/case_values'

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

42 entries across 42 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.158 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.157 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.156 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.155 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.154 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.153 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.152 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.151 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.150 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.149 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.148 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.147 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.146 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.145 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.144 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.143 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.142 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.141 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.140 tracks/ruby/lib/generator/template_values.rb