class CabezaDeTermo::AssetsPublisher::ClockCardMachine

An object to detect if a compilation job needs to run or not.

Public Class Methods

new() click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 5
def initialize()
        @clock_cards = {}
end

Public Instance Methods

is_outdated?(compilation_job) click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 9
def is_outdated?(compilation_job)
        return true unless has_record_on?(compilation_job.id)

        clock_cards_not_match? clock_cards[compilation_job.id], compilation_job.clock_card
end
register_modifications_on(compilation_job) click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 15
def register_modifications_on(compilation_job)
        clock_cards.delete(compilation_job.id)

        CdT.object compilation_job.clock_card,
                if_not_nil: proc { |card| clock_cards[compilation_job.id] = card unless card.has_assets_missing? }
end

Protected Instance Methods

clock_cards() click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 24
def clock_cards
        @clock_cards
end
clock_cards_match?(expected_card, card) click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 36
def clock_cards_match?(expected_card, card)
        return false unless expected_card.size == card.size

        expected_card.all_marks? { |uri, time| time == card.time_for(uri) }
end
clock_cards_not_match?(expected_card, card) click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 32
def clock_cards_not_match?(expected_card, card)
        !clock_cards_match?(expected_card, card)
end
has_record_on?(id) click to toggle source
# File lib/cabeza-de-termo/assets-publisher/clock-cards/clock-card-machine.rb, line 28
def has_record_on?(id)
        clock_cards.key?(id)
end