Sha256: 002cad149de9bcc99a0e99935aeec90ae9b44f7bbc918b77971f75ddabf95da0

Contents?: true

Size: 721 Bytes

Versions: 6

Compression:

Stored size: 721 Bytes

Contents

# frozen_string_literal: true

module DynamoidAdvancedWhere
  module Nodes
    class InNode < OperationNode
      def to_expression
        "#{lh_operation.to_expression} IN #{rh_operation.to_expression}"
      end
    end

    module Concerns
      module SupportsIn
        def in?(other_value)
          val = if respond_to?(:parse_right_hand_side)
                  parse_right_hand_side(other_value)
                else
                  other_value
                end

          raise 'Expected parameter of `in?` to be an array' unless val.is_a?(Array)

          InNode.new(
            lh_operation: self,
            rh_operation: ArrayLiteralNode.new(val)
          )
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dynamoid_advanced_where-1.8.0 lib/dynamoid_advanced_where/nodes/in_node.rb
dynamoid_advanced_where-1.7.1 lib/dynamoid_advanced_where/nodes/in_node.rb
dynamoid_advanced_where-1.7.0 lib/dynamoid_advanced_where/nodes/in_node.rb
dynamoid_advanced_where-1.6.0 lib/dynamoid_advanced_where/nodes/in_node.rb
dynamoid_advanced_where-1.5.1 lib/dynamoid_advanced_where/nodes/in_node.rb
dynamoid_advanced_where-1.5.0 lib/dynamoid_advanced_where/nodes/in_node.rb