Sha256: 7cb7f42d8cf9509061494da316226461eeba905705c060d5a7a92172935ec3e2

Contents?: true

Size: 731 Bytes

Versions: 104

Compression:

Stored size: 731 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Projects
    module Stereotype
      class JobComparator
        common_constructor :job1, :job2

        def result
          return -1 if run_before?(job1, job2)
          return 1 if run_before?(job2, job1)

          job1.object_id <=> job2.class.name
        end

        private

        def run_before?(a_job, other_job)
          return false unless a_job.respond_to?(:run_before)

          a_job.run_before.map(&:to_sym).include?(job_stereotype_key(other_job))
        end

        def job_stereotype_key(job)
          job.class.name.split('::')[0..-2].join('::').demodulize.variableize.to_sym
        end
      end
    end
  end
end

Version data entries

104 entries across 104 versions & 2 rubygems

Version Path
avm-tools-0.139.0 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.35.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.138.0 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.34.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.137.0 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.33.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.32.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.136.2 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.31.1 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.31.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.136.1 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.30.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.29.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.136.0 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.28.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.27.2 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.27.1 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.135.0 lib/avm/projects/stereotype/job_comparator.rb
eac_tools-0.27.0 sub/avm-tools/lib/avm/projects/stereotype/job_comparator.rb
avm-tools-0.134.0 lib/avm/projects/stereotype/job_comparator.rb