Class: Spree::LogEntry

Inherits:
Base
  • Object
show all
Defined in:
app/models/spree/log_entry.rb

Defined Under Namespace

Classes: BadAlias, DisallowedClass

Constant Summary collapse

CORE_PERMITTED_CLASSES =

Classes used in core that can be present in serialized details

Users can add their own classes in ‘Spree::Config#log_entry_permitted_classes`.

[
  ActiveMerchant::Billing::Response,
  ActiveSupport::TimeWithZone,
  Time,
  ActiveSupport::TimeZone
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

display_includes

Methods included from Core::Permalinks

#generate_permalink, #save_permalink

Class Method Details

.permitted_classesObject



66
67
68
# File 'app/models/spree/log_entry.rb', line 66

def self.permitted_classes
  CORE_PERMITTED_CLASSES + Spree::Config.log_entry_permitted_classes.map(&:constantize)
end

Instance Method Details

#parsed_detailsObject



72
73
74
75
76
77
78
79
80
81
82
# File 'app/models/spree/log_entry.rb', line 72

def parsed_details
  @details ||= YAML.safe_load(
    details,
    permitted_classes: self.class.permitted_classes,
    aliases: Spree::Config.log_entry_allow_aliases
  )
rescue Psych::DisallowedClass => e
  raise DisallowedClass.new(psych_exception: e)
rescue Psych::BadAlias => e
  raise BadAlias.new(psych_exception: e)
end