fop_lang
Fop is a tiny expression language implemented in Ruby for text filtering and modification.
Examples
f = Fop("release-{N}.{N+1}.{N=0}")
puts f.apply("release-5.99.1")
=> "release-5.100.0"
puts f.apply("release-5")
=> nil
# doesn't match the pattern
f = Fop("release-{N=5}.{N+1}.{N=0}")
puts f.apply("release-4.99.1")
=> "release-5.100.0"
f = Fop("release-*{N=5}.{N+100}.{N=0}")
puts f.apply("release-foo-4.100.1")
=> "release-foo-5.200.0"
f = Fop("release-{N=5}.{N+1}.{N=0}{*=}")
puts f.apply("release-4.100.1.foo.bar")
=> "release-5.101.0"
f = Fop("{W=version}-{N=5}.{N+1}.{N=0}")
puts f.apply("release-4.100.1")
=> "version-5.101.0"