module CoreExtensions module Regexp # A wrapper module to namespace/isolate the Regexp#examples and Regexp#random_example # monkey patches. # No core classes are extended in any way, other than the above two methods. module Examples def examples(**config_options) RegexpExamples::Config.with_configuration(config_options) do examples_by_method(:result) end end def random_example(**config_options) RegexpExamples::Config.with_configuration(config_options) do examples_by_method(:random_result).sample end end private def examples_by_method(method) full_examples = RegexpExamples.generic_map_result( RegexpExamples::Parser.new(source, options).parse, method ) RegexpExamples::BackReferenceReplacer.new.substitute_backreferences(full_examples) end end end end Regexp.include(CoreExtensions::Regexp::Examples)