Module: SublimeDSL::Tools::Helpers

Defined in:
lib/sublime_dsl/tools/helpers.rb

Overview

Helper methods to include in DSL blocks as needed.

Class Method Summary collapse

Class Method Details

.optimized_re(words) ⇒ Object

Return an optimized regexp string matching a word in words. Example:

include SublimeDSL::Tools::Helpers
list = %w(abs addr addrlong airy allcomb allperm anyalnum anyalpha anycntrl)
optimized_re(list)
  => 'a(bs|ddr(long)?|iry|ll(comb|perm)|ny(al(num|pha)|cntrl))'


16
17
18
19
20
21
# File 'lib/sublime_dsl/tools/helpers.rb', line 16

def optimized_re(words)
  root = Node.new('')
  root.add_children words
  root.reduce!
  root.to_re
end