Class: God::Behavior

Inherits:
Object
  • Object
show all
Includes:
Configurable
Defined in:
lib/god/behavior.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Configurable

#base_name, #complain, complain, #prepare, #reset

Instance Attribute Details

#watchObject

Returns the value of attribute watch.



6
7
8
# File 'lib/god/behavior.rb', line 6

def watch
  @watch
end

Class Method Details

.generate(kind, watch) ⇒ Object

Generate a Behavior of the given kind. The proper class is 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::Behaviors::FooBar)



11
12
13
14
15
16
17
18
# File 'lib/god/behavior.rb', line 11

def self.generate(kind, watch)
  sym = kind.to_s.capitalize.gsub(/_(.)/){$1.upcase}.intern
  b = God::Behaviors.const_get(sym).new
  b.watch = watch
  b
rescue NameError
  raise NoSuchBehaviorError.new("No Behavior found with the class name God::Behaviors::#{sym}")
end

Instance Method Details

#after_restartObject



35
36
# File 'lib/god/behavior.rb', line 35

def after_restart
end

#after_startObject



29
30
# File 'lib/god/behavior.rb', line 29

def after_start
end

#after_stopObject



41
42
# File 'lib/god/behavior.rb', line 41

def after_stop
end

#before_restartObject



32
33
# File 'lib/god/behavior.rb', line 32

def before_restart
end

#before_startObject



26
27
# File 'lib/god/behavior.rb', line 26

def before_start
end

#before_stopObject



38
39
# File 'lib/god/behavior.rb', line 38

def before_stop
end

#friendly_nameObject

Construct the friendly name of this Behavior, looks like:

Behavior FooBar on Watch 'baz'



47
48
49
# File 'lib/god/behavior.rb', line 47

def friendly_name
  "Behavior " + super + " on Watch '#{self.watch.name}'"
end

#valid?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/god/behavior.rb', line 20

def valid?
  true
end