class Ruboty::FlexibleAlias::Alias
Public Class Methods
new(original, transformed)
click to toggle source
# File lib/ruboty/flexible_alias/alias.rb, line 4 def initialize(original, transformed) @original = original @transformed = transformed compile! end
Public Instance Methods
compile!()
click to toggle source
# File lib/ruboty/flexible_alias/alias.rb, line 11 def compile! @compiled = [] @original.gsub(/([^\)]*)\((digit|alnum|graph)\)([^\(]*)/) do |match| match = Regexp.last_match left = match[1] keyword = match[2] right = match[3] @compiled += [Regexp.escape(left), '([[:', keyword, ':]]+)', Regexp.escape(right)] end @compiled += [Regexp.escape(@original)] if @compiled.empty? @compiled = Regexp.compile(@compiled.join('')) end
tranfrom(original)
click to toggle source
# File lib/ruboty/flexible_alias/alias.rb, line 27 def tranfrom(original) match = original.match(@compiled) if match @transformed.gsub(/\$([0-9]+)/) do |*| match[Regexp.last_match[1].to_i] end end end