module Protector::Adapters::ActiveRecord
ActiveRecord
adapter
Public Class Methods
activate!()
click to toggle source
YIP YIP! Monkey-Patch the ActiveRecord
.
# File lib/protector/adapters/active_record.rb, line 15 def self.activate! return false unless defined?(::ActiveRecord) ::ActiveRecord::Base.send :include, Protector::Adapters::ActiveRecord::Base ::ActiveRecord::Base.send :include, Protector::Adapters::ActiveRecord::Validations ::ActiveRecord::Relation.send :include, Protector::Adapters::ActiveRecord::Relation ::ActiveRecord::Associations::SingularAssociation.send :include, Protector::Adapters::ActiveRecord::Association ::ActiveRecord::Associations::SingularAssociation.send :include, Protector::Adapters::ActiveRecord::SingularAssociation ::ActiveRecord::Associations::CollectionAssociation.send :include, Protector::Adapters::ActiveRecord::Association ::ActiveRecord::Associations::Preloader.send :include, Protector::Adapters::ActiveRecord::Preloader ::ActiveRecord::Associations::Preloader::Association.send :include, Protector::Adapters::ActiveRecord::Preloader::Association ::ActiveRecord::Associations::CollectionProxy.send :include, Protector::Adapters::ActiveRecord::CollectionProxy end
is?(instance)
click to toggle source
# File lib/protector/adapters/active_record.rb, line 33 def self.is?(instance) instance.is_a?(::ActiveRecord::Relation) || (instance.is_a?(Class) && instance < ActiveRecord::Base) end
modern?()
click to toggle source
# File lib/protector/adapters/active_record.rb, line 29 def self.modern? Gem::Version.new(::ActiveRecord::VERSION::STRING) >= Gem::Version.new('4.0.0') end
null_proc()
click to toggle source
# File lib/protector/adapters/active_record.rb, line 38 def self.null_proc # rubocop:disable IndentationWidth, EndAlignment @null_proc ||= if modern? proc { none } else proc { where('1=0') } end # rubocop:enable IndentationWidth, EndAlignment end