class Psychic::RegexpTokenHandler

Public Class Methods

new(template, token_pattern, token_replacement) click to toggle source
# File lib/psychic/tokens.rb, line 5
def initialize(template, token_pattern, token_replacement)
  @template = template
  @token_pattern = token_pattern
  @token_replacement = token_replacement
end

Public Instance Methods

render(variables = {}) click to toggle source
# File lib/psychic/tokens.rb, line 15
def render(variables = {})
  @template.gsub(@token_pattern) do
    full_match = Regexp.last_match[0]
    key = Regexp.last_match[1]
    value = variables[key]
    value = @token_replacement.gsub('\\1', value.to_s) unless @token_replacement.nil?
    full_match.gsub(@token_pattern, value)
  end
end
tokens() click to toggle source
# File lib/psychic/tokens.rb, line 11
def tokens
  @template.scan(@token_pattern).flatten.uniq
end