Sha256: 82ce2df41d39bf8e02cbee712a5ffdccc473b89fcf9bdc14b03cda99176b365c
Contents?: true
Size: 993 Bytes
Versions: 2
Compression:
Stored size: 993 Bytes
Contents
module Merit class TargetFinder < Struct.new(:rule, :action) def self.find(*args) self.new(*args).find end def find target = case rule.to when :itself; base_target when :action_user; action_user else; other_target end Array.wrap(target) end private def base_target BaseTargetFinder.find rule, action end def action_user user = Merit.user_model.find_by_id action.user_id if user.nil? user_model = Merit.user_model message = "[merit] no #{user_model} found with id #{action.user_id}" Rails.logger.warn message end user end def other_target base_target.send rule.to rescue NoMethodError message = "[merit] NoMethodError on" message << " `#{base_target.class.name}##{rule.to}`" message << " (called from Merit::TargetFinder#other_target)" Rails.logger.warn message end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
merit-1.5.0 | lib/merit/target_finder.rb |
merit-1.4.0 | lib/merit/target_finder.rb |