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