Sha256: 8ee81e9015c25df659c311c2c593a88935cc7d72b34960f695f320bf57162d00

Contents?: true

Size: 906 Bytes

Versions: 1

Compression:

Stored size: 906 Bytes

Contents

module Maily
  module Generator
    def self.run
      Maily.init!

      fixtures = []
      hooks    = []

      Maily::Mailer.list.each do |mailer|
        _hooks = []

        mailer.emails_list.each do |email|
          if email.require_hook?
            fixtures << email.required_arguments
            _hooks << "  mailer.register_hook(:#{email.name}, #{email.required_arguments.join(', ')})"
          end
        end

        if _hooks.present?
          hooks << "\nMaily.hooks_for('#{mailer.name.classify}') do |mailer|"
          hooks << _hooks
          hooks << "end"
        end
      end

      fixtures = fixtures.flatten.uniq.map do |fixture|
        argument = fixture.to_s
        value = argument.pluralize == argument ? '[]' : "''"

        [argument, value].join(' = ')
      end.join("\n")

      hooks    = hooks.join("\n")

      fixtures + "\n" + hooks + "\n"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
maily-0.11.0 lib/maily/generator.rb