lib/merb-helpers/form/builder.rb in merb-helpers-1.0.4 vs lib/merb-helpers/form/builder.rb in merb-helpers-1.0.5
- old
+ new
@@ -241,13 +241,18 @@
def options(col, text_meth, value_meth, sel, b = nil)
([b] + col.map do |item|
text_meth = text_meth && item.respond_to?(text_meth) ? text_meth : :last
value_meth = value_meth && item.respond_to?(value_meth) ? value_meth : :first
-
- text = item.is_a?(String) ? item : item.send(text_meth)
+
+ text = item.is_a?(String) ? item : item.send(text_meth)
value = item.is_a?(String) ? item : item.send(value_meth)
+
+ unless Merb.disabled?(:merb_helper_escaping)
+ text = Merb::Parse.escape_xml(text)
+ value = Merb::Parse.escape_xml(value)
+ end
option_attrs = {:value => value}
if sel.is_a?(Array)
option_attrs.merge!(:selected => "selected") if value.in? sel
else
@@ -269,10 +274,15 @@
def control_name(method)
@obj ? "#{@name}[#{method}]" : method
end
def control_value(method)
- @obj ? @obj.send(method) : @origin.params[method]
+ value = @obj ? @obj.send(method) : @origin.params[method]
+ if Merb.disabled?(:merb_helper_escaping)
+ value.to_s
+ else
+ Merb::Parse.escape_xml(value.to_s)
+ end
end
def add_css_class(attrs, new_class)
attrs[:class] = attrs[:class] ? "#{attrs[:class]} #{new_class}" : new_class
end