Module: WaveBox::GenerateWave
- Defined in:
- lib/wave_box/generate_wave.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
3
4
5
6
7
8
9
10
11
|
# File 'lib/wave_box/generate_wave.rb', line 3
def method_missing(method, *args, &block)
if method.to_s =~ /generated_(\w+)_after/
generated_after( $1, *args )
elsif method.to_s =~ /generate_(\w+)/
generate( $1, *args)
else
super
end
end
|
Class Method Details
.included(host) ⇒ Object
81
82
83
|
# File 'lib/wave_box/generate_wave.rb', line 81
def self.included(host)
host.extend ClassMethods
end
|
Instance Method Details
#generate(name, wave, receiver, time = Time.now, options = {}) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/wave_box/generate_wave.rb', line 18
def generate(name, wave, receiver, time = Time.now, options = {})
send("#{name}_outbox").push wave, time unless options[:outbox] == false
if receiver.respond_to? :each
receiver.each do |rec|
rec.receive(name, wave, time)
end
else
receiver.receive(name, wave, time)
end
end
|
#generated_after(name, time) ⇒ Object
30
31
32
|
# File 'lib/wave_box/generate_wave.rb', line 30
def generated_after(name, time)
send("#{name}_outbox").after(time)
end
|
#respond_to_missing?(method) ⇒ Boolean
method missing with good manner
14
15
16
|
# File 'lib/wave_box/generate_wave.rb', line 14
def respond_to_missing?(method, *)
(method =~ /generated_(\w+)_after/) || (method =~ /generate_(\w+)/) || super
end
|