promiscuous 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,8 +20,8 @@ module Promiscuous::Publisher::Lint
20
20
  lint = ::Class.new(Base)
21
21
  lint.__send__(:include, Class) if pub.include?(Promiscuous::Publisher::Class)
22
22
  lint.__send__(:include, Attributes) if pub.include?(Promiscuous::Publisher::Attributes)
23
- lint.__send__(:include, Polymorphic) if pub.include?(Promiscuous::Publisher::Polymorphic)
24
23
  lint.__send__(:include, AMQP) if pub.include?(Promiscuous::Publisher::AMQP)
24
+ lint.__send__(:include, Polymorphic) if pub.include?(Promiscuous::Publisher::Polymorphic)
25
25
  lint.new(:klass => klass, :publisher => pub, :to => to).lint
26
26
  end
27
27
  true
@@ -6,6 +6,8 @@ module Promiscuous::Subscriber::Lint
6
6
  autoload :AMQP, 'promiscuous/subscriber/lint/amqp'
7
7
 
8
8
  def self.lint(binding_classes)
9
+ Base.reload_publishers
10
+
9
11
  binding_classes.each do |from, klass|
10
12
  sub = Promiscuous::Subscriber::AMQP.subscribers[from]
11
13
  raise "#{from} has no subscriber" if sub.nil?
@@ -13,8 +15,8 @@ module Promiscuous::Subscriber::Lint
13
15
  lint = ::Class.new(Base)
14
16
  lint.__send__(:include, Class) if sub.include?(Promiscuous::Subscriber::Class)
15
17
  lint.__send__(:include, Attributes) if sub.include?(Promiscuous::Subscriber::Attributes)
16
- lint.__send__(:include, Polymorphic) if sub.include?(Promiscuous::Subscriber::Polymorphic)
17
18
  lint.__send__(:include, AMQP) if sub.include?(Promiscuous::Subscriber::AMQP)
19
+ lint.__send__(:include, Polymorphic) if sub.include?(Promiscuous::Subscriber::Polymorphic)
18
20
  lint.new(:klass => klass, :subscriber => sub, :from => from).lint
19
21
  end
20
22
  true
@@ -2,7 +2,7 @@ module Promiscuous::Subscriber::Lint::AMQP
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  def publisher
5
- Promiscuous::Publisher::Mock.descendants.
5
+ publishers.
6
6
  select { |pub| pub.superclass == Promiscuous::Publisher::Mock }.
7
7
  select { |pub| pub.to == from }.
8
8
  tap { |pubs| raise "#{from} has multiple publishers: #{pubs}" if pubs.size > 1 }.
@@ -1,8 +1,14 @@
1
1
  class Promiscuous::Subscriber::Lint::Base
2
2
  include Promiscuous::Common::Lint::Base
3
3
 
4
- class_attribute :check_publisher
5
- self.check_publisher = Promiscuous::Publisher::Mock.descendants.present?
4
+ class_attribute :publishers
5
+ def self.reload_publishers
6
+ self.publishers = Promiscuous::Publisher::Mock.descendants
7
+ end
8
+
9
+ def check_publisher
10
+ self.class.publishers.present?
11
+ end
6
12
 
7
13
  use_option(:subscriber)
8
14
  end
@@ -1,17 +1,16 @@
1
1
  module Promiscuous::Subscriber::Lint::Polymorphic
2
2
  extend ActiveSupport::Concern
3
3
 
4
- def parent_publisher
5
- publisher
6
- @parent_publisher
7
- end
8
-
9
4
  def publisher
10
- @parent_publisher = super
11
- if @parent_publisher
12
- ([parent_publisher] + parent_publisher.descendants).
13
- select { |pub| pub.class_name == subscriber.from_type }.
14
- first
5
+ parent_publisher = super
6
+ if parent_publisher
7
+ if parent_publisher.class_name == subscriber.from_type
8
+ parent_publisher
9
+ else
10
+ parent_publisher.descendants.
11
+ select { |pub| pub.class_name == subscriber.from_type }.
12
+ first
13
+ end
15
14
  end
16
15
  end
17
16
 
@@ -29,7 +28,8 @@ module Promiscuous::Subscriber::Lint::Polymorphic
29
28
 
30
29
  unless skip_polymorphic
31
30
  subscriber.descendants.each do |pub|
32
- self.class.new(options.merge(:publisher => pub,
31
+ self.class.new(options.merge(:subscriber => pub,
32
+ :klass => nil,
33
33
  :skip_polymorphic => true)).lint
34
34
  end
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module Promiscuous
2
- VERSION = '0.7.4'
2
+ VERSION = '0.7.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: promiscuous
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: