Module: ReputationSystem::EvaluationMethods::ClassMethods

Defined in:
lib/reputation_system/evaluation_methods.rb

Instance Method Summary collapse

Instance Method Details

#evaluated_by(reputation_name, source, *args) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/reputation_system/evaluation_methods.rb', line 20

def evaluated_by(reputation_name, source, *args)
  scope = args.first
  srn = ReputationSystem::Network.get_scoped_reputation_name(self.name, reputation_name, scope)
  source_type = source.class.name
  options = {}
  options[:select] ||= sanitize_sql_array(["%s.*", self.table_name])
  options[:joins] = sanitize_sql_array(["JOIN rs_evaluations ON %s.id = rs_evaluations.target_id AND rs_evaluations.target_type = ? AND rs_evaluations.reputation_name = ? AND rs_evaluations.source_id = ? AND rs_evaluations.source_type = ?", self.name, srn.to_s, source.id, source_type])
  options[:joins] = sanitize_sql_array([options[:joins], self.table_name])
  joins(options[:joins]).select(options[:select])
end