Sha256: 22d0abf0db265da5bc6ba408da88f3f4788b0f7577e28395c0015f9363f0d456

Contents?: true

Size: 1.37 KB

Versions: 4

Compression:

Stored size: 1.37 KB

Contents

module Legion
  module Transport
    module Messages
      class Task < Legion::Transport::Message
        def exchange
          if @options.key?(:exchange) && @options[:exchange].is_a?(String)
            Legion::Transport::Exchanges.new(@options[:exchange])
          else
            Legion::Transport::Exchanges::Task.new
          end
        end

        def message
          @options
        end

        def routing_key # rubocop:disable Metrics/AbcSize
          if @options.key? :routing_key
            @options[:routing_key]
          elsif @options[:conditions].is_a?(String) && @options[:conditions].length > 2
            'task.subtask.conditioner'
          elsif @options[:transformation].is_a?(String) && @options[:transformation].length > 2
            'task.subtask.transform'
          elsif @options[:queue].is_a?(String) && @options[:function].is_a?(String)
            "#{@options[:queue]}.#{@options[:function]}"
          elsif @options[:queue].is_a?(String) && @options[:function_name].is_a?(String)
            "#{@options[:queue]}.#{@options[:function_name]}"
          elsif @options[:queue].is_a?(String) && @options[:name].is_a?(String)
            "#{@options[:queue]}.#{@options[:name]}"
          end
        end

        def validate
          raise TypeError unless @options[:function].is_a? String

          @valid = true
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
legion-transport-1.2.0 lib/legion/transport/messages/task.rb
legion-transport-1.1.9 lib/legion/transport/messages/task.rb
legion-transport-1.1.8 lib/legion/transport/messages/task.rb
legion-transport-1.1.6 lib/legion/transport/messages/task.rb