Module: Promiscuous::Subscriber::Lint::Attributes

Extended by:
ActiveSupport::Concern
Defined in:
lib/promiscuous/subscriber/lint/attributes.rb

Instance Method Summary collapse

Instance Method Details

#lintObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/promiscuous/subscriber/lint/attributes.rb', line 4

def lint
  super

  instance = subscriber.klass.new
  attributes = subscriber.attributes
  attributes += [subscriber.foreign_key] if subscriber.foreign_key

  attributes.each { |attr| instance.respond_to?("#{attr}=") or instance.__send__("#{attr}=") }

  if check_publisher
    raise "The publisher of #{subscriber} does not exist" if publisher.nil?
    missing_attributes = subscriber.attributes - publisher.attributes
    if missing_attributes.present?
      raise "#{publisher} subscribes to non published attributes: #{missing_attributes.join(", ")}"
    end
  end
end