Class: God::Condition
Direct Known Subclasses
Instance Attribute Summary (collapse)
-
- (Object) info
Returns the value of attribute info.
-
- (Object) notify
Returns the value of attribute notify.
-
- (Object) phase
Returns the value of attribute phase.
-
- (Object) transition
Returns the value of attribute transition.
Attributes inherited from Behavior
Class Method Summary (collapse)
-
+ (Object) generate(kind, watch)
Generate a Condition of the given kind.
- + (Boolean) valid?(condition)
Instance Method Summary (collapse)
-
- (Object) friendly_name
Construct the friendly name of this Condition, looks like:.
Methods inherited from Behavior
#after_restart, #after_start, #after_stop, #before_restart, #before_start, #before_stop, #valid?
Methods included from Configurable
#base_name, complain, #complain, #prepare, #reset, #valid?
Instance Attribute Details
- (Object) info
Returns the value of attribute info
4 5 6 |
# File 'lib/god/condition.rb', line 4 def info @info end |
- (Object) notify
Returns the value of attribute notify
4 5 6 |
# File 'lib/god/condition.rb', line 4 def notify @notify end |
- (Object) phase
Returns the value of attribute phase
4 5 6 |
# File 'lib/god/condition.rb', line 4 def phase @phase end |
- (Object) transition
Returns the value of attribute transition
4 5 6 |
# File 'lib/god/condition.rb', line 4 def transition @transition end |
Class Method Details
+ (Object) generate(kind, watch)
Generate a Condition of the given kind. The proper class if found by camel casing the kind (which is given as an underscored symbol).
+kind+ is the underscored symbol representing the class (e.g. :foo_bar for God::Conditions::FooBar)
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/god/condition.rb', line 9 def self.generate(kind, watch) sym = kind.to_s.capitalize.gsub(/_(.)/){$1.upcase}.intern c = God::Conditions.const_get(sym).new unless c.kind_of?(PollCondition) || c.kind_of?(EventCondition) || c.kind_of?(TriggerCondition) abort "Condition '#{c.class.name}' must subclass God::PollCondition, God::EventCondition, or God::TriggerCondition" end if !EventHandler.loaded? && c.kind_of?(EventCondition) abort "Condition '#{c.class.name}' requires an event system but none has been loaded" end c.watch = watch c rescue NameError raise NoSuchConditionError.new("No Condition found with the class name God::Conditions::#{sym}") end |
+ (Boolean) valid?(condition)
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/god/condition.rb', line 27 def self.valid?(condition) valid = true if condition.notify begin Contact.normalize(condition.notify) rescue ArgumentError => e valid &= Configurable.complain("Attribute 'notify' " + e., condition) end end valid end |
Instance Method Details
- (Object) friendly_name
Construct the friendly name of this Condition, looks like:
Condition FooBar on Watch 'baz'
42 43 44 |
# File 'lib/god/condition.rb', line 42 def friendly_name "Condition #{self.class.name.split('::').last} on Watch '#{self.watch.name}'" end |