diff --git a/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb b/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb index 0d0804c271..55333f5b7a 100644 --- a/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb +++ b/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb @@ -1,7 +1,6 @@ require 'generator/exercise_case' class CollatzConjectureCase < Generator::ExerciseCase - using Generator::Underscore def workload case expected @@ -25,7 +24,7 @@ def subject_of_test end def input - number.underscore + literal(number) end end diff --git a/exercises/space-age/.meta/generator/space_age_case.rb b/exercises/space-age/.meta/generator/space_age_case.rb index 52b0fe7d4d..6a202502eb 100644 --- a/exercises/space-age/.meta/generator/space_age_case.rb +++ b/exercises/space-age/.meta/generator/space_age_case.rb @@ -1,10 +1,9 @@ require 'generator/exercise_case' class SpaceAgeCase < Generator::ExerciseCase - using Generator::Underscore def workload - indent_lines(["age = SpaceAge.new(#{seconds.underscore})", + indent_lines(["age = SpaceAge.new(#{literal(seconds)})", "assert_in_delta #{expected}, age.on_#{planet.downcase}, DELTA" ], 4) end diff --git a/exercises/sum-of-multiples/.meta/generator/sum_of_multiples_case.rb b/exercises/sum-of-multiples/.meta/generator/sum_of_multiples_case.rb index 23ff8a838d..b4420f0532 100644 --- a/exercises/sum-of-multiples/.meta/generator/sum_of_multiples_case.rb +++ b/exercises/sum-of-multiples/.meta/generator/sum_of_multiples_case.rb @@ -4,7 +4,7 @@ class SumOfMultiplesCase < Generator::ExerciseCase using Generator::Underscore def workload - assert_expected = "assert_equal #{expected.underscore}" + assert_expected = "assert_equal #{underscore(expected)}" value = "SumOfMultiples.new(#{factors.join(', ')}).to(#{limit})" indent_lines(["#{assert_expected}, #{value}"], 4) end diff --git a/lib/generator/exercise_case.rb b/lib/generator/exercise_case.rb index 6278494adb..774ac81e4e 100644 --- a/lib/generator/exercise_case.rb +++ b/lib/generator/exercise_case.rb @@ -27,5 +27,20 @@ def method_missing(sym, *args, &block) 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