Sha256: bfc7f31aa716b4920b8db68fb29afcbb06d95dadec58804da063822f97daefe0

Contents?: true

Size: 1.22 KB

Versions: 27

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

module Quby
  module Answers
    module Entities
      class Outcome
        # @return [Hash]
        attr_accessor :scores

        # @return [Hash]
        attr_accessor :actions

        # @return [Hash]
        attr_accessor :completion

        # @return [Time]
        attr_accessor :generated_at

        def initialize(scores: {}, actions: {}, completion: {}, generated_at: nil)
          self.scores = scores
          self.actions = actions
          self.completion = completion
          self.generated_at = generated_at
        end

        def scores
          @scores.with_indifferent_access
        end

        def actions
          @actions.with_indifferent_access
        end

        def action
          alarm_scores      = scores.select { |key, value| value["status"].to_s == "alarm" }
          alarm_answers     = actions[:alarm] || []
          attention_scores  = scores.select { |key, value| value["status"].to_s == "attention" }
          attention_answers = actions[:attention] || []

          return :alarm     if alarm_scores.any?     || alarm_answers.any?
          return :attention if attention_scores.any? || attention_answers.any?
          nil
        end
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
quby-5.4.0 lib/quby/answers/entities/outcome.rb
quby-5.3.1 lib/quby/answers/entities/outcome.rb
quby-5.3.0 lib/quby/answers/entities/outcome.rb
quby-5.2.0 lib/quby/answers/entities/outcome.rb
quby-5.1.3 lib/quby/answers/entities/outcome.rb
quby-5.1.2 lib/quby/answers/entities/outcome.rb
quby-5.1.1 lib/quby/answers/entities/outcome.rb
quby-5.1.0 lib/quby/answers/entities/outcome.rb
quby-5.0.5 lib/quby/answers/entities/outcome.rb
quby-5.0.4 lib/quby/answers/entities/outcome.rb
quby-5.0.3 lib/quby/answers/entities/outcome.rb
quby-5.0.2 lib/quby/answers/entities/outcome.rb
quby-5.0.1 lib/quby/answers/entities/outcome.rb
quby-5.0.0 lib/quby/answers/entities/outcome.rb
quby-4.0.4 lib/quby/answers/entities/outcome.rb
quby-5.0.0.pre4 lib/quby/answers/entities/outcome.rb
quby-5.0.0.pre3 lib/quby/answers/entities/outcome.rb
quby-5.0.0.pre2 lib/quby/answers/entities/outcome.rb
quby-5.0.0.pre1 lib/quby/answers/entities/outcome.rb
quby-4.0.3 lib/quby/answers/entities/outcome.rb