proc
options = { transform: -> s {"<#{s}>"}, upcase: true } filters = [] if options[:upcase] filters << -> string { string.upcase } end if options[:transform] filters << options[:transform] # callback function end results = %w(foo bar) filters.each do |filter| results = results.map(&filter) end puts results # <FOO> # <BAR>