class PavementConditionIndex::DistressGroup

Attributes

distresses[R]
pavement_type[R]
severity[R]
size_of_sample_unit[R]
type[R]

Public Class Methods

new(type:nil,severity:nil,distresses:nil,size_of_sample_unit:nil,pavement_type:nil) click to toggle source
# File lib/pavement_condition_index/distress_group.rb, line 7
def initialize(type:nil,severity:nil,distresses:nil,size_of_sample_unit:nil,pavement_type:nil)
  @type = type
  @severity = severity
  @distresses = distresses
  @size_of_sample_unit = size_of_sample_unit
  @pavement_type = pavement_type
end

Public Instance Methods

deduct_value() click to toggle source
# File lib/pavement_condition_index/distress_group.rb, line 33
def deduct_value
  @deduct_value ||= PavementConditionIndex::Lookups::DeductValues.new(pavement_type: @pavement_type, distress_type: @type, severity: @severity).call(density_percentage)
end
density() click to toggle source
# File lib/pavement_condition_index/distress_group.rb, line 19
def density
  @density ||= begin
    if @type == :joint_seal_damage 
      1.0
    else
      total_quantity/@size_of_sample_unit.to_f
    end
  end
end
density_percentage() click to toggle source
# File lib/pavement_condition_index/distress_group.rb, line 29
def density_percentage
  @density_percentage ||= density * 100
end
total_quantity() click to toggle source
# File lib/pavement_condition_index/distress_group.rb, line 15
def total_quantity
  @total_quantity ||= @distresses.map{|distress| distress[:quantity]}.reduce(:+)
end