Class: Exercism::Templates::EachToMap

Inherits:
Template
  • Object
show all
Defined in:
lib/exercism-analysis/templates/each_to_map.rb

Constant Summary

Constants inherited from Template

Template::BLACKLIST

Instance Method Summary collapse

Methods inherited from Template

render

Constructor Details

#initialize(mutation) ⇒ EachToMap

Returns a new instance of EachToMap.



6
7
8
# File 'lib/exercism-analysis/templates/each_to_map.rb', line 6

def initialize(mutation)
  @mutation =  mutation
end

Instance Method Details

#each_to_map_substitutionObject



21
22
23
24
# File 'lib/exercism-analysis/templates/each_to_map.rb', line 21

def each_to_map_substitution
  invocation = [@mutation.iter.value, 'map'] - BLACKLIST
  CodeMiner::Substitution::Value.new(@mutation.iter.token, invocation.join('.'), @mutation.iter.column)
end

#mutation_substitutionsObject



15
16
17
18
19
# File 'lib/exercism-analysis/templates/each_to_map.rb', line 15

def mutation_substitutions
  @mutation.mutators.map do |mutator|
    CodeMiner::Substitution::Value.new(mutator.exp, mutator.exp.body.src)
  end
end

#renderObject



10
11
12
13
# File 'lib/exercism-analysis/templates/each_to_map.rb', line 10

def render
  [padding(@mutation.iter), "#{@mutation.variable.value} = ",
  CodeMiner::Substitution.new(@mutation.iter).substitute(*mutation_substitutions, each_to_map_substitution)].join
end