1
0
Fork 0

Clarify mapper interpolation

Dieser Commit ist enthalten in:
Angus McLeod 2020-04-16 13:33:42 +10:00
Ursprung ca7af31562
Commit ba7c50b40f

Datei anzeigen

@ -179,27 +179,30 @@ class CustomWizard::Mapper
end end
def interpolate(string) def interpolate(string)
result = string.gsub(/u\{(.*?)\}/) do |match| string.gsub!(/u\{(.*?)\}/) do |match|
result = '' result = ''
result = user.send($1) if USER_FIELDS.include?($1) result = user.send($1) if USER_FIELDS.include?($1)
result = user.user_profile.send($1) if PROFILE_FIELDS.include?($1) result = user.user_profile.send($1) if PROFILE_FIELDS.include?($1)
result result
end end
result = result.gsub(/w\{(.*?)\}/) { |match| recurse(data, [*$1.split('.')]) }
result.gsub(/v\{(.*?)\}/) do |match| string.gsub(/v\{(.*?)\}/) do |match|
attrs = $1.split(':') attrs = $1.split(':')
key = attrs.first key = attrs.first
format = attrs.length > 1 ? attrs.last : nil value = data[key]
val = nil format = attrs.last if attrs.length > 1
result = nil
if key == 'time' if key == 'time'
time_format = format.present? ? format : "%B %-d, %Y" time_format = value.present? ? value : "%B %-d, %Y"
val = Time.now.strftime(time_format) return Time.now.strftime(time_format)
end
if value.present?
return recurse(value, [*$1.split('.')])
end end
val result
end end
end end