Sha256: 2d90e1d9271242e349b9ea66f75193584a11245f4aa484a50d0b9d5f3ec455e6
Contents?: true
Size: 1.07 KB
Versions: 3
Compression:
Stored size: 1.07 KB
Contents
# Example: # RosettaQueue::Filters.define do |filter_for| # filter_for.receiving { |message| JSON.parse(message) } # filter_for.sending { |hash| hash.to_json } # end module RosettaQueue class Filters class << self def define yield self end def reset @receiving = nil @sending = nil end def receiving(&receiving_filter) @receiving = receiving_filter end def sending(&sending_filter) @sending = sending_filter end def process_sending(message) return message unless @sending @sending.call(message) end def process_receiving(message) return message unless @receiving @receiving.call(message) end def safe_process_sending(message) safe(:process_sending, message) end def safe_process_receiving(message) safe(:process_receiving, message) end private def safe(filter_call, message) send(filter_call) rescue StandardError message end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rosetta_queue-0.5.2 | lib/rosetta_queue/filters.rb |
rosetta_queue-0.5.0 | lib/rosetta_queue/filters.rb |
rosetta_queue-0.4.0 | lib/rosetta_queue/filters.rb |