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.



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

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
end

Instance Attribute Details

#after_callbacksObject (readonly)

Returns the value of attribute after_callbacks.



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

def after_callbacks
  @after_callbacks
end

#always_writeObject

Returns the value of attribute always_write.



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

def always_write
  @always_write
end

#batch_sizeObject

Returns the value of attribute batch_size.



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

def batch_size
  @batch_size
end

#descriptionObject

Returns the value of attribute description.



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

def description
  @description
end

#downsObject (readonly)

Returns the value of attribute downs.



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

def downs
  @downs
end

#filtersObject (readonly)

Returns the value of attribute filters.



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

def filters
  @filters
end

#invalid_strategyObject

Returns the value of attribute invalid_strategy.



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

def invalid_strategy
  @invalid_strategy
end

#parallelObject

Returns the value of attribute parallel.



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

def parallel
  @parallel
end

#scopeObject

Returns the value of attribute scope.



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

def scope
  @scope
end

#setupsObject (readonly)

Returns the value of attribute setups.



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

def setups
  @setups
end

#skip_prepareObject

Returns the value of attribute skip_prepare.



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

def skip_prepare
  @skip_prepare
end

#timelessObject

Returns the value of attribute timeless.



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

def timeless
  @timeless
end

#upsObject (readonly)

Returns the value of attribute ups.



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

def ups
  @ups
end

#use_transactionObject

Returns the value of attribute use_transaction.



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

def use_transaction
  @use_transaction
end

#write_strategyObject

Returns the value of attribute write_strategy.



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

def write_strategy
  @write_strategy
end

Instance Method Details

#down!(context, document) ⇒ Object



33
34
35
36
37
38
# File 'lib/hekenga/document_task.rb', line 33

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)


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

def reversible?
  downs.any?
end

#up!(context, document) ⇒ Object



27
28
29
30
31
# File 'lib/hekenga/document_task.rb', line 27

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

#validate!Object

Raises:



23
24
25
# File 'lib/hekenga/document_task.rb', line 23

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