Module: Promiscuous::Subscriber::Lint

Defined in:
lib/promiscuous/subscriber/lint.rb

Defined Under Namespace

Modules: AMQP, Attributes, Class, Polymorphic Classes: Base

Class Method Summary collapse

Class Method Details

.lint(binding_classes) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/promiscuous/subscriber/lint.rb', line 8

def self.lint(binding_classes)
  Base.reload_publishers

  binding_classes.each do |from, klass|
    sub = Promiscuous::Subscriber::AMQP.subscribers[from]
    raise "#{from} has no subscriber" if sub.nil?

    lint = ::Class.new(Base)
    lint.__send__(:include, Class)       if sub.include?(Promiscuous::Subscriber::Class)
    lint.__send__(:include, Attributes)  if sub.include?(Promiscuous::Subscriber::Attributes)
    lint.__send__(:include, AMQP)        if sub.include?(Promiscuous::Subscriber::AMQP)
    lint.__send__(:include, Polymorphic) if sub.include?(Promiscuous::Subscriber::Polymorphic)
    lint.new(:klass => klass, :subscriber => sub, :from => from).lint
  end
  true
end