{"id":15692096,"url":"https://github.com/yuki24/texting","last_synced_at":"2025-08-07T16:25:55.421Z","repository":{"id":140397308,"uuid":"102414505","full_name":"yuki24/texting","owner":"yuki24","description":"SMS/MMS framework for Rails that doesn't hurt","archived":false,"fork":false,"pushed_at":"2019-08-13T20:31:47.000Z","size":46,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-01T23:49:22.659Z","etag":null,"topics":["actionmailer","mms","mms-framework","rails","ruby","sms","twilio"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuki24.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-05T00:30:50.000Z","updated_at":"2023-04-08T20:08:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"b2aece6a-553f-43fc-897e-552af8db7d57","html_url":"https://github.com/yuki24/texting","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuki24%2Ftexting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuki24%2Ftexting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuki24%2Ftexting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuki24%2Ftexting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuki24","download_url":"https://codeload.github.com/yuki24/texting/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252984670,"owners_count":21835834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actionmailer","mms","mms-framework","rails","ruby","sms","twilio"],"created_at":"2024-10-03T18:29:06.078Z","updated_at":"2025-05-08T02:21:11.016Z","avatar_url":"https://github.com/yuki24.png","language":"Ruby","readme":"# Texting [![Build Status](https://travis-ci.org/yuki24/texting.svg?branch=master)](https://travis-ci.org/yuki24/texting)\n\nTexting is a SMS/MMS framework that implements interfaces similar to ActionMailer.\n\n * **Convention over Configuration**: Texting brings Convention over Configuration to your app for organizing your SMS/MMS implementations.\n * **Extremely Easy to Learn**: If you know how to use ActionMailer, you already know how to use Texting. Send text messages asynchronously with ActiveJob at no learning cost.\n * **Testability**: First-class support for testing SMS/MMS messages. No more hassle writing custom code or stubs/mocks for your tests.\n\n**While this gem is actively maintained, it is still under heavy development.**\n\n## Getting Started\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'texting'\n```\n\n### Supported Providers\n\nTexxting itself doesn't send text messages. Instead, it uses an adapter to actually send them. As of writing, Texting only have support for Twilio and AWS SNS:\n\n```ruby\n# Use Twilio:\ngem 'twilio-ruby'\n\n# Use AWS SNS:\ngem 'aws-sdk-sns'\n```\n\nSupport for more providers will be added in the future.\n\n### Writing your first messenger:\n\n\n```ruby\n# app/messengers/tweet_messenger.rb\nclass TweetMessenger \u003c ApplicationMessenger\n  def new_direct_message(message_id, user_id)\n    message = DirectMessage.find(message_id)\n    user    = User.find(user_id)\n\n    text to: user.phone_number, body: \u003c\u003c~BODY.strip\n      Your follower #{user.name} juts sent you a direct message:\n\n      #{message.body}\n    BODY\n  end\nend\n```\n\n### Deliver the text messages:\n\n```ruby\nTweetMessenger.new_direct_message(message_id, user.id).deliver_now!\n# =\u003e sends a text message immediately\n\nTweetMessenger.new_direct_message(message_id, user.id).deliver_later!\n# =\u003e enqueues a job that sends a text message later\n```\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuki24%2Ftexting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuki24%2Ftexting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuki24%2Ftexting/lists"}