Sha256: 03dad0c01bfb3943612b93c54a4b03ce908d9ed97d1e7f8dbddf0c671c4973a4

Contents?: true

Size: 862 Bytes

Versions: 12

Compression:

Stored size: 862 Bytes

Contents

rad.mailer

class LetterBuilder < Rad::Conveyors::Processor
  def call                
    # prepare
    controller = workspace.controller.must_be.present
    raise "The controller #{controller} must be a Rad::Mailer::MailerController!" unless controller.is_a? Rad::Mailer::MailerController
    action_name = workspace.action_name = workspace.method_name

    # call
    controller.set! params: workspace.params, action_name: workspace.action_name
    content = controller.call action_name, *workspace.arguments    
    
    controller.body = content unless content.blank?
    
    # letter
    workspace.letter = ::Rad::Mailer::Letter.new(
      from: controller.from,
      to: controller.to,
      subject: controller.subject,
      body: controller.body
    )
    workspace.letter.validate!
    
    next_processor.call if next_processor
  end          

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rad_core-0.2.6 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.2.5 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.2.4 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.2.3 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.2.2 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.2.1 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.2.0 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.0.30 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.0.29 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.0.28 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.0.27 lib/rad/mailer/processors/letter_builder.rb
rad_core-0.0.26 lib/rad/mailer/processors/letter_builder.rb