Class: YSI::Assertion
- Inherits:
-
Object
- Object
- YSI::Assertion
- Defined in:
- lib/yes_ship_it/assertion.rb
Instance Attribute Summary collapse
-
#engine ⇒ Object
Returns the value of attribute engine.
Class Method Summary collapse
- .class_for_name(name) ⇒ Object
- .class_name(name) ⇒ Object
- .dependency_names ⇒ Object
- .needs(dependency) ⇒ Object
- .parameter(name, default_value = nil) ⇒ Object
Instance Method Summary collapse
- #display_name ⇒ Object
-
#initialize(engine) ⇒ Assertion
constructor
A new instance of Assertion.
- #needs ⇒ Object
- #needs?(dependency) ⇒ Boolean
Constructor Details
#initialize(engine) ⇒ Assertion
Returns a new instance of Assertion.
52 53 54 55 56 |
# File 'lib/yes_ship_it/assertion.rb', line 52 def initialize(engine) @engine = engine @parameters = {} @parameter_defaults = {} end |
Instance Attribute Details
#engine ⇒ Object
Returns the value of attribute engine.
3 4 5 |
# File 'lib/yes_ship_it/assertion.rb', line 3 def engine @engine end |
Class Method Details
.class_for_name(name) ⇒ Object
9 10 11 12 13 14 15 |
# 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) ⇒ Object
5 6 7 |
# File 'lib/yes_ship_it/assertion.rb', line 5 def self.class_name(name) name.split("_").map { |n| n.capitalize }.join end |
.dependency_names ⇒ Object
24 25 26 |
# File 'lib/yes_ship_it/assertion.rb', line 24 def self.dependency_names @dependency_names || [] end |
.needs(dependency) ⇒ Object
17 18 19 20 21 22 |
# 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 |
.parameter(name, default_value = nil) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# 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 |
Instance Method Details
#display_name ⇒ Object
58 59 60 |
# File 'lib/yes_ship_it/assertion.rb', line 58 def display_name self.class.display_name end |
#needs ⇒ Object
62 63 64 65 66 |
# 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) ⇒ Boolean
68 69 70 |
# File 'lib/yes_ship_it/assertion.rb', line 68 def needs?(dependency) needs.include?(dependency) end |