Class: Tengine::Job::Expansion

Inherits:
Job
  • Object
show all
Defined in:
lib/tengine/job/expansion.rb

Overview

ルートジョブネットを他のジョブネット内に展開するための特殊なテンプレート用Vertex。

Constant Summary collapse

IGNORED_FIELD_NAMES =
(Tengine::Job::Vertex::IGNORED_FIELD_NAMES + %w[name dsl_version jobnet_type_cd version updated_at created_at children edges]).freeze

Instance Method Summary collapse

Instance Method Details

#actual_classObject



6
7
8
# File 'lib/tengine/job/expansion.rb', line 6

def actual_class
  Tengine::Job::JobnetActual
end

#generate(klass = actual_class) ⇒ Object



32
33
34
35
36
# File 'lib/tengine/job/expansion.rb', line 32

def generate(klass = actual_class)
  result = super
  result.was_expansion = true
  result
end

#generating_attrsObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/tengine/job/expansion.rb', line 19

def generating_attrs
  result = super
  attrs = root_jobnet_template.attributes.dup
  if template = root_jobnet_template
    attrs[:template_id] = template.id
  end
  attrs.delete_if{|attr, value| IGNORED_FIELD_NAMES.include?(attr)}
  result.update(attrs)
  result
end

#generating_childrenObject



29
# File 'lib/tengine/job/expansion.rb', line 29

def generating_children; root_jobnet_template.children; end

#generating_edgesObject



30
# File 'lib/tengine/job/expansion.rb', line 30

def generating_edges; root_jobnet_template.edges; end

#root_jobnet_templateObject



9
10
11
12
13
14
15
# File 'lib/tengine/job/expansion.rb', line 9

def root_jobnet_template
  unless @root_jobnet_template
    cond = {:dsl_version => root.dsl_version, :name => name}
    @root_jobnet_template = Tengine::Job::RootJobnetTemplate.where(cond).first
  end
  @root_jobnet_template
end