Class: Kuroko2::JobDefinition

Inherits:
ApplicationRecord show all
Includes:
TableNameCustomizable
Defined in:
app/models/kuroko2/job_definition.rb

Defined Under Namespace

Modules: PreventMultiStatus

Constant Summary collapse

PREVENT_TOKEN_STATUSES =
{
  PreventMultiStatus::NONE => [],
  PreventMultiStatus::WORKING_OR_ERROR => [
    Kuroko2::Token::WORKING,
    Kuroko2::Token::FAILURE,
    Kuroko2::Token::CRITICAL
  ],
  PreventMultiStatus::WORKING => [Kuroko2::Token::WORKING],
  PreventMultiStatus::ERROR => [Kuroko2::Token::FAILURE, Kuroko2::Token::CRITICAL],
}

Instance Method Summary collapse

Instance Method Details

#proceed_multi_instance?Boolean

Returns:

  • (Boolean)


81
82
83
84
# File 'app/models/kuroko2/job_definition.rb', line 81

def proceed_multi_instance?
  tokens = Kuroko2::Token.where(job_definition_id: self.id)
  (tokens.map(&:status) & PREVENT_TOKEN_STATUSES[self.prevent_multi]).empty?
end

#text_tagsObject



86
87
88
# File 'app/models/kuroko2/job_definition.rb', line 86

def text_tags
  tags.pluck(:name).join(',')
end

#text_tags=(text_tags) ⇒ Object



90
91
92
93
94
# File 'app/models/kuroko2/job_definition.rb', line 90

def text_tags=(text_tags)
  self.tags = text_tags.gsub(/[[:blank:]]+/, '').split(/[,、]/).uniq.map do |name|
    Kuroko2::Tag.find_or_create_by(name: name)
  end
end