aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/coders/yaml_column.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/coders/yaml_column.rb')
-rw-r--r--activerecord/lib/active_record/coders/yaml_column.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/coders/yaml_column.rb b/activerecord/lib/active_record/coders/yaml_column.rb
index 9b0df119ef..fcecc11aba 100644
--- a/activerecord/lib/active_record/coders/yaml_column.rb
+++ b/activerecord/lib/active_record/coders/yaml_column.rb
@@ -14,16 +14,21 @@ module ActiveRecord
@object_class = object_class
end
+ def dump(obj)
+ YAML.dump obj
+ end
+
def load(yaml)
return yaml unless yaml.is_a?(String) && yaml =~ /^---/
begin
- obj = YAML::load(yaml)
+ obj = YAML.load(yaml)
unless obj.is_a?(object_class) || obj.nil?
raise SerializationTypeMismatch,
"Attribute was supposed to be a #{object_class}, but was a #{obj.class}"
end
+ obj
rescue *RESCUE_ERRORS
yaml
end