active_sms 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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