Class: Familia::Validation::AtomicityValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/familia/validation/validator.rb

Overview

Validates that operations that should be atomic actually execute within transactions

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(command_sequence, options = {}) ⇒ AtomicityValidator

Returns a new instance of AtomicityValidator.



216
217
218
219
220
221
# File 'lib/familia/validation/validator.rb', line 216

def initialize(command_sequence, options = {})
  @command_sequence = command_sequence
  @options = options
  @errors = []
  @warnings = []
end

Instance Attribute Details

#command_sequenceObject (readonly)

Returns the value of attribute command_sequence.



214
215
216
# File 'lib/familia/validation/validator.rb', line 214

def command_sequence
  @command_sequence
end

#optionsObject (readonly)

Returns the value of attribute options.



214
215
216
# File 'lib/familia/validation/validator.rb', line 214

def options
  @options
end

Instance Method Details

#validateObject



223
224
225
226
227
228
229
230
231
232
233
# File 'lib/familia/validation/validator.rb', line 223

def validate
  check_transaction_boundaries
  check_orphaned_commands
  check_nested_transactions

  ValidationResult.new(nil, @command_sequence).tap do |result|
    result.instance_variable_set(:@errors, @errors)
    result.instance_variable_set(:@warnings, @warnings)
    result.instance_variable_set(:@valid, @errors.empty?)
  end
end