Sha256: 153f2792737669a5c91c35139eb31bbd24a2451c92a4fff226845cf1fe3afcbe

Contents?: true

Size: 871 Bytes

Versions: 18

Compression:

Stored size: 871 Bytes

Contents

module RailsOps
  module ModelMixins
    # 108386: This fixes an issue where operation models could not be marshalled
    #  when there is an attached parent_op, as the parent_op may contain hashes
    #  with default procs which is not supported by `Marshal.dump`. This mixin
    #  therefore excludes this instance variable from being dumped and loaded.
    module Marshalling
      UNMARSHALED_VARIABLES = %i[@parent_op].freeze

      extend ActiveSupport::Concern

      def marshal_dump
        instance_variables.reject { |m| UNMARSHALED_VARIABLES.include? m }.each_with_object({}) do |attr, vars|
          vars[attr] = instance_variable_get(attr)
        end
      end

      def marshal_load(vars)
        vars.each do |attr, value|
          instance_variable_set(attr, value) unless UNMARSHALED_VARIABLES.include?(attr)
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
rails_ops-1.7.1 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.7.0 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.6.0 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.6.0.rc1 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.6.0.rc0 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.5.8 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.5.7 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.5.6 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.5.5 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.5.4 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.5.0 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.8 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.7 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.6 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.5 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.4 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.3 lib/rails_ops/model_mixins/marshalling.rb
rails_ops-1.4.2 lib/rails_ops/model_mixins/marshalling.rb