Sha256: 6d1b65229db3dcf47943dc058ae4740650dae9dda58a549d5bc31c25c0b22f5a

Contents?: true

Size: 1.79 KB

Versions: 4

Compression:

Stored size: 1.79 KB

Contents

module Voicemail
  class MailboxPlayMessageIntroController < ApplicationController

    def run
      load_message
      intro_message
    end

    def intro_message
      play_time_message
      play_from_message
    end

    def play_time_message
      case config.numeric_method
      when :i18n_string
        play I18n.t("voicemail.messages.message_received_on_x", received_on: I18n.localize(current_message[:received]))
      when :play_numeric
        play config.messages.message_received_on
        play_time current_message[:received], format: config.datetime_format
      when :ahn_say
        play config.messages.message_received_on
        play *sounds_for_time(current_message[:received], format: config.datetime_format)
      end
    end

    def play_from_message
      case config.numeric_method
      when :i18n_string
        play I18n.t("voicemail.messages.message_received_from_x", from: from_string)
      when :play_numeric
        play config.messages.from
        say_characters from_digits unless from_digits.empty?
      when :ahn_say
        play config.messages.from
        play *sounds_for_digits(from_digits)
      end
    end

private

    def from_digits
      current_message[:from].scan(/\d/).join
    end

    def from_string
      "".tap do |string|
        from_digits.each_char do |char|
          digit_word = I18n.t "numbers.#{char}"
          if digit_word =~ /missing/
            string << char
          else
            string << digit_word
          end
        end
      end
    end

    def current_message
      @message
    end

    def load_message
      @message = metadata[:message] || nil
      raise ArgumentError, "MailboxPlayMessageIntroController needs a valid message passed to it" unless @message
    end

    def message_uri
      current_message[:uri]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
voicemail-1.1.1 lib/voicemail/call_controllers/mailbox_play_message_intro_controller.rb
voicemail-1.1.0 lib/voicemail/call_controllers/mailbox_play_message_intro_controller.rb
voicemail-1.0.0 lib/voicemail/call_controllers/mailbox_play_message_intro_controller.rb
voicemail-1.0.0.beta lib/voicemail/call_controllers/mailbox_play_message_intro_controller.rb