module Ownership::GlobalMethods
Private Instance Methods
owner(*args, &block)
click to toggle source
Calls superclass method
# File lib/ownership/global_methods.rb, line 5 def owner(*args, &block) return super if is_a?(Method) # hack for pry owner = args[0] # same error message as Ruby raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 1)" if args.size != 1 raise ArgumentError, "Missing block" unless block_given? previous_value = Thread.current[:ownership_owner] begin Thread.current[:ownership_owner] = owner begin # callbacks if Ownership.around_change Ownership.around_change.call(owner, block) else block.call end rescue Exception => e e.owner = owner raise end ensure Thread.current[:ownership_owner] = previous_value end end