Sha256: 12bfb792995c1d18749d5049decf779e300ee093301fafc8453ba69ed61e5d9a
Contents?: true
Size: 1.69 KB
Versions: 1
Compression:
Stored size: 1.69 KB
Contents
== Regex::Replacer Regex can also be used to do search and replace across multiple strings or IO objects, includeing files. require 'regex' To perform search and replace procedure we create a Regex::Replacer object. The constructor method takes a Hash of options which set universal parameters to apply to all search and replace rules. Usually, each individual rule will specify it's own options, so for this example we provide none. replacer = Regex::Replacer.new Rules are added via the #rule method. replacer.rule('World', 'Planet Earth') replacer.rule('!', '!!!') Rules are applied in the order they were defined. If there rules overlap in their effects this can be signifficant. Now, lets say we have that famous String, string = "Hello, World!" We use the #apply method to actually perform the substitutions. replacer.apply(string) The replacements occur in place. Since in this case we are performing the serach and replace on a String object, we can see the change has taken place. string.assert == "Hello, Planet Earth!!!" As we mentioned at the beginning, substitutions can be applied to IO objects in general, so long as they they can be reopended for writing. require 'stringio' io = StringIO.new("Hello, World!") replacer.apply(io) io.read.assert == "Hello, Planet Earth!!!" If +io+ were a File object, rather than a StringIO, the file would be changed on disk. As a precaution a backup file can be written with the name of file plus a '.bak' extension in the same directory as the file. To turn on the backup option, either supply it as an option to the constructor, or set it via the writer method. replacer.backup = true (TODO: Example of a file search and replace.)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
regex-1.1.1 | qed/replacer.rdoc |