lib/generators/kanina/message/message_generator.rb

Summary

Maintainability
A
20 mins
Test Coverage
require 'rails/generators'

module Kanina
  # `Kanina::MessageGenerator` generates a template of a message file. Change the
  # resulting file with your intended exchange or routing_key information. For example:
  #
  #   rails generate message user_notification
  #
  # Then you'll want to update the generated message class with instructions on
  # which exchange to send messages, the type of exchange, and so on.
  class MessageGenerator < Rails::Generators::NamedBase
    source_root File.expand_path('../templates', __FILE__)

    # This method is automatically run by Rails when generating a new message.
    # It sets up the messages folder and adds the message template. Remember to
    # change the template to talk to the right exchange/queue!
    def create_message_file
      messages_folder = Rails.root + 'app/messages'
      empty_directory messages_folder
      template 'message.rb', messages_folder + "#{file_name}_message.rb"
    end
  end
end