module Legion::Transport::Common
Public Instance Methods
channel()
click to toggle source
rubocop:enable all
# File lib/legion/transport/common.rb, line 50 def channel @channel ||= Legion::Transport::Connection.channel end
channel_open?()
click to toggle source
# File lib/legion/transport/common.rb, line 10 def channel_open? channel.open? end
close()
click to toggle source
# File lib/legion/transport/common.rb, line 60 def close Legion::Transport.logger.error 'close called' Legion::Transport.logger.warn 'close called, but method is called close!' close! end
close!()
click to toggle source
# File lib/legion/transport/common.rb, line 54 def close! Legion::Transport.logger.error 'close! called' false unless Legion::Transport::Connection.channel_open? Legion::Transport::Connection.channel.close end
deep_merge(original, new)
click to toggle source
rubocop:disable all
# File lib/legion/transport/common.rb, line 27 def deep_merge(original, new) {} unless original.is_a?(Hash) && new.is_a?(Hash) original unless new.is_a? Hash new unless original.is_a? Hash new if original.nil? || original.empty? original if new.nil? || new.empty? new.each do |k, v| unless original.key?(k) original[k] = v next end original[k.to_sym] = if [original[k.to_sym], new[k.to_sym]].all? { |a| a.is_a? Hash } deep_merge(original[k], new[k]) else new[k] end end original end
generate_consumer_tag(lex_name: nil, runner_name: nil, thread: Thread.current.object_id)
click to toggle source
# File lib/legion/transport/common.rb, line 66 def generate_consumer_tag(lex_name: nil, runner_name: nil, thread: Thread.current.object_id) tag = "#{Legion::Settings[:client][:name]}_" tag.concat("#{lex_name}_") unless lex_name.nil? tag.concat("#{runner_name}_") unless runner_name.nil? tag.concat("#{thread}_") tag.concat(SecureRandom.hex) tag end
open_channel(_options = {})
click to toggle source
# File lib/legion/transport/common.rb, line 6 def open_channel(_options = {}) @channel = Legion::Transport::Connection.channel end
options_builder(first, *args)
click to toggle source
# File lib/legion/transport/common.rb, line 14 def options_builder(first, *args) final_options = nil args.each do |option| final_options = if final_options.nil? deep_merge(first, option) else deep_merge(final_options, option) end end final_options end