Class: Orthoses::Paranoia
- Inherits:
-
Object
- Object
- Orthoses::Paranoia
- Defined in:
- lib/orthoses/paranoia.rb,
lib/orthoses/paranoia/version.rb
Constant Summary collapse
- VERSION =
"1.0.0"
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(loader) ⇒ Paranoia
constructor
A new instance of Paranoia.
Constructor Details
#initialize(loader) ⇒ Paranoia
Returns a new instance of Paranoia.
8 9 10 |
# File 'lib/orthoses/paranoia.rb', line 8 def initialize(loader) @loader = loader end |
Instance Method Details
#call ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/orthoses/paranoia.rb', line 12 def call acts_as_paranoid = CallTracer::Lazy.new store = acts_as_paranoid.trace("ActiveRecord::Base.acts_as_paranoid") do @loader.call end acts_as_paranoid.captures.each do |capture| base_name = Utils.module_name(capture.method.receiver) or next relation_class = "#{base_name}::ActiveRecord_Relation" paranoia_instance_methods = "::Paranoia::InstanceMethods[#{base_name}]" paranoia_class_methods = "::Paranoia::ClassMethods[#{base_name}, #{relation_class}]" store[base_name] << "include #{paranoia_instance_methods}" store[base_name] << "extend #{paranoia_class_methods}" store[relation_class] << "include #{paranoia_class_methods}" store["#{base_name}::ActiveRecord_Associations_CollectionProxy"] << "include #{paranoia_class_methods}" end store end |