Module: Frequent::Deferred

Defined in:
lib/frequent.rb

Class Method Summary collapse

Class Method Details

.enable!Object



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/frequent.rb', line 124

def self.enable!
  return if @enabled
  ::Module.class_eval do
    def method_added(m)
      Frequent::Deferred.place_by_name("#{self}##{m}")
    end

    def singleton_method_added(m)
      Frequent::Deferred.place_by_name("#{self}.#{m}")
    end

    def included(host)
      Frequent.probes.values.select(&:ready?).each(&:enable!)
    end
  end
  @enabled = true
end

.place_by_name(name) ⇒ Object



119
120
121
122
# File 'lib/frequent.rb', line 119

def self.place_by_name(name)
  p = Frequent.probes[name]
  p.enable! if p && p.ready?
end