Module: Bunnicula

Defined in:
lib/bunnicula.rb,
lib/bunnicula/amqp.rb,
lib/bunnicula/rabbit.rb,
lib/bunnicula/version.rb,
lib/bunnicula/dsl_base.rb,
lib/bunnicula/bunny_farm.rb

Defined Under Namespace

Modules: DslBase Classes: AMQP, BunnyFarm, Exchange, Rabbit, Relay, VampireRabbit

Constant Summary collapse

VERSION =
'0.2.2'

Class Method Summary collapse

Class Method Details

.bite(&block) ⇒ Object Also known as: configure



27
28
29
# File 'lib/bunnicula.rb', line 27

def bite(&block)
  instance_eval(&block)
end

.suck(amq) ⇒ Object



19
20
21
# File 'lib/bunnicula.rb', line 19

def suck(amq)
  vampire_rabbits.each {|vampire|vampire.suck(amq)}
end

.transfusion_to(host = nil, &block) ⇒ Object Also known as: target



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/bunnicula.rb', line 45

def transfusion_to(host=nil,&block)
  rabbit = Bunnicula::VampireRabbit.new(host)
  if block_given?
    if (block.arity > 0)
      block.call(rabbit)
    else
      rabbit.instance_eval(&block)
    end
  end
  vampire_rabbits << rabbit
  rabbit
end

.vampire_rabbitsObject



23
24
25
# File 'lib/bunnicula.rb', line 23

def vampire_rabbits
  @@vampire_rabbits ||= []
end

.victim(host = nil, &block) ⇒ Object Also known as: source



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/bunnicula.rb', line 32

def victim(host=nil,&block)
  return (@@victim ||= Bunnicula::Rabbit.new) unless host || block_given?
  @@victim = Bunnicula::Rabbit.new(host)
  if block_given?
    if block.arity > 0
      block.call(@@victim)
    else
      @@victim.instance_eval(&block)
    end
  end
end