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