Building the SMS Tool Module
Build the initial implementation for the SMS module. This will include creating a Ruby module that can be called from anywhere in the application. Eventually this model will store the connection to the Twilio API for sending text messages.
Guide Tasks
  • Read Tutorial
  • Watch Guide Video
Video locked
This video is viewable to users with a Bottega Bootcamp license

In this section, we are going to start working on our SMS module that will send SMS messages.

There are many ways to do it. I like to put custom behaviors like this one inside of lib directory because it sits outside of the core application. This way, we can treat it like a helper module or even a gem.

The first step is to open application.rb file and add another config block to include the lib directory. This is how you can add it.

# config/application.rb

require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require(*Rails.groups)

module Overtime
  class Application < Rails::Application
    config.active_record.raise_in_transactional_callbacks = true
    config.autoload_paths << Rails.root.join("lib")
  end
end

Next, create a file called sms_tool.rb in lib directory. Here, we are going to create a module called SmsTool. It's important to follow the same naming convention if you're following me. Since the file name is sms_tool, your module name should be SmsTool. If you want to use a different name, make sure you change it everywhere.

Inside this module, let's create a method called send_sms that takes in the number and message as its arguments, and prints out the values for us.

module SmsTool
  def self.send_sms(number:, message:)
    puts "Sending SMS..."
    puts "#{message} to #{number}"
  end
end

To test this, start a rails console session and call this method with the command.

SmsTool.send_sms(number: 5555555, message: "my message")

This prints out our message, so it's working!

large

We'll continue building in the actual functional in subsequent lessons.