Module: ReputationSystem::EvaluationMethods
- Defined in:
- lib/reputation_system/evaluation_methods.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #add_evaluation(reputation_name, value, source, *args) ⇒ Object
- #add_or_update_evaluation(reputation_name, value, source, *args) ⇒ Object
- #decrease_evaluation(reputation_name, value, source, *args) ⇒ Object
- #delete_evaluation(reputation_name, source, *args) ⇒ Object
- #delete_evaluation!(reputation_name, source, *args) ⇒ Object
- #evaluators_for(reputation_name, *args) ⇒ Object
- #has_evaluation?(reputation_name, source, *args) ⇒ Boolean
- #increase_evaluation(reputation_name, value, source, *args) ⇒ Object
- #update_evaluation(reputation_name, value, source, *args) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
32 33 34 |
# File 'lib/reputation_system/evaluation_methods.rb', line 32 def self.included(klass) klass.extend ClassMethods end |
Instance Method Details
#add_evaluation(reputation_name, value, source, *args) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/reputation_system/evaluation_methods.rb', line 49 def add_evaluation(reputation_name, value, source, *args) scope = args.first srn = ReputationSystem::Network.get_scoped_reputation_name(self.class.name, reputation_name, scope) process = ReputationSystem::Network.get_reputation_def(self.class.name, srn)[:aggregated_by] evaluation = ReputationSystem::Evaluation.create_evaluation(srn, value, source, self) rep = ReputationSystem::Reputation.find_or_create_reputation(srn, self, process) ReputationSystem::Reputation.update_reputation_value_with_new_source(rep, evaluation, 1, process) end |
#add_or_update_evaluation(reputation_name, value, source, *args) ⇒ Object
69 70 71 72 73 74 75 76 |
# File 'lib/reputation_system/evaluation_methods.rb', line 69 def add_or_update_evaluation(reputation_name, value, source, *args) srn, evaluation = find_srn_and_evaluation(reputation_name, source, args.first) if ReputationSystem::Evaluation.exists? :reputation_name => srn, :source_id => source.id, :source_type => source.class.name, :target_id => self.id, :target_type => self.class.name self.update_evaluation(reputation_name, value, source, *args) else self.add_evaluation(reputation_name, value, source, *args) end end |
#decrease_evaluation(reputation_name, value, source, *args) ⇒ Object
96 97 98 |
# File 'lib/reputation_system/evaluation_methods.rb', line 96 def decrease_evaluation(reputation_name, value, source, *args) change_evaluation_value_by(reputation_name, -value, source, *args) end |
#delete_evaluation(reputation_name, source, *args) ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'lib/reputation_system/evaluation_methods.rb', line 78 def delete_evaluation(reputation_name, source, *args) srn, evaluation = find_srn_and_evaluation(reputation_name, source, args.first) if evaluation !!delete_evaluation_without_validation(srn, evaluation) else false end end |
#delete_evaluation!(reputation_name, source, *args) ⇒ Object
87 88 89 90 |
# File 'lib/reputation_system/evaluation_methods.rb', line 87 def delete_evaluation!(reputation_name, source, *args) srn, evaluation = find_srn_and_evaluation!(reputation_name, source, args.first) delete_evaluation_without_validation(srn, evaluation) end |
#evaluators_for(reputation_name, *args) ⇒ Object
43 44 45 46 47 |
# File 'lib/reputation_system/evaluation_methods.rb', line 43 def evaluators_for(reputation_name, *args) scope = args.first srn = ReputationSystem::Network.get_scoped_reputation_name(self.class.name, reputation_name, scope) self.evaluations.for(srn).includes(:source).map(&:source) end |
#has_evaluation?(reputation_name, source, *args) ⇒ Boolean
36 37 38 39 40 |
# File 'lib/reputation_system/evaluation_methods.rb', line 36 def has_evaluation?(reputation_name, source, *args) scope = args.first srn = ReputationSystem::Network.get_scoped_reputation_name(self.class.name, reputation_name, scope) !!ReputationSystem::Evaluation.find_by_reputation_name_and_source_and_target(srn, source, self) end |
#increase_evaluation(reputation_name, value, source, *args) ⇒ Object
92 93 94 |
# File 'lib/reputation_system/evaluation_methods.rb', line 92 def increase_evaluation(reputation_name, value, source, *args) change_evaluation_value_by(reputation_name, value, source, *args) end |
#update_evaluation(reputation_name, value, source, *args) ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/reputation_system/evaluation_methods.rb', line 58 def update_evaluation(reputation_name, value, source, *args) srn, evaluation = find_srn_and_evaluation!(reputation_name, source, args.first) oldValue = evaluation.value evaluation.value = value evaluation.save! process = ReputationSystem::Network.get_reputation_def(self.class.name, srn)[:aggregated_by] rep = ReputationSystem::Reputation.find_by_reputation_name_and_target(srn, self) newSize = rep..size ReputationSystem::Reputation.update_reputation_value_with_updated_source(rep, evaluation, oldValue, newSize, 1, process) end |