42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/wordmove/sql_adapter/default.rb', line 42
def serialized_replace!(source_field, dest_field)
length_delta = source_field.length - dest_field.length
sql_content.gsub!(/s:(\d+):([\\]*['"])(.*?)\2;/) do |_|
length = Regexp.last_match(1).to_i
delimiter = Regexp.last_match(2)
string = Regexp.last_match(3)
string.gsub!(/#{Regexp.escape(source_field)}/) do |_|
length -= length_delta
dest_field
end
%(s:#{length}:#{delimiter}#{string}#{delimiter};)
end
end
|