class Merit::BaseTargetFinder
Public Class Methods
find(*args)
click to toggle source
# File lib/merit/base_target_finder.rb, line 3 def self.find(*args) new(*args).find end
new(rule, action)
click to toggle source
# File lib/merit/base_target_finder.rb, line 7 def initialize(rule, action) @rule = rule @action = action end
Public Instance Methods
find()
click to toggle source
# File lib/merit/base_target_finder.rb, line 12 def find get_target_from_database || reanimate_target_from_action rescue => e Rails.logger.warn "[merit] no target found: #{e}. #{caller.first}" end
get_target_from_database()
click to toggle source
# File lib/merit/base_target_finder.rb, line 18 def get_target_from_database model_class.find_by_id(@action.target_id) end
model_class()
click to toggle source
# File lib/merit/base_target_finder.rb, line 22 def model_class klass_name = (@rule.model_name || @action.target_model).singularize klass_name.camelize.constantize end
reanimate_target_from_action()
click to toggle source
# File lib/merit/base_target_finder.rb, line 27 def reanimate_target_from_action YAML.load(@action.target_data) end