fjord/main.rb

38 lines
637 B
Ruby
Raw Normal View History

2024-03-30 22:05:45 +09:00
module Effects
def self.reverse
lambda do |words|
words.split(' ').map(&:reverse).join(' ')
end
end
2024-03-29 22:34:24 +09:00
2024-03-30 22:05:45 +09:00
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
2024-03-29 22:34:24 +09:00
end
2024-03-30 22:05:45 +09:00
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
2024-03-16 22:40:05 +09:00
end