class Commutator::Options::Query

Public Class Methods

new() click to toggle source
# File lib/commutator/options/query.rb, line 27
def initialize
  @expression_attribute_values ||= Expressions::AttributeValues.new
  @expression_attribute_names ||= Expressions::AttributeNames.new

  @key_condition_expression ||= Expressions::ConditionExpression.new(
    attribute_names: @expression_attribute_names,
    attribute_values: @expression_attribute_values)

  @filter_expression ||= Expressions::ConditionExpression.new(
    attribute_names: @expression_attribute_names,
    attribute_values: @expression_attribute_values)

  @projection_expression ||= Expressions::ProjectionExpression.new(
    attribute_names: @expression_attribute_names)
end

Public Instance Methods

asc() click to toggle source
# File lib/commutator/options/query.rb, line 43
def asc
  scan_index_forward(true)
end
desc() click to toggle source
# File lib/commutator/options/query.rb, line 47
def desc
  scan_index_forward(false)
end
to_h() click to toggle source
# File lib/commutator/options/query.rb, line 51
def to_h
  hash = {
    table_name: table_name,
    limit: limit,
    consistent_read: consistent_read,
    index_name: index_name,
    select: select,
    exclusive_start_key: exclusive_start_key,
    scan_index_forward: scan_index_forward,
    return_consumed_capacity: return_consumed_capacity,
    projection_expression: projection_expression.to_s,
    expression_attribute_names: expression_attribute_names.to_h,
    expression_attribute_values: expression_attribute_values.to_h,
    key_condition_expression: key_condition_expression.to_s(wrap: false),
    filter_expression: filter_expression.to_s(wrap: false)
  }

  hash.keep_if { |_key, value| value.present? || value == false }
end
Also aliased as: to_hash
to_hash()
Alias for: to_h