Sha256: 489601082b4d8c79fc2a8cec2f27d2bf327d6f52285bba83de0c5873a1c847de

Contents?: true

Size: 680 Bytes

Versions: 12

Compression:

Stored size: 680 Bytes

Contents

module Mobility
  module ActiveRecord
=begin

Backend resetter for ActiveRecord models. Adds hook on +reload+ event to
{Mobility::ActiveModel::BackendResetter}.

=end
    class BackendResetter < Mobility::ActiveModel::BackendResetter

      # @param [Class] model_class Class of model to which backend resetter will be applied
      def included(model_class)
        model_reset_method = @model_reset_method

        model_class.class_eval do
          mod = Module.new do
            define_method :reload do |*args|
              super(*args).tap { instance_eval(&model_reset_method) }
            end
          end
          include mod
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mobility-0.1.18 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.17 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.16 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.15 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.14 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.13 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.12 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.11 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.10 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.7 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.6 lib/mobility/active_record/backend_resetter.rb
mobility-0.1.5 lib/mobility/active_record/backend_resetter.rb