class Build::Files::IOState
def added
def added @input_state.added + @output_state.added end
def changed
def changed @input_state.changed + @output_state.changed end
def dirty?
def dirty? @dirty = [] if @output_state.missing? # puts "Output file missing: #{output_state.missing.inspect}" return true end # If there are no inputs, we are always clean as long as outputs exist: # if @input_state.empty? # return false # end oldest_output_time = @output_state.oldest_time newest_input_time = @input_state.newest_time if newest_input_time and oldest_output_time # if newest_input_time > oldest_output_time # puts "Out of date file: #{newest_input_time.inspect} > #{oldest_output_time.inspect}" # end return newest_input_time > oldest_output_time end # puts "Missing file dates: #{newest_input_time.inspect} < #{oldest_output_time.inspect}" return true end
def files
def files @input_state.files + @output_state.files end
def fresh?
def fresh? not dirty? end
def initialize(inputs, outputs)
def initialize(inputs, outputs) @input_state = State.new(inputs) @output_state = State.new(outputs) end
def inspect
def inspect "<IOState Input:#{@input_state.inspect} Output:#{@output_state.inspect}>" end
def intersects?(outputs)
def intersects?(outputs) @input_state.intersects?(outputs) or @output_state.intersects?(outputs) end
def removed
def removed @input_state.removed + @output_state.removed end
def update!
def update! input_changed = @input_state.update! output_changed = @output_state.update! input_changed or output_changed end