Module: Promiscuous::Publisher::Attributes
- Extended by:
- ActiveSupport::Concern
- Included in:
- Generic
- Defined in:
- lib/promiscuous/publisher/attributes.rb
Instance Method Summary collapse
Instance Method Details
#include_attributes? ⇒ Boolean
23 24 25 |
# File 'lib/promiscuous/publisher/attributes.rb', line 23 def include_attributes? true end |
#payload ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/promiscuous/publisher/attributes.rb', line 4 def payload return nil unless include_attributes? Hash[attributes.map do |field| optional = field.to_s[-1] == '?' field = field.to_s[0...-1].to_sym if optional [field, payload_for(field)] if !optional || instance.respond_to?(field) end] end |
#payload_for(field) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/promiscuous/publisher/attributes.rb', line 14 def payload_for(field) value = instance.__send__(field) if value.class.respond_to?(:promiscuous_publisher) value.class.promiscuous_publisher.new(.merge(:instance => value)).payload else value end end |