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