Skip to Content Skip to Search

class ActiveRecord::Coders::YAMLColumn::SafeCoder

Public class methods

new(permitted_classes: [], unsafe_load: nil)

Permalink
Source code GitHub
# File activerecord/lib/active_record/coders/yaml_column.rb, line 9
def initialize(permitted_classes: [], unsafe_load: nil)
  @permitted_classes = permitted_classes
  @unsafe_load = unsafe_load
end

Public instance methods

dump(object)

Permalink
Source code GitHub
# File activerecord/lib/active_record/coders/yaml_column.rb, line 15
def dump(object)
  if @unsafe_load.nil? ? ActiveRecord.use_yaml_unsafe_load : @unsafe_load
    ::YAML.dump(object)
  else
    ::YAML.safe_dump(
      object,
      permitted_classes: @permitted_classes + ActiveRecord.yaml_column_permitted_classes,
      aliases: true,
    )
  end
end

load(payload)

Permalink
Source code GitHub
# File activerecord/lib/active_record/coders/yaml_column.rb, line 33
def load(payload)
  if @unsafe_load.nil? ? ActiveRecord.use_yaml_unsafe_load : @unsafe_load
    YAML.unsafe_load(payload)
  else
    YAML.safe_load(
      payload,
      permitted_classes: @permitted_classes + ActiveRecord.yaml_column_permitted_classes,
      aliases: true,
    )
  end
end

Definition files