Project

unisms

0.0
No commit activity in last 3 years
No release in over 3 years
Unified interface for dealing with SMS
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.10
~> 10.0
 Project Readme

Unisms

This gem provides a unified interface to let users dealing with SMS.

Installation

Add this line to your application's Gemfile:

gem 'unisms'

And then execute:

$ bundle

Or install it yourself as:

$ gem install unisms

Usage

Basic example: Print the SMS to STDOUT

sms = Unisms.new
phone_number = '+886999999999' # the phone number should be international format
sms.deliver 'hello', to: phone_number

Using Nexmo to send SMS

nexmo_adapter = Unisms::Adapter::Nexmo.new 'nexmo-api-key', 'nexmo-api-secret'
sms = Unisms.new nexmo_adapter
phone_number = '+886999999999' # the phone number should be international format
sms.deliver 'hello', to: phone_number, from: 'unisms'

Using Kotsms to send SMS

kotsms_adapter = Unisms::Adapter::Kotsms.new 'kotsms-username', 'kotsms-password'
sms = Unisms.new kotsms_adapter
phone_number = '+886999999999'
sms.deliver 'hello', to: phone_number

Sending message randomly by Nexmo or Kotsms

nexmo_adapter = Unisms::Adapter::Nexmo.new 'nexmo-api-key', 'nexmo-api-secret'
kotsms_adapter = Unisms::Adapter::Kotsms.new 'kotsms-username', 'kotsms-password'
random_router = Unisms::Router::Random.new [nexmo_adapter, kotsms_adapter]
sms = Unisms.new random_router
phone_number = '+886999999999'
sms.deliver 'hello', to: phone_number, from: 'unisms'

Sending message: to Taiwan by Kotsms, and else by Nexmo using custom router

class TaiwanOptimizedRouter < Unisms::Router::Base
	def initialize
		@nexmo_adapter = Unisms::Adapter::Nexmo.new 'nexmo-api-key', 'nexmo-api-secret'
		@kotsms_adapter = Unisms::Adapter::Kotsms.new 'kotsms-username', 'kotsms-password'
	end

	def route(message, to: nil, from: nil)
		if /\+886.*/ === to
			@kotsms_adapter
		else
			@nexmo_adapter
		end
	end
end

router = TaiwanOptimizedRouter.new
sms = Unisms.new router
sms.deliver '哈囉! Taiwan NO.1!', to: '+886999999999', from: 'unisms'
sms.deliver 'hello', to: '+1999999999', from: 'unisms' # I don't know the format of US

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake false to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/CrBoy/unisms.

License

The gem is available as open source under the terms of the MIT License.