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

Version Path
trackler-2.2.1.137 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.136 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.135 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.134 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.133 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.132 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.131 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.130 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.129 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.128 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.127 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.126 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.125 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.124 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.123 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.122 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.121 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.120 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.119 tracks/ruby/lib/generator/template_values.rb
trackler-2.2.1.118 tracks/ruby/lib/generator/template_values.rb