string_enumerator

You provide a list of replacements (“replace [color] with red and blue”) and then call the #enumerate method on a String:

?> u = StringEnumerator.new(:color => [ 'red', 'blue' ])
=> #<StringEnumerator...>
?> u.enumerate 'http://example.com/[color]'
=> [ 'http://example.com/blue', 'http://example.com/red' ]

The start and end of placeholders are marked with “[” and “]” (although you can override this if you want, see the tests.)

Multiple placeholders per string

You can define as many replacements as you want, which will exponentially increase the final number of enumerations

?> u2 = StringEnumerator.new(:color => [ 'red', 'blue' ], :taste => [ 'savory', 'sweet' ])
=> #<StringEnumerator...>
?> u2.enumerate 'http://example.com/[color]/[taste]'
=> [ 'http://example.com/blue/savory', 'http://example.com/blue/sweet', 'http://example.com/red/savory', 'http://example.com/red/sweet' ]

Thanks to

Copyright 2011 Seamus Abshere