Class: Hekenga::DSL::DocumentTask

Inherits:
Hekenga::DSL show all
Defined in:
lib/hekenga/dsl/document_task.rb

Constant Summary collapse

INVALID_BEHAVIOR_STRATEGIES =
%i[continue]
VALID_WRITE_STRATEGIES =
%i[delete_then_insert update]

Instance Attribute Summary

Attributes inherited from Hekenga::DSL

#object

Instance Method Summary collapse

Methods inherited from Hekenga::DSL

build_klass, configures, #description, #initialize, #inspect

Constructor Details

This class inherits a constructor from Hekenga::DSL

Instance Method Details

#after(&block) ⇒ Object



75
76
77
# File 'lib/hekenga/dsl/document_task.rb', line 75

def after(&block)
  @object.after_callbacks.push block
end

#always_write!Object



39
40
41
# File 'lib/hekenga/dsl/document_task.rb', line 39

def always_write!
  @object.always_write = true
end

#batch_size(size) ⇒ Object



10
11
12
13
14
15
# File 'lib/hekenga/dsl/document_task.rb', line 10

def batch_size(size)
  unless size.is_a?(Integer) && size > 0
    raise "Invalid batch size #{size.inspect}"
  end
  @object.batch_size = size
end

#cursor_timeout(timeout) ⇒ Object



31
32
33
# File 'lib/hekenga/dsl/document_task.rb', line 31

def cursor_timeout(timeout)
  @object.cursor_timeout = timeout.to_i
end

#down(&block) ⇒ Object



71
72
73
# File 'lib/hekenga/dsl/document_task.rb', line 71

def down(&block)
  @object.downs.push block
end

#filter(&block) ⇒ Object



63
64
65
# File 'lib/hekenga/dsl/document_task.rb', line 63

def filter(&block)
  @object.filters.push block
end

#parallel!Object



47
48
49
# File 'lib/hekenga/dsl/document_task.rb', line 47

def parallel!
  @object.parallel = true
end

#scope(scope) ⇒ Object



35
36
37
# File 'lib/hekenga/dsl/document_task.rb', line 35

def scope(scope)
  @object.scope = scope
end

#setup(&block) ⇒ Object



59
60
61
# File 'lib/hekenga/dsl/document_task.rb', line 59

def setup(&block)
  @object.setups.push block
end

#skip_prepare!Object



55
56
57
# File 'lib/hekenga/dsl/document_task.rb', line 55

def skip_prepare!
  @object.skip_prepare = true
end

#timeless!Object



51
52
53
# File 'lib/hekenga/dsl/document_task.rb', line 51

def timeless!
  @object.timeless = true
end

#up(&block) ⇒ Object



67
68
69
# File 'lib/hekenga/dsl/document_task.rb', line 67

def up(&block)
  @object.ups.push block
end

#use_transaction!Object



43
44
45
# File 'lib/hekenga/dsl/document_task.rb', line 43

def use_transaction!
  @object.use_transaction = true
end

#when_invalid(val) ⇒ Object



17
18
19
20
21
22
# File 'lib/hekenga/dsl/document_task.rb', line 17

def when_invalid(val)
  unless INVALID_BEHAVIOR_STRATEGIES.include?(val)
    raise "Invalid value #{val}. Valid values for invalid_behavior are: #{INVALID_BEHAVIOR_STRATEGIES.join(", ")}."
  end
  @object.invalid_strategy = val
end

#write_strategy(strategy) ⇒ Object



24
25
26
27
28
29
# File 'lib/hekenga/dsl/document_task.rb', line 24

def write_strategy(strategy)
  unless VALID_WRITE_STRATEGIES.include?(strategy)
    raise "Invalid value #{strategy}. Valid values for write_strategy are: #{VALID_WRITE_STRATEGIES.join(", ")}."
  end
  @object.write_strategy = strategy
end