Mensario: a wrapper around Mensario API

This gem allows us to perform the following operations through the mensario API:

  • Send sms to mobile phone (allowing instant messages and programmed messages)
  • Check the status of sent messages
  • Cancel a programmed message

Config

There are three ways to set configuration parameters of Mensario:

Separately

Mensario::license =  "PERT123446423"
Mensario::username = "caer3456"

Block of code

Mensario::set_config do |m|
  m.license = "PERT123446423"
  m.username = "caer3456"
  m.password = "frt3gg5"
end

Through a YAML file

By default, Mensario expects a YAML configuration file in config/mensario.yml root path of our application.

The YAML file expects to have the following scheme:

:profilename:
    :license: ABCD1234
    :username: user0
    :password: pass0
:otherprofile:
    :license: ABDC1234
    :username: user1
    :password: pass1

If the config file is located in another location we have available the method Mensario::config in order to use some different configuration. The config options are:

  • :config -> Path to alternative config file
  • :profile -> Profile to load. Profile by default is :default

For example, using an alternative config file:

Mensario::config :config => /path/to/file.yml

Another example, using an alternative profile:

Mensario::config :profile => :otherprofile

Sending a message

To send a message, we need some options:

  • :sender -> Name of who send de message
  • :text -> Content of message
  • :code -> Country code of mobile
  • :phone -> Telephone number to send de message
  • :date -> Ruby Time object with the send date
  • :timezone -> Timezone of the send

All options are required except :date and :timezone:

  • If :date is undefined the message is sent inmediately.
  • If :timezone is undefined Mensario will use GMT+0

If a message is sent correctly the method return its id.

An example may be something like this:

opts = {
  :sender => 'Myself'
  :text => 'My message'
  :code => 34
  :phone => 123456789
  :timezone => 'Europe/Madrid'
}

Mensario::send_message opts

Get the status of message

To check the status of a messege we need to use Mensario::status with id of message that we want to consult. All states of a message are in Mensarios API.

For example:

Mensario::status 12345678

Cancel a programmed message

Only messages whose status is "CMS-PEND" can be cancelled. The method Mensario::destroy cancels them.

For example:

Mensario::destroy 12345678

Check balance remaining

Method Mensario::balance allow us to consult balance

For example:

Mensario::balance

Handle errors

If a request error occurs or the api responds with an error, Mensario throw an exception of type MensarioException. Depending on the type of error, there are several exceptions that inherit from MensarioException:

  • MensarioApiException. For errors sent by the api. Has the property status that contains the error code returned by Mensario.
  • MensarioHttpException. If a problem occurs with the HTTP request.

About

Mensario is a gem developed by NoSoloSoftware.

License

Mensario is Copyright 2011 NoSoloSoftware, it is free software.

Mensario is distributed under GPLv3 license. More details can be found at COPYING file.