Skip to content

Commit

Permalink
Add repeating transforms as constants
Browse files Browse the repository at this point in the history
  • Loading branch information
mbj committed Nov 22, 2020
1 parent 7934646 commit 05eae35
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 25 deletions.
19 changes: 6 additions & 13 deletions lib/mutant/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
),
Expand Down
6 changes: 6 additions & 0 deletions lib/mutant/transform.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
20 changes: 8 additions & 12 deletions spec/support/corpus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 05eae35

Please sign in to comment.