# frozen_string_literal: true module Micro module Observers module Events def self.[](value, default: Utils::EMPTY_ARRAY) values = Utils.compact_array(value) values.empty? ? default : values end NO_EVENTS_MSG = 'no events (expected at least 1)'.freeze def self.fetch(value) values = self[value] return values unless values.empty? raise ArgumentError, NO_EVENTS_MSG end private_constant :NO_EVENTS_MSG end end end