Class: MailManager::ContactableRegistry
- Inherits:
-
Object
- Object
- MailManager::ContactableRegistry
- Defined in:
- app/models/mail_manager/contactable_registry.rb
Defined Under Namespace
Modules: Contactable
Constant Summary collapse
- @@contactable_things =
{}
Class Method Summary collapse
- .contactable_method(classname, method) ⇒ Object
- .edit_route_for(classname) ⇒ Object
- .register_contactable(classname, methods = {}) ⇒ Object
- .registered_methods(classname = nil) ⇒ Object
- .valid_contactable_substitutions(classname = nil) ⇒ Object
Class Method Details
.contactable_method(classname, method) ⇒ Object
24 25 26 |
# File 'app/models/mail_manager/contactable_registry.rb', line 24 def self.contactable_method(classname,method) @@contactable_things[classname][method] || method end |
.edit_route_for(classname) ⇒ Object
28 29 30 31 |
# File 'app/models/mail_manager/contactable_registry.rb', line 28 def self.edit_route_for(classname) return @@contactable_things[classname][:edit_route] if @@contactable_things[classname][:edit_route].present? "edit_#{classname.underscore}_path" end |
.register_contactable(classname, methods = {}) ⇒ Object
5 6 7 8 9 |
# File 'app/models/mail_manager/contactable_registry.rb', line 5 def self.register_contactable(classname, methods={}) @@contactable_things.merge!(classname => methods) Rails.logger.warn "Registered Contactable: #{classname}" Rails.logger.debug "Current Contactables: #{@@contactable_things.inspect}" end |
.registered_methods(classname = nil) ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'app/models/mail_manager/contactable_registry.rb', line 11 def self.registered_methods(classname=nil) return @@contactable_things[classname.to_s].keys unless classname.nil? all_methods = {} @@contactable_things.values.each do |methods| all_methods.merge!(methods) end all_methods.keys.reject{|key| key.to_s.eql?('edit_route')} end |
.valid_contactable_substitutions(classname = nil) ⇒ Object
20 21 22 |
# File 'app/models/mail_manager/contactable_registry.rb', line 20 def self.valid_contactable_substitutions(classname=nil) registered_methods(classname).collect{|key| key.to_s.upcase} end |