Class: Dymos::Query::Scan

Inherits:
Base
  • Object
show all
Includes:
Parameter::FilterExpression
Defined in:
lib/dymos/query/scan.rb

Instance Method Summary collapse

Methods included from Parameter::FilterExpression

#expression_attribute_names, #expression_attribute_values, #filter_expression

Methods inherited from Base

#build, #initialize, #name

Constructor Details

This class inherits a constructor from Dymos::Query::Base

Instance Method Details

#_add_filter(column, operator, value) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/dymos/query/scan.rb', line 40

def _add_filter(column, operator, value)
  hash = {
    comparison_operator: operator.to_s.upcase
  }
  hash[:attribute_value_list]=[*value] if value.present?
  [column.to_s, hash]
end

#add_filter(*values) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/dymos/query/scan.rb', line 31

def add_filter(*values)
  column, operator, value = parse_condition(*values)

  @query[:scan_filter] ||= {}
  @query[:scan_filter].store(*_add_filter(column, operator, value))
  filter_operator 'AND' if @query[:conditional_operator].blank? && @query[:scan_filter].count > 1
  self
end

#attributes(*value) ⇒ Object



10
11
12
13
# File 'lib/dymos/query/scan.rb', line 10

def attributes(*value)
  @query[:attributes_to_get] = value
  self
end

#commandObject



6
7
8
# File 'lib/dymos/query/scan.rb', line 6

def command
  'scan'
end

#exclusive_start_key(value) ⇒ Object Also known as: start_key



53
54
55
56
# File 'lib/dymos/query/scan.rb', line 53

def exclusive_start_key(value)
  @query[:exclusive_start_key] = value.deep_stringify_keys
  self
end

#filter(value, operator = 'AND') ⇒ Object



25
26
27
28
29
# File 'lib/dymos/query/scan.rb', line 25

def filter(value, operator='AND')
  value.map { |v| add_filter(*v) }
  filter_operator operator.to_s.upcase if value.count > 1
  self
end

#filter_operator(value) ⇒ Object



48
49
50
51
# File 'lib/dymos/query/scan.rb', line 48

def filter_operator(value)
  @query[:conditional_operator] = value.to_s.upcase
  self
end

#limit(value) ⇒ Object



15
16
17
18
# File 'lib/dymos/query/scan.rb', line 15

def limit(value)
  @query[:limit] = value
  self
end

#return_consumed_capacity(value) ⇒ Object



60
61
62
63
# File 'lib/dymos/query/scan.rb', line 60

def return_consumed_capacity(value)
  @query[:return_consumed_capacity] = value.to_s.upcase
  self
end

#segment(value) ⇒ Object



70
71
72
73
# File 'lib/dymos/query/scan.rb', line 70

def segment(value)
  @query[:segment] = value
  self
end

#select(value) ⇒ Object



20
21
22
23
# File 'lib/dymos/query/scan.rb', line 20

def select(value)
  @query[:select] = value
  self
end

#total_segments(value) ⇒ Object



65
66
67
68
# File 'lib/dymos/query/scan.rb', line 65

def total_segments(value)
  @query[:total_segments] = value
  self
end