Sha256: 2de8afe90abef2008e27931a379bc4fa82c87e8b5fcdf2edeef5de671cd72ab7

Contents?: true

Size: 953 Bytes

Versions: 42

Compression:

Stored size: 953 Bytes

Contents

require 'ostruct'
require 'generator/exercise_case/assertion'
require 'generator/exercise_case/case_helpers'
require 'generator/underscore'

module Generator
  class ExerciseCase
    using Generator::Underscore
    include CaseHelpers
    include Assertion

    attr_reader :canonical
    def initialize(canonical:)
      @canonical = canonical
    end

    def name
      'test_%s' % canonical.description.strip.underscore
    end

    def skipped(index)
      index.zero? ? '# skip' : 'skip'
    end

    def method_missing(sym, *args, &block)
      return canonical.send(sym) if canonical.respond_to?(sym)
      super(sym, *args, &block)
    end

    def respond_to?(sym, include_private = false)
      canonical.respond_to?(sym) || super
    end

    protected

    def literal(number)
      number.underscore
    end

    def underscore(string)
      string.underscore
    end

    def camel_case(string)
      string.camel_case
    end

  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/ruby/lib/generator/exercise_case.rb
trackler-2.2.1.138 tracks/ruby/lib/generator/exercise_case.rb