active_sms 0.1.0 → 0.2.0

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: 79322cdd7ad16ca0bf27f33d9d363fe19e5858d9
4
- data.tar.gz: 059ec6de57e4b9162f2a7fa2821fea6b036cb274
3
+ metadata.gz: f43dbcec303c16dfb88899f1ba8d3e2ddfabbcb9
4
+ data.tar.gz: 72e62060817e39e792f8399e843b3255e344f7fa
5
5
  SHA512:
6
- metadata.gz: 213f02915314a030ab1ea55948a06153fc85db1204a39ce9785c93abb21b35c01346f8e9278b5185ff854832acb39a4ddfa1cba997c1033efaf63539215c0c24
7
- data.tar.gz: ad8204fd9cc3084865499f351577c47253a17f459f44a4c2d11b9ce2eb3d8f69d10c1a2cd870f14b1736889b8dc16b775cd77e662f9524ca27517a736dcc50c8
6
+ metadata.gz: 43d8e793fa4bd36ae722d02a12a0ac7a1ac43b1ec6fcc35e7dc3d4a8e8e788a0990152c0f87565a82048507990d4b3df4ee162494eadd4654ea1626a86170a1a
7
+ data.tar.gz: 5ea42d6c63e10fb618485531617aecf2f9afcaeff35060a631f6ba4e3f8987f88991691ca8ff8cc4b7a96bf8d453e50be7a02b967134fab4e97cb5855c2cf970
data/README.md CHANGED
@@ -21,7 +21,11 @@ Then somewhere in your initialization code:
21
21
 
22
22
  ```ruby
23
23
  ActiveSMS.configure do |config|
24
- c.register_backend :my_backend_name, ActiveSMS::Backend::NullSender
24
+ c.register_backend :my_backend_name,
25
+ ActiveSMS::Backend::Logger,
26
+ logger: Logger.new(STDOUT),
27
+ severity: :info
28
+
25
29
  c.default_backend = :my_backend_name
26
30
  end
27
31
  ```
@@ -32,7 +36,8 @@ Now, whenever you need to send SMS, just do:
32
36
  phone = "799999999"
33
37
  text = "My sms text"
34
38
 
35
- ActiveSMS.send_sms(phone, text)
39
+ # Should print to console [SMS] 79999999999: text
40
+ ActiveSMS.send_sms("79999999999", "text")
36
41
  ```
37
42
 
38
43
  Now your code is capable of sending sms.
@@ -158,6 +163,24 @@ Here's how you can achieve that:
158
163
  ```ruby
159
164
  ActiveSMS.configure do |c|
160
165
  if development?
166
+ c.register_backend :my_custom_backend,
167
+ ActiveSMS::Backend::Logger,
168
+ logger: Logger.new(STDOUT),
169
+ severity: :info
170
+
171
+ # You can also specify different formatter for second one
172
+ logger = Logger.new(STDOUT)
173
+ logger.formatter = proc do |severity, datetime, progname, msg|
174
+ "[MYBackend2]: #{msg}\n"
175
+ end
176
+
177
+ c.register_backend :my_custom_backend2,
178
+ ActiveSMS::Backend::Logger,
179
+ logger: logger,
180
+ severity: :info
181
+ end
182
+
183
+ if test?
161
184
  c.register_backend :my_custom_backend, ActiveSMS::Backend::NullSender
162
185
  c.register_backend :my_custom_backend2, ActiveSMS::Backend::NullSender
163
186
  end
@@ -184,7 +207,7 @@ ActiveSMS.send_sms(phone, text)
184
207
  # Uses backend you specify
185
208
  ActiveSMS.send_sms(phone, text, backend: :my_custom_backend2)
186
209
 
187
- # depending on your initializer it will use different backends
210
+ # depending on your initializer it may use different backends (like in this example)
188
211
  # in different environments.
189
212
  ```
190
213
 
@@ -0,0 +1,27 @@
1
+ # Sms backend for logging outgoing sms
2
+ # instead of actually sending them
3
+ class ActiveSMS::Backend::Logger < ActiveSMS::Backend::Base
4
+ # has anyone heard how to receive log levels from logger itself?
5
+ LOG_SEVERITY = [:debug, :info, :warn, :error, :fatal, :unknown].freeze
6
+
7
+ # @param logger [::Logger] Class implementing logger interface
8
+ # @param severity [Symbol] Backend will use log severity you provide
9
+ def initialize(logger: Logger.new(STDOUT), severity: :info)
10
+ @logger = logger
11
+ @severity = severity
12
+
13
+ raise ArgumentError, "Invalid log severity" unless LOG_SEVERITY.include?(@severity)
14
+
15
+ return if @logger.respond_to?(@severity)
16
+ raise ArgumentError, "Class should implement logger interface"
17
+ end
18
+
19
+ # Method that sends phone and text to logger
20
+ #
21
+ # @phone [String] Phone number to send sms
22
+ # @text [String] Sms text
23
+ def send_sms(phone, text)
24
+ @logger.send(@severity, "[SMS] #{phone}: #{text}")
25
+ respond_with_status :success
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveSMS
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.2.0".freeze
3
3
  end
data/lib/active_sms.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "active_sms/version"
2
2
  require "active_sms/backend/base"
3
3
  require "active_sms/backend/null_sender"
4
+ require "active_sms/backend/logger"
4
5
  require "active_sms/configuration"
5
6
  require "active_sms/response"
6
7
  require "active_sms/sending"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_sms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fedcomp
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-03 00:00:00.000000000 Z
11
+ date: 2016-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,6 +141,7 @@ files:
141
141
  - active_sms.gemspec
142
142
  - lib/active_sms.rb
143
143
  - lib/active_sms/backend/base.rb
144
+ - lib/active_sms/backend/logger.rb
144
145
  - lib/active_sms/backend/null_sender.rb
145
146
  - lib/active_sms/configuration.rb
146
147
  - lib/active_sms/response.rb