Class: Hekenga::DocumentTask

Inherits:
Object
  • Object
show all
Defined in:
lib/hekenga/document_task.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDocumentTask

Returns a new instance of DocumentTask.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/hekenga/document_task.rb', line 10

def initialize
  @ups              = []
  @downs            = []
  @setups           = []
  @filters          = []
  @after_callbacks  = []
  @invalid_strategy = :continue
  @write_strategy   = :update
  @skip_prepare     = false
  @batch_size       = nil
  @always_write     = false
  @use_transaction  = false
  @cursor_timeout   = Hekenga::BaseIterator::DEFAULT_TIMEOUT
end

Instance Attribute Details

#after_callbacksObject (readonly)

Returns the value of attribute after_callbacks.



5
6
7
# File 'lib/hekenga/document_task.rb', line 5

def after_callbacks
  @after_callbacks
end

#always_writeObject

Returns the value of attribute always_write.



8
9
10
# File 'lib/hekenga/document_task.rb', line 8

def always_write
  @always_write
end

#batch_sizeObject

Returns the value of attribute batch_size.



6
7
8
# File 'lib/hekenga/document_task.rb', line 6

def batch_size
  @batch_size
end

#cursor_timeoutObject

Returns the value of attribute cursor_timeout.



6
7
8
# File 'lib/hekenga/document_task.rb', line 6

def cursor_timeout
  @cursor_timeout
end

#descriptionObject

Returns the value of attribute description.



7
8
9
# File 'lib/hekenga/document_task.rb', line 7

def description
  @description
end

#downsObject (readonly)

Returns the value of attribute downs.



5
6
7
# File 'lib/hekenga/document_task.rb', line 5

def downs
  @downs
end

#filtersObject (readonly)

Returns the value of attribute filters.



5
6
7
# File 'lib/hekenga/document_task.rb', line 5

def filters
  @filters
end

#invalid_strategyObject

Returns the value of attribute invalid_strategy.



7
8
9
# File 'lib/hekenga/document_task.rb', line 7

def invalid_strategy
  @invalid_strategy
end

#parallelObject

Returns the value of attribute parallel.



6
7
8
# File 'lib/hekenga/document_task.rb', line 6

def parallel
  @parallel
end

#scopeObject

Returns the value of attribute scope.



6
7
8
# File 'lib/hekenga/document_task.rb', line 6

def scope
  @scope
end

#setupsObject (readonly)

Returns the value of attribute setups.



5
6
7
# File 'lib/hekenga/document_task.rb', line 5

def setups
  @setups
end

#skip_prepareObject

Returns the value of attribute skip_prepare.



7
8
9
# File 'lib/hekenga/document_task.rb', line 7

def skip_prepare
  @skip_prepare
end

#timelessObject

Returns the value of attribute timeless.



6
7
8
# File 'lib/hekenga/document_task.rb', line 6

def timeless
  @timeless
end

#upsObject (readonly)

Returns the value of attribute ups.



5
6
7
# File 'lib/hekenga/document_task.rb', line 5

def ups
  @ups
end

#use_transactionObject

Returns the value of attribute use_transaction.



8
9
10
# File 'lib/hekenga/document_task.rb', line 8

def use_transaction
  @use_transaction
end

#write_strategyObject

Returns the value of attribute write_strategy.



7
8
9
# File 'lib/hekenga/document_task.rb', line 7

def write_strategy
  @write_strategy
end

Instance Method Details

#down!(context, document) ⇒ Object



35
36
37
38
39
40
# File 'lib/hekenga/document_task.rb', line 35

def down!(context, document)
  raise Hekenga::Irreversible.new(self) unless reversible?
  @downs.each do |block|
    context.instance_eval(document, &block)
  end
end

#reversible?Boolean

Returns:

  • (Boolean)


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

def reversible?
  downs.any?
end

#up!(context, document) ⇒ Object



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

def up!(context, document)
  @ups.each do |block|
    context.instance_exec(document, &block)
  end
end

#validate!Object

Raises:



25
26
27
# File 'lib/hekenga/document_task.rb', line 25

def validate!
  raise Hekenga::Invalid.new(self, :ups, "missing") unless ups.any?
end