class ConditionalMessages::FindMessage
Attributes
category[R]
context_holder[R]
Public Class Methods
for(*args)
click to toggle source
# File lib/conditional_messages/find_message.rb, line 4 def self.for(*args) new(*args).find_message end
new(context_holder, category)
click to toggle source
# File lib/conditional_messages/find_message.rb, line 10 def initialize(context_holder, category) @context_holder = context_holder @category = category end
Public Instance Methods
find_message()
click to toggle source
# File lib/conditional_messages/find_message.rb, line 15 def find_message applied_messages = category.apply(context_holder) messages_where_all_required_rules_pass = applied_messages.select(&:all_required_rules_pass?) by_score = messages_where_all_required_rules_pass.group_by(&:score) winners = by_score.sort_by { |score, messages| score }.last.last winners.sample end