Module: Udongo::EmailVarsParser

Defined in:
lib/udongo/email_vars_parser.rb

Instance Method Summary collapse

Instance Method Details

#replace_ifs(content, vars) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/udongo/email_vars_parser.rb', line 16

def replace_ifs(content, vars)
  content.to_s.scan(/\[if\:([a-z0-9\._\-]+)\](.*?)\[\/if\]/mi).each do |match|
    if_var = match.first
    if_content = match.last

    if vars[if_var] || vars[if_var.to_sym]
      content.gsub!("[if:#{if_var}]#{if_content}[/if]", if_content)
    else
      content.gsub!("[if:#{if_var}]#{if_content}[/if]", '')
    end
  end

  content
end

#replace_vars(content, vars, conditionals_allowed = true, prefix: nil) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/udongo/email_vars_parser.rb', line 2

def replace_vars(content, vars, conditionals_allowed = true, prefix: nil)
  vars.each do |key, value|
    key = "#{prefix}.#{key}" if prefix.present?

    if value.respond_to?(:each)
      content = replace_vars(content, value, prefix: key)
    else
      content.gsub!(Regexp.new('\[' + key.to_s + '\]'), value.to_s)
    end
  end

  conditionals_allowed ? replace_ifs(content, vars) : content
end