module Toji::Product

Public Instance Methods

compact() click to toggle source
# File lib/toji/product.rb, line 41
def compact
  Utils.check_dup(self)

  dst = self.dup
  dst.compact!
end
compact!() click to toggle source

@dynamic koji_schedules @dynamic kake_schedules @dynamic action_schedules @dynamic rice_schedules @dynamic schedules

# File lib/toji/product.rb, line 16
def compact!
  recipe&.compact!

  min_interval_days = [
    recipe&.steps&.map(&:interval_days)&.min,
    recipe&.steps&.flat_map{|step| step.rices.to_a}&.map(&:interval_days)&.min,
    recipe&.actions&.map(&:interval_days)&.min,
  ].compact.min

  if min_interval_days && min_interval_days!=0
    recipe&.steps&.each {|step|
      step.interval_days -= min_interval_days
      step.rices {|rice|
        rice.interval_days -= min_interval_days
      }
    }
    recipe&.actions&.each {|action|
      action.interval_days -= min_interval_days
    }
    self.base_date = base_date.since(min_interval_days.days)
  end

  self
end