=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