module Resonance::ClassMethods
Public Instance Methods
resonate(source, target: nil, action: nil, foreign_key: {})
click to toggle source
# File lib/resonance.rb, line 7 def resonate(source, target: nil, action: nil, foreign_key: {}) roles = [source, target, action] roles.each do |role| if role.nil? raise Resonance::ArgumentError, 'Passed argument is not a valid' end end foreign_key.tap do |key| key[:source] = :"#{source}_id" if key[:source].nil? key[:target] = :"target_#{target}_id" if key[:target].nil? end Resonance.define(*roles.map(&:to_s), foreign_key) end