Module: Promiscuous::Publisher::Lint

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

Defined Under Namespace

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

Class Method Summary collapse

Class Method Details

.get_publisher(klass) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/promiscuous/publisher/lint.rb', line 8

def self.get_publisher(klass)
  unless klass.respond_to?(:promiscuous_publisher)
    raise "#{klass} has no publisher"
  end

  klass.promiscuous_publisher
end

.lint(classes) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/promiscuous/publisher/lint.rb', line 16

def self.lint(classes)
  classes.each do |klass, to|
    pub = get_publisher(klass)

    lint = ::Class.new(Base)
    lint.__send__(:include, Class)       if pub.include?(Promiscuous::Publisher::Class)
    lint.__send__(:include, Attributes)  if pub.include?(Promiscuous::Publisher::Attributes)
    lint.__send__(:include, AMQP)        if pub.include?(Promiscuous::Publisher::AMQP)
    lint.__send__(:include, Polymorphic) if pub.include?(Promiscuous::Publisher::Polymorphic)
    lint.new(:klass => klass, :publisher => pub, :to => to).lint
  end
  true
end