Class: Mumukit::Randomizer

Inherits:
Object
  • Object
show all
Defined in:
lib/mumukit/randomizer.rb,
lib/mumukit/randomizer/version.rb

Defined Under Namespace

Modules: Randomization

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(randomizations) ⇒ Randomizer

Returns a new instance of Randomizer.



3
4
5
# File 'lib/mumukit/randomizer.rb', line 3

def initialize(randomizations)
  @randomizations = randomizations
end

Class Method Details

.parse(randomizations) ⇒ Object



15
16
17
# File 'lib/mumukit/randomizer.rb', line 15

def self.parse(randomizations)
  new randomizations.with_indifferent_access.transform_values { |it| Mumukit::Randomizer::Randomization.parse it }
end

Instance Method Details

#randomize!(field, seed) ⇒ Object



11
12
13
# File 'lib/mumukit/randomizer.rb', line 11

def randomize!(field, seed)
  with_seed(seed).inject(field) { |result, (replacee, replacer)| result.gsub "$#{replacee}", replacer.to_s }
end

#with_seed(seed) ⇒ Object



7
8
9
# File 'lib/mumukit/randomizer.rb', line 7

def with_seed(seed)
  @randomizations.each_with_index.map { |(key, value), index| [key, value.get(seed + index)] }
end