Class: LeafletHelper::StringTemplate

Inherits:
Object
  • Object
show all
Defined in:
lib/leaflet_helper/string_template.rb

Instance Method Summary collapse

Constructor Details

#initialize(a_string) ⇒ StringTemplate

Returns a new instance of StringTemplate.



7
8
9
# File 'lib/leaflet_helper/string_template.rb', line 7

def initialize(a_string)
  @text = a_string
end

Instance Method Details

#to_sObject



16
17
18
# File 'lib/leaflet_helper/string_template.rb', line 16

def to_s
  @text
end

#use(variables) ⇒ Object Also known as: <<



11
12
13
# File 'lib/leaflet_helper/string_template.rb', line 11

def use(variables)
  @text.gsub(/(\\\{)|((?<!\\)(?:\\\\)*#{variables.map{|v|"\\{#{Regexp.escape(v[0])}\\}"}.join('|')})/i){|s| s[0] == '\\' ? s[1] : variables.fetch(s[1..-2], ( s[1..-2].respond_to?(:to_sym) ? variables.fetch(s[1..-2].to_sym, nil) : nil))}
end