fjord/main.rb
2024-03-30 22:05:45 +09:00

37 lines
637 B
Ruby

module Effects
def self.reverse
lambda do |words|
words.split(' ').map(&:reverse).join(' ')
end
end
def self.echo(rate)
lambda do |words|
words.each_char.map { |c| c == ' ' ? c : c * rate }.join
end
end
def self.loud(level)
lambda do |words|
words.split(' ').map { |word| word.upcase + '!' * level }.join(' ')
end
end
end
class WordSynth
def initialize
@effects = []
end
def add_effect(effect)
@effects << effect
end
def play(original_words)
words = original_words
@effects.each do |effect|
words = effect.call(words)
end
words
end
end