textris 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dec9ef9f16f25185395f550204e2e5afbd067d8b
4
- data.tar.gz: b5f8bf92434c2e95ff71a0bf6d9ee2a4692b0091
3
+ metadata.gz: 2f1998dcf38ee77fccc6357527ad6129fe3ce6e7
4
+ data.tar.gz: 84953db540e4d1ceff87f3d44157d98df7727f55
5
5
  SHA512:
6
- metadata.gz: 5c721b8a4f1e67a3e62ee457869f8afb0f83c39f92e979dc7c63fa1300a03538b9a5ac1b9917b7e39ea44ad9ff89fca1734cedd37d34185c99655d5e6420e2f9
7
- data.tar.gz: 4e723b946fbd68b08ef751d2785171a24a0a4c66fec6a1fd6de67cc4992c44952ebdc152321dffb4f6fc9034961eaf510a9579dbdead94534b372ec6055672f1
6
+ metadata.gz: 0a2d83ecaaf191b1e3a0e8cca147f76d2ee0bbd5e175ae9c249f6986f8934d4fd58bae41499a0771dfacf25a9b36558b2fa06f74f9197cde7446060fd13dfe51
7
+ data.tar.gz: d47fceee3c971d97f4025d97dc306c3bb3631f031349ff465360b579ca9beaa9f161a32592a58c5a49c4ab7b9870191d8adfa727aa8f394b3a4d10252eb0f0fb
data/README.md CHANGED
@@ -5,14 +5,13 @@ Simple gem for implementing texter classes which allow sending SMS messages in s
5
5
  Unlike similar gems, **Textris** has some unique features:
6
6
 
7
7
  - e-mail proxy allowing to inspect messages using [Mailinator](https://mailinator.com/) or similar service
8
- - phone number E164 validation and normalization with the [Phony](https://github.com/floere/phony) gem
8
+ - phone number E164 validation and normalization with the [phony](https://github.com/floere/phony) gem
9
9
  - multiple, per-environment configurable and chainable delivery methods
10
+ - built-in support for the Twilio API thanks to the [twilio-ruby](https://github.com/twilio/twilio-ruby) gem
10
11
  - extensible with any number of custom delivery methods (also chainable)
11
12
  - support for testing using self-explanatory `Textris::Base.deliveries`
12
13
  - simple, extensible code written from the ground up instead of copying *ActionMailer*
13
14
 
14
- Currently, this gem comes with `test` and `mail` delivery methods, so there's no method for any real SMS gateway yet. Still, you can easily implement your own - see the [Custom delivery methods](#custom-delivery-methods) chapter below.
15
-
16
15
  ## Installation
17
16
 
18
17
  Add to `Gemfile`:
@@ -57,9 +56,22 @@ class User < ActiveRecord::Base
57
56
  end
58
57
  ```
59
58
 
59
+ ### Twilio
60
+
61
+ In order to use Twilio with textris, you must pre-configure the *twilio-ruby* settings. Create the `config/initializers/twilio.rb`:
62
+
63
+ ```ruby
64
+ Twilio.configure do |config|
65
+ config.account_sid = 'some_sid'
66
+ config.auth_token = 'some_auth_token'
67
+ end
68
+ ```
69
+
70
+ > Unless otherwise [configured](#configuration), Twilio will be the default delivery method in `development` and `production` environment, while the `test` method will be used in (surprise, surprise) `test` environment by default.
71
+
60
72
  ### Custom delivery methods
61
73
 
62
- Place desired delivery method in `app/deliveries/<name>_delivery.rb` (e.g. `app/deliveries/my_provider_delivery.rb`):
74
+ Currently, textris comes with `twilio`, `test` and `mail` delivery methods built-in, but you can easily implement your own. Place desired delivery method class in `app/deliveries/<name>_delivery.rb` (e.g. `app/deliveries/my_provider_delivery.rb`):
63
75
 
64
76
  ```ruby
65
77
  class MyProviderDelivery < Textris::Delivery::Base
@@ -75,10 +87,10 @@ class MyProviderDelivery < Textris::Delivery::Base
75
87
  end
76
88
  ```
77
89
 
78
- > **NOTE**: You can also place your custom deliveries in `app/texters` if you don't want to clutter the *app* directory too much.
79
-
80
90
  Only one of methods above must be implemented for the delivery class to work. In case of multiple phone numbers and no implementation of *send_message_to_all*, the *send_message* method will be invoked multiple times.
81
91
 
92
+ > **NOTE**: You can also place your custom deliveries in `app/texters` if you don't want to clutter the *app* directory too much.
93
+
82
94
  After implementing your own deliveries, you can activate them by setting app configuration:
83
95
 
84
96
  ```ruby
@@ -86,7 +98,7 @@ After implementing your own deliveries, you can activate them by setting app con
86
98
  config.textris_delivery_method = :my_provider
87
99
 
88
100
  # Chain your new delivery with others, including stock ones
89
- config.textris_delivery_method = [:my_provider, :mail]
101
+ config.textris_delivery_method = [:my_provider, :twilio, :mail]
90
102
  ```
91
103
 
92
104
  ## Testing
@@ -120,6 +132,9 @@ You can change default settings by placing them in any of environment files, lik
120
132
  Choose the delivery method:
121
133
 
122
134
  ```ruby
135
+ # Send messages via the Twilio REST API using the twilio-ruby gem
136
+ config.textris_delivery_method = :twilio
137
+
123
138
  # Don't send anything, access your messages via Textris::Base.deliveries
124
139
  config.textris_delivery_method = :test
125
140
 
@@ -7,3 +7,4 @@ require 'textris/delivery'
7
7
  require 'textris/delivery/base'
8
8
  require 'textris/delivery/test'
9
9
  require 'textris/delivery/mail'
10
+ require 'textris/delivery/twilio'
@@ -6,7 +6,11 @@ module Textris
6
6
  methods = Rails.application.config.try(:textris_delivery_method)
7
7
  methods = [*methods].compact
8
8
  if methods.blank?
9
- methods = [:test]
9
+ if Rails.env.test?
10
+ methods = [:test]
11
+ else
12
+ methods = [:twilio]
13
+ end
10
14
  end
11
15
 
12
16
  methods.map do |method|
@@ -0,0 +1,22 @@
1
+ require 'twilio-ruby'
2
+
3
+ module Textris
4
+ module Delivery
5
+ class Twilio < Textris::Delivery::Base
6
+ class << self
7
+ private
8
+
9
+ def send_message(to, message)
10
+ client.messages.create(
11
+ :from => message.from_phone,
12
+ :to => to,
13
+ :body => message.content)
14
+ end
15
+
16
+ def client
17
+ @client ||= Twilio::REST::Client.new
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: textris
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karol Słuszniak
@@ -54,6 +54,7 @@ files:
54
54
  - lib/textris/delivery/base.rb
55
55
  - lib/textris/delivery/mail.rb
56
56
  - lib/textris/delivery/test.rb
57
+ - lib/textris/delivery/twilio.rb
57
58
  - lib/textris/message.rb
58
59
  homepage: http://github.com/visualitypl/textris
59
60
  licenses: