class Inprovise::Script

Script base class for Inprovise

Author

Martin Corino

License

Distributes under the same license as Ruby

Attributes

actions[R]
children[R]
configuration[R]
dependencies[R]
name[R]
user[R]

Public Class Methods

new(name) click to toggle source
# File lib/inprovise/script.rb, line 53
def initialize(name)
  @name = name
  @description = nil
  @configuration = nil
  @user = nil
  @dependencies = []
  @children = []
  @actions = {}
  @commands = {}
  @remove = nil
end

Public Instance Methods

action(name, &definition) click to toggle source
# File lib/inprovise/script.rb, line 117
def action(name, &definition)
  @actions[name] = definition
end
apply(&definition) click to toggle source
# File lib/inprovise/script.rb, line 105
def apply(&definition)
  command(:apply, &definition)
end
as(user) click to toggle source
# File lib/inprovise/script.rb, line 113
def as(user)
  @user = user
end
command(name, &definition) click to toggle source
# File lib/inprovise/script.rb, line 121
def command(name, &definition)
  if block_given?
    (@commands[name.to_sym] ||= []) << definition
  else
    @commands[name.to_sym] ||= []
  end
end
configure(cfg=nil, &definition) click to toggle source
# File lib/inprovise/script.rb, line 76
def configure(cfg=nil, &definition)
  @configuration = Inprovise::Config.new.merge!(cfg) if cfg
  command(:configure, &definition)
  @configuration
end
depends_on(*scr_names) click to toggle source
# File lib/inprovise/script.rb, line 89
def depends_on(*scr_names)
  scr_names.each do |scr_name|
    @dependencies << scr_name
  end
end
describe() click to toggle source
# File lib/inprovise/script.rb, line 70
def describe
  return [self.name] unless self.description
  nm = [self.name]
  self.description.split("\n").collect {|ld| "#{"%-25s" % nm.shift.to_s}\t#{ld.strip}"}
end
description(desc=nil) click to toggle source
# File lib/inprovise/script.rb, line 65
def description(desc=nil)
  @description = desc if desc
  @description
end
provides_command?(name) click to toggle source
# File lib/inprovise/script.rb, line 129
def provides_command?(name)
  @commands.has_key?(name.to_sym)
end
revert(&definition) click to toggle source
# File lib/inprovise/script.rb, line 109
def revert(&definition)
  command(:revert, &definition)
end
to_s() click to toggle source
# File lib/inprovise/script.rb, line 133
def to_s
  self.name
end
triggers(*scr_names) click to toggle source
# File lib/inprovise/script.rb, line 95
def triggers(*scr_names)
  scr_names.each do |scr_name|
    @children << scr_name
  end
end
update_configuration(context) click to toggle source
# File lib/inprovise/script.rb, line 82
def update_configuration(context)
  context.config[self.name.to_sym] ||= Inprovise::Config.new
  if @configuration
    context.config[self.name.to_sym].update!(@configuration)
  end
end
validate(&definition) click to toggle source
# File lib/inprovise/script.rb, line 101
def validate(&definition)
  command(:validate, &definition)
end