diff --git a/lib/mutant/config.rb b/lib/mutant/config.rb index 871db6777..2791bf155 100644 --- a/lib/mutant/config.rb +++ b/lib/mutant/config.rb @@ -24,25 +24,18 @@ class Config define_method(:"#{name}?") { public_send(name) } end - boolean = Transform::Boolean.new - float = Transform::Primitive.new(Float) - integer = Transform::Primitive.new(Integer) - string = Transform::Primitive.new(String) - - string_array = Transform::Array.new(string) - TRANSFORM = Transform::Sequence.new( [ Transform::Exception.new(SystemCallError, :read.to_proc), Transform::Exception.new(YAML::SyntaxError, YAML.method(:safe_load)), Transform::Hash.new( optional: [ - Transform::Hash::Key.new('fail_fast', boolean), - Transform::Hash::Key.new('includes', string_array), - Transform::Hash::Key.new('integration', string), - Transform::Hash::Key.new('jobs', integer), - Transform::Hash::Key.new('mutation_timeout', float), - Transform::Hash::Key.new('requires', string_array) + Transform::Hash::Key.new('fail_fast', Transform::BOOLEAN), + Transform::Hash::Key.new('includes', Transform::STRING_ARRAY), + Transform::Hash::Key.new('integration', Transform::STRING), + Transform::Hash::Key.new('jobs', Transform::INTEGER), + Transform::Hash::Key.new('mutation_timeout', Transform::FLOAT), + Transform::Hash::Key.new('requires', Transform::STRING_ARRAY) ], required: [] ), diff --git a/lib/mutant/transform.rb b/lib/mutant/transform.rb index af7e900f3..00bf8f99b 100644 --- a/lib/mutant/transform.rb +++ b/lib/mutant/transform.rb @@ -414,5 +414,11 @@ def call(input) .lmap { |exception| error(input: input, message: exception.to_s) } end end # Exception + + BOOLEAN = Transform::Boolean.new + FLOAT = Transform::Primitive.new(Float) + INTEGER = Transform::Primitive.new(Integer) + STRING = Transform::Primitive.new(String) + STRING_ARRAY = Transform::Array.new(STRING) end # Transform end # Mutant diff --git a/spec/support/corpus.rb b/spec/support/corpus.rb index 216bd5992..ba52d3d66 100644 --- a/spec/support/corpus.rb +++ b/spec/support/corpus.rb @@ -274,23 +274,19 @@ def system(arguments) Transform = Mutant::Transform - boolean = Transform::Boolean.new - string = Transform::Primitive.new(String) - string_array = Transform::Array.new(string) - integration = Transform::Sequence.new( [ Transform::Hash.new( optional: [], required: [ - Transform::Hash::Key.new('exclude', string_array), - Transform::Hash::Key.new('integration', string), - Transform::Hash::Key.new('mutation_coverage', boolean), - Transform::Hash::Key.new('mutation_generation', boolean), - Transform::Hash::Key.new('name', string), - Transform::Hash::Key.new('namespace', string), - Transform::Hash::Key.new('repo_ref', string), - Transform::Hash::Key.new('repo_uri', string) + Transform::Hash::Key.new('exclude', Transform::STRING_ARRAY), + Transform::Hash::Key.new('integration', Transform::STRING), + Transform::Hash::Key.new('mutation_coverage', Transform::BOOLEAN), + Transform::Hash::Key.new('mutation_generation', Transform::BOOLEAN), + Transform::Hash::Key.new('name', Transform::STRING), + Transform::Hash::Key.new('namespace', Transform::STRING), + Transform::Hash::Key.new('repo_ref', Transform::STRING), + Transform::Hash::Key.new('repo_uri', Transform::STRING) ] ), Transform::Hash::Symbolize.new,