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.119 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.118 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.117 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.116 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.115 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.114 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.113 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.111 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.110 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.109 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.108 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.107 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.106 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.105 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.104 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.103 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.102 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.101 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.100 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb
trackler-2.2.1.99 tracks/ruby/exercises/allergies/.meta/generator/allergies_case.rb