56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/string_tools.rb', line 56
def accepts_non_utf8_params(*args)
args.each do |arg|
next unless arg.is_a?(Symbol) || arg.is_a?(::String)
arg = arg.to_sym
class_eval do
before_filter { |controller|
decode = lambda { |s|
if s.is_a?(Hash)
s.to_a.map { |k, v| [k, StringTools.to_utf8(v)]}.to_hash
elsif s.is_a?(Array)
s.map { |v| StringTools.to_utf8(v) }
else
StringTools.to_utf8(s)
end
}
controller.params[arg] = decode.call(controller.params[arg]) unless controller.params[arg].nil?
}
end
end
end
|