Sha256: 30a86953e58dec0709bb10f0bec063732e5609d3ee81e7afac12a4fc2ed3aabf

Contents?: true

Size: 821 Bytes

Versions: 131

Compression:

Stored size: 821 Bytes

Contents

require 'generator/exercise_case'

class AllergiesCase < Generator::ExerciseCase
  def workload
    assertions = list_expected? ? list_assertion : individual_assertions
    allergies_declaration = "allergies = Allergies.new(#{score})"
    indent_lines(assertions.unshift(allergies_declaration), 4)
  end

  def list_expected?
    property == 'list'
  end

  def list_assertion
    ["assert_equal %w(#{expected.join(' ')}), allergies.list"]
  end

  def individual_assertions
    expected.map do |assertion|
      substance = assertion['substance']
      result = assertion['result']
      "#{result ? assert(substance) : refute(substance)}"
    end
  end

  def refute(allergen)
    "refute allergies.allergic_to?('#{allergen}')"
  end

  def assert(allergen)
    "assert allergies.allergic_to?('#{allergen}')"
  end
end

Version data entries

131 entries across 131 versions & 1 rubygems

Version Path
trackler-2.2.1.78 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.77 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.76 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.75 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.74 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.73 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.72 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.71 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.70 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.69 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.68 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.67 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.66 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.65 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.64 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.63 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.62 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.61 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.60 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.59 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb