lib/fusuma.rb in fusuma-2.0.4 vs lib/fusuma.rb in fusuma-2.0.5

- old
+ new

@@ -140,22 +140,29 @@ request_context = context_events.each_with_object({}) do |e, results| results[e.record.name] = e.record.value end main_events.sort_by! { |e| e.record.trigger_priority } - condition = nil + matched_condition = nil matched_context = nil event = main_events.find do |main_event| matched_context = Config::Searcher.find_context(request_context) do - condition, index_record = Config::Searcher.find_condition do + matched_condition, modified_record = Config::Searcher.find_condition do main_event.record.merge(records: modifiers.map(&:record)) end - main_event if index_record + if matched_condition && modified_record + main_event.record = modified_record + else + matched_condition, = Config::Searcher.find_condition do + Config.search(main_event.record.index) && + Config.find_execute_key(main_event.record.index) + end + end end end return if event.nil? - [condition, matched_context, event] + [matched_condition, matched_context, event] end # @param event [Plugin::Events::Event] def execute(condition, context, event) return unless event