class YSI::Assertion
Attributes
engine[RW]
Public Class Methods
class_for_name(name)
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 9 def self.class_for_name(name) begin Object.const_get("YSI::" + class_name(name)) rescue NameError raise YSI::Error.new("Error: Unknown assertion '#{name}'") end end
class_name(name)
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 5 def self.class_name(name) name.split("_").map { |n| n.capitalize }.join end
dependency_names()
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 24 def self.dependency_names @dependency_names || [] end
needs(dependency)
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 17 def self.needs(dependency) @dependency_names ||= [] # Classes might not all be loaded yet, so delay class name lookup to # first invocation of #needs @dependency_names << dependency end
new(engine)
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 52 def initialize(engine) @engine = engine @parameters = {} @parameter_defaults = {} end
parameter(name, default_value = nil)
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 28 def self.parameter(name, default_value = nil) define_method("#{name}=") do |value| @parameters[name] = value end if default_value define_method("#{name}_default") do return default_value end end define_method("#{name}") do if @parameters.has_key?(name) return @parameters[name] else if respond_to?("#{name}_default") return send("#{name}_default") else return nil end end end end
Public Instance Methods
display_name()
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 58 def display_name self.class.display_name end
needs()
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 62 def needs @dependencies ||= self.class.dependency_names.map do |d| Assertion.class_for_name(d) end end
needs?(dependency)
click to toggle source
# File lib/yes_ship_it/assertion.rb, line 68 def needs?(dependency) needs.include?(dependency) end