class Patter::Pattern
Public Class Methods
new(pattern, source_provider = SourceProvider.instance)
click to toggle source
# File lib/patter/pattern.rb, line 19 def initialize(pattern, source_provider = SourceProvider.instance) @pattern = pattern @source_provider = source_provider end
Public Instance Methods
to_s()
click to toggle source
# File lib/patter/pattern.rb, line 24 def to_s @pattern.gsub(/\{([#{TAGS.keys.join}])(:(\w+))?\}/) do tag, modifiers = $1, $3 source = @source_provider.get_source(TAGS[tag]) next source.get_sample if !modifiers re = /([#{MODIFIERS.keys.join}])|([0-9]+)/ chain = [] n = 1 modifiers.split(re).reject(&:empty?).each do |modifier| if modifier =~ /([0-9]+)/ n = $1.to_i end if MODIFIERS[modifier] chain << MODIFIERS[modifier] end end source.get_samples(n).map do |sample| sample.transform(chain) end.join end end