lib/maily/mailer.rb in maily-1.0.0 vs lib/maily/mailer.rb in maily-2.0.0

- old
+ new

@@ -25,12 +25,13 @@ def self.find(mailer_name) all[mailer_name] end - def find_email(email_name) - emails[email_name.to_s] + def find_email(email_name, version = nil) + key = Maily::Email.name_with_version(email_name, version) + emails[key] end def emails_list emails.values.sort_by(&:name) end @@ -38,17 +39,19 @@ def total_emails emails.size end def register_hook(email_name, *args) - email = find_email(email_name) || add_email(email_name) + version = get_version(*args) + email = find_email(email_name, version) || add_email(email_name, version) email && email.register_hook(*args) end def hide_email(*email_names) email_names.each do |email_name| - emails.delete(email_name.to_s) + _email_name = Maily::Email.name_with_version(email_name.to_s) + emails.delete(_email_name) end end private @@ -58,11 +61,19 @@ _emails.each do |email| add_email(email) end end - def add_email(email_name) + def add_email(email_name, version = nil) + hide_email(email_name) if version email = Maily::Email.new(email_name.to_s, self) - self.emails[email.name] = email + key = Maily::Email.name_with_version(email_name, version) + emails[key] = email + end + + def get_version(*args) + return unless args.last.is_a?(Hash) + + Maily::Email.formatted_version(args.last[:version]) end end end