Module: Udongo::EmailVarsParser
- Defined in:
- lib/udongo/email_vars_parser.rb
Instance Method Summary collapse
- #replace_ifs(content, vars) ⇒ Object
- #replace_vars(content, vars, conditionals_allowed = true, prefix: nil) ⇒ Object
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 |