module Klam::Template
Public Instance Methods
render_string(template, *args)
click to toggle source
# File lib/klam/template.rb, line 3 def render_string(template, *args) args = join_array_arguments(args) segments = segment_string(template) segments.map do |segment| if segment =~ /^\$(\d+)$/ args[$1.to_i - 1] else segment end end.join end
Private Instance Methods
join_array_arguments(args)
click to toggle source
# File lib/klam/template.rb, line 17 def join_array_arguments(args) args.map do |arg| if arg.kind_of?(Array) arg.join(',') else arg end end end
segment_string(str)
click to toggle source
# File lib/klam/template.rb, line 26 def segment_string(str) segments = [] pre, placeholder, str = str.partition(/\$\d+/) until placeholder.empty? && str.empty? segments << pre segments << placeholder pre, placeholder, str = str.partition(/\$\d+/) end segments << pre segments end