Class: Module

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

Instance Method Summary collapse

Instance Method Details

#safe_attr_accessor(*args) ⇒ Object



128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/god.rb', line 128

def safe_attr_accessor(*args)
  args.each do |arg|
    define_method((arg.to_s + "=").intern) do |other|
      if !self.running && self.inited
        abort "God.#{arg} must be set before any Tasks are defined"
      end
      
      if self.running && self.inited
        applog(nil, :warn, "God.#{arg} can't be set while god is running")
        return
      end
      
      instance_variable_set(('@' + arg.to_s).intern, other)
    end
    
    define_method(arg) do
      instance_variable_get(('@' + arg.to_s).intern)
    end
  end
end