Module: Promiscuous::Publisher::Attributes
- Extended by:
- ActiveSupport::Concern
- Included in:
- ActiveRecord, Ephemeral, Mongoid
- Defined in:
- lib/promiscuous/publisher/attributes.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
Instance Method Details
#include_attributes? ⇒ Boolean
21 22 23 |
# File 'lib/promiscuous/publisher/attributes.rb', line 21 def include_attributes? true end |
#payload ⇒ Object
4 5 6 7 8 |
# File 'lib/promiscuous/publisher/attributes.rb', line 4 def payload return nil unless include_attributes? Hash[attributes.map { |field| [field, payload_for(field)] }] end |
#payload_for(field) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/promiscuous/publisher/attributes.rb', line 10 def payload_for(field) value = instance.__send__(field) if value.respond_to?(:promiscuous_publisher) value.promiscuous_publisher.new(.merge(:instance => value)).payload elsif value.class.respond_to?(:promiscuous_publisher) value.class.promiscuous_publisher.new(.merge(:instance => value)).payload else value end end |