Class: Dymos::Query::Scan

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

Instance Method Summary collapse

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



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

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

#add_filter(*value) ⇒ Object



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

def add_filter(*value)
  if value.count == 2
    column, operator, value = value[0], :eq, value[1]
  else
    column, operator, value = value
  end
  @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



8
9
10
11
# File 'lib/dymos/query/scan.rb', line 8

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

#commandObject



4
5
6
# File 'lib/dymos/query/scan.rb', line 4

def command
  'scan'
end

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



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

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

#expression_attribute_names(value) ⇒ Object



86
87
88
89
# File 'lib/dymos/query/scan.rb', line 86

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

#expression_attribute_values(value) ⇒ Object



91
92
93
94
# File 'lib/dymos/query/scan.rb', line 91

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

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



23
24
25
26
27
# File 'lib/dymos/query/scan.rb', line 23

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

#filter_expression(value) ⇒ Object



81
82
83
84
# File 'lib/dymos/query/scan.rb', line 81

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

#filter_operator(value) ⇒ Object



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

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

#limit(value) ⇒ Object



13
14
15
16
# File 'lib/dymos/query/scan.rb', line 13

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

#projection_expression(value) ⇒ Object



76
77
78
79
# File 'lib/dymos/query/scan.rb', line 76

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

#return_consumed_capacity(value) ⇒ Object



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

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

#segment(value) ⇒ Object



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

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

#select(value) ⇒ Object



18
19
20
21
# File 'lib/dymos/query/scan.rb', line 18

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

#total_segments(value) ⇒ Object



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

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