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