Sha256: b40140f2022337350417d834d741cedf42599b684f8b11594626272b63beac16
Contents?: true
Size: 988 Bytes
Versions: 4
Compression:
Stored size: 988 Bytes
Contents
# frozen_string_literal: true require 'securerandom' module DynamoidAdvancedWhere module Nodes class ExistsNode < BaseNode include Concerns::Negatable include Concerns::SupportsLogicalAnd include Concerns::SupportsLogicalOr attr_accessor :field_node, :prefix def initialize(field_node:) self.field_node = field_node self.prefix = SecureRandom.hex freeze end def to_expression "NOT( attribute_not_exists(#{field_node.to_expression}) or #{field_node.to_expression} = :#{prefix} )" end def expression_attribute_names field_node.expression_attribute_names end def expression_attribute_values { ":#{prefix}" => nil } end end module Concerns module SupportsExistance def exists? ExistsNode.new(field_node: self) end alias present? exists? end end end end
Version data entries
4 entries across 4 versions & 1 rubygems