Sha256: a5c5a0c11a5396fb6c1ddbd5457bb9d61ebb562b544ec80b85a6b95cd2f3a6b2
Contents?: true
Size: 709 Bytes
Versions: 2
Compression:
Stored size: 709 Bytes
Contents
# encoding: utf-8 module Excise class Base def initialize(string, pattern) @string = string @pattern = pattern @matches = pattern_expression.match(@string) @output = {} end def parse tokens.each_with_index do |key, index| @output[key.to_sym] = @matches[index+1] end @output end def tokens @pattern.scan(token_expression).flatten end def pattern_expression Regexp.new(@pattern.gsub(special_characters_expression, '\\\\\0').gsub(token_expression, "(\.+)")) end def token_expression /{([^{}\t\r\n]+)}/ end def special_characters_expression /[\\\^\$\*\+\.\?\(\)\[\]]/ end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
excise-0.1.1 | lib/excise/base.rb |
excise-0.1.0 | lib/excise/base.rb |