class RBCM::Action
Attributes
applied[RW]
approved[RW]
chain[R]
check[R]
dependencies[R]
job[R]
line[R]
obsolete[R]
path[R]
result[R]
source[R]
state[R]
trigger[R]
triggered[R]
triggered_by[R]
working_dir[R]
Public Class Methods
new(job:, params: nil, line: nil, check: nil, dependencies: nil, state: @job = job)
click to toggle source
# File app/action/action.rb, line 7 def initialize job:, params: nil, line: nil, check: nil, dependencies: nil, state: @job = job @triggered = [] @obsolete = nil @approved = nil # command specific @line = line # file specific @params = params @path = params.first if job.capability.name == :file # extract state [:chain, :trigger, :triggered_by, :check, :source, :tags, :working_dirs].each do |key| instance_variable_set "@#{key}", state[key] end @working_dir = @working_dirs.last @dependencies = [:file] + [dependencies].flatten - [@chain.last] end
Public Instance Methods
applied?()
click to toggle source
# File app/action/action.rb, line 59 def applied? @applied end
applyable?()
click to toggle source
# File app/action/action.rb, line 49 def applyable? approved? and not applied? end
approvable?()
click to toggle source
# File app/action/action.rb, line 45 def approvable? neccessary? and triggered? and approved? == nil end
approve!(input=:y)
click to toggle source
# File app/action/action.rb, line 72 def approve! input=:y if [:a, :y].include? input @job.node.files[@path].content = content if self.class == RBCM::Action::File @approved = true siblings.each.approve! if input == :a @job.node.triggered << @trigger @triggered = @trigger.compact - @job.node.triggered else @approved = false end end
approved?()
click to toggle source
# File app/action/action.rb, line 41 def approved? @approved end
checkable?()
click to toggle source
# File app/action/action.rb, line 32 def checkable? @check.any? or self.class == RBCM::Action::File end
failed?()
click to toggle source
# File app/action/action.rb, line 68 def failed? @result.exitstatus != 0 end
neccessary?()
click to toggle source
# File app/action/action.rb, line 36 def neccessary? check! not obsolete end
project_file()
click to toggle source
# File app/action/action.rb, line 26 def project_file @chain.reverse.find{ |element| defined?(element.project_file) and element.project_file }.project_file end
succeeded?()
click to toggle source
# File app/action/action.rb, line 63 def succeeded? pp self.chain unless @result @result.exitstatus == 0 end
triggered?()
click to toggle source
# File app/action/action.rb, line 53 def triggered? triggered_by.empty? or triggered_by.one?{ |triggered_by| @job.node.triggered.flatten.include? triggered_by } end