Class: Tube::AttributeUpdater::Base

Inherits:
Object
  • Object
show all
Defined in:
app/models/tube/attribute_updater.rb

Overview

Base class for AttributeUpdaters, does not perform any action itself but impliments the interface, allowing it to act as a Null Handler in the event we don’t recognize the QC type

Direct Known Subclasses

Molarity, Volume

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tube, qc_result) ⇒ Base

Create an attribute updater

Parameters:

  • tube (Well)

    The tube to update

  • qc_result (QcResult)

    The QCResult to extract the information from



34
35
36
37
# File 'app/models/tube/attribute_updater.rb', line 34

def initialize(tube, qc_result)
  @tube = tube
  @qc_result = qc_result
end

Instance Attribute Details

#qc_resultObject (readonly)

Returns the value of attribute qc_result.



24
25
26
# File 'app/models/tube/attribute_updater.rb', line 24

def qc_result
  @qc_result
end

#tubeObject (readonly)

Returns the value of attribute tube.



24
25
26
# File 'app/models/tube/attribute_updater.rb', line 24

def tube
  @tube
end

Instance Method Details

#original_valueUnit

The original value, complete with units

Returns:

  • (Unit)

    A combination of the the value and its units.



43
44
45
# File 'app/models/tube/attribute_updater.rb', line 43

def original_value
  @original_value ||= Unit.new(value, units)
end

#target_valueObject

The value which will get recorded in the database



48
49
50
# File 'app/models/tube/attribute_updater.rb', line 48

def target_value
  original_value.convert_to(target_units).scalar
end

#updateObject

Used in subclasses to perform the relevant update actions on Wells



53
54
55
# File 'app/models/tube/attribute_updater.rb', line 53

def update
  # The Base class performs no actions
end