class Dependency

Constants

DESCRIPTION_TYPE_WIDTH

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/dependency.rb, line 14
def initialize(name)
        @name = name
end

Public Instance Methods

always_act?() click to toggle source

if true, this type of resource must always have `meet` and `unmeet` called; useful for resources that can't easily be checked to see if they're met

# File lib/dependency.rb, line 40
def always_act?
        false
end
exit_code() click to toggle source
# File lib/dependency.rb, line 56
def exit_code
        @executor&.exit_code
end
meet() click to toggle source
# File lib/dependency.rb, line 22
def meet
        raise NotImplementedError
end
met?() click to toggle source
# File lib/dependency.rb, line 18
def met?
        raise NotImplementedError
end
output() click to toggle source
# File lib/dependency.rb, line 52
def output
        @executor&.output
end
should_meet?() click to toggle source

should_meet? can be used to implement dependencies that should only be met on some platforms, e.g. brew on Macs and apt on Linux it can be used to base a decision on anything else that can be read from the environment at runtime

# File lib/dependency.rb, line 34
def should_meet?
        true
end
success?() click to toggle source
# File lib/dependency.rb, line 48
def success?
        @executor.nil? ? true : @executor.success?
end
type() click to toggle source
# File lib/dependency.rb, line 44
def type
        self.class.name.split('::').last
end
unmeet() click to toggle source
# File lib/dependency.rb, line 26
def unmeet
        raise NotImplementedError
end

Private Instance Methods

execute(cmd) click to toggle source
# File lib/dependency.rb, line 62
def execute(cmd)
        @executor = Executor.new(cmd)
        @executor.execute

        @executor.success?
end