class Minireq::Dsl::PertDSL

Attributes

items[R]
Hash<Object>

Public Class Methods

new() click to toggle source
# File lib/minireq/dsl/pert_dsl.rb, line 25
def initialize
  @items = {}
end

Public Instance Methods

calculate() click to toggle source

calculate E95%

# File lib/minireq/dsl/pert_dsl.rb, line 34
def calculate
  eff = @items.collect {|k, v| v[:effort]}
  err = @items.collect {|k, v| v[:rmserr]}
  calc_e95(eff, err)
end
estimate(&block) click to toggle source
# File lib/minireq/dsl/pert_dsl.rb, line 29
def estimate(&block)
  instance_eval(&block) if block_given?
end
pert(object, o:, m:, p:) click to toggle source

add new estimation

# File lib/minireq/dsl/pert_dsl.rb, line 41
def pert(object, o:, m:, p:)
  # TODO rescue this exception
  raise "An attempt of adding a duplicate '#{object}'" if @items[object]
  @items[object] = {o: o, m: m, p: p}.merge(calc_pert(o: o, m: m, p: p))
end