Class: Discord::Mailer
- Inherits:
-
Object
- Object
- Discord::Mailer
- Defined in:
- lib/discord_mailer.rb,
lib/discord_mailer/configuration.rb
Defined Under Namespace
Classes: Configuration
Class Method Summary collapse
- .method_missing(method, *args) ⇒ Object
- .send_message(webhook_id = '', webhook_key = '', name = '', message = '') ⇒ Object
Instance Method Summary collapse
- #_instance_variables ⇒ Object
- #collect_message(template_path, instance_variables) ⇒ Object
- #mail(webhook_id: nil, webhook_key: nil, from: nil) ⇒ Object
- #template_path(template_name) ⇒ Object
Class Method Details
.method_missing(method, *args) ⇒ Object
14 15 16 |
# File 'lib/discord_mailer.rb', line 14 def method_missing(method, *args) self.new.send(method, *args) end |
.send_message(webhook_id = '', webhook_key = '', name = '', message = '') ⇒ Object
18 19 20 21 22 23 |
# File 'lib/discord_mailer.rb', line 18 def (webhook_id = '', webhook_key = '', name = '', = '') raise Error::EMPTY_MESSSAGE if .empty? discord_url = "#{Discord::Mailer::Configuration.config.discord_url}/#{webhook_id}/#{webhook_key}" RestClient.post(discord_url, {"username" => name,"content" => }) end |
Instance Method Details
#_instance_variables ⇒ Object
35 36 37 38 39 |
# File 'lib/discord_mailer.rb', line 35 def _instance_variables instance_variables.map { |instance_variable| { instance_variable => self.instance_variable_get(instance_variable) } }.reduce(:merge) end |
#collect_message(template_path, instance_variables) ⇒ Object
48 49 50 |
# File 'lib/discord_mailer.rb', line 48 def (template_path, instance_variables) ERB.new(File.read(template_path)).result(binding) end |
#mail(webhook_id: nil, webhook_key: nil, from: nil) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/discord_mailer.rb', line 26 def mail(webhook_id: nil, webhook_key: nil, from: nil) raise Error::EMPTY_WEBHOOK_ID if webhook_id.empty? raise Error::EMPTY_WEBHOOK_KEY if webhook_key.empty? template_name = caller_locations.first.base_label = (self.template_path(template_name), _instance_variables) self.class.send(:send_message, webhook_id, webhook_key, from, ) end |
#template_path(template_name) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/discord_mailer.rb', line 41 def template_path(template_name) template = "#{template_name}.#{Discord::Mailer::Configuration.config.templates_type}" template << '.erb' if Discord::Mailer::Configuration.config.erb_in_templates "#{Discord::Mailer::Configuration.config.templates_path}/#{self.class.name.underscore}/#{template}" end |