tww 0.2.0 → 0.3.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: a219a2a6c7e35cd577a66d93804ff9e0b5a68330
4
- data.tar.gz: 326f855938c37d1a52be2858b6ffcfb74698ea2a
3
+ metadata.gz: 8622b73ff31b0ee85a6d40fbb8f7b8a19983fc2e
4
+ data.tar.gz: e0cbbb0b9bcc6e9f94eb6d1d61f7d803490c9c7d
5
5
  SHA512:
6
- metadata.gz: f543d46042744f4ebf40722c83287595294f11d08429c50dee9ec5b55a114ef8aeb1e33bc1ecd12216010f8cdf32f8cbfaee11bdb468e35a5793f6420eac396e
7
- data.tar.gz: ae97104afc9fa50f12868dd71362320ece6b18d019a5dcbc3208738a0ae28ec0c56e9acae0742315160485150ff0a3de6f2d8beb578355c2ec8ff2ca36e6a289
6
+ metadata.gz: ecb99ea6eb58aca60f2f8edceff6cd2458dc991a9e6200fe2255d1f67c07bd656e31b66c453742ca7573bbcc83e0c5868c91154c6929af0e7404798370b7f928
7
+ data.tar.gz: a4eeecc3693ad70213f9c611395e20661960854ce4eb982eb183eb148cdf58515236da4b5313958fb615248e182c5d0275cf3500cd2c34463cef78df3e5144db
data/README.md CHANGED
@@ -24,7 +24,7 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
- TODO: Write usage instructions here
27
+ To send SMS:
28
28
 
29
29
  ```ruby
30
30
  TWW.config do |config|
@@ -48,6 +48,31 @@ when resp.error?
48
48
  end
49
49
  ```
50
50
 
51
+ To fake SMS:
52
+
53
+ ```ruby
54
+ require 'rspec'
55
+ require 'tww
56
+
57
+ TWW.enable_testing!
58
+
59
+ RSpec.describe 'TWW Testing' do
60
+ before
61
+ client = TWW.client
62
+ resp = client.deliver('11987654321', 'Hello World from TWW Gem')
63
+ end
64
+
65
+ it 'is not empty' do
66
+ expect(client.sent).to_not be_empty
67
+ end
68
+
69
+ it 'is empty after clear'
70
+ client.clear
71
+ expect(client.sent).to be_empty
72
+ end
73
+ end
74
+ ```
75
+
51
76
  ## Development
52
77
 
53
78
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/lib/tww/client.rb CHANGED
@@ -1,32 +1,15 @@
1
- require 'restclient'
2
1
  require 'tww/response'
3
2
 
4
3
  module TWW
5
4
  class Client
6
- attr_accessor :config
5
+ attr_accessor :config, :sent
7
6
 
8
- def deliver(phone, message)
9
- xml = RestClient.post endpoint,
10
- NumUsu: config.username,
11
- Senha: config.password,
12
- SeuNum: config.from,
13
- Celular: phone,
14
- Mensagem: message
15
-
16
- Response.parse(xml)
17
- end
18
-
19
- private
20
- def host
21
- 'https://webservices.twwwireless.com.br'
7
+ def initialize
8
+ @sent = []
22
9
  end
23
10
 
24
- def action
25
- '/reluzcap/wsreluzcap.asmx/EnviaSMS'
26
- end
27
-
28
- def endpoint
29
- host + action
11
+ def deliver(phone, message)
12
+ raise 'Need to be implemented'
30
13
  end
31
14
  end
32
15
  end
data/lib/tww/rest.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'restclient'
2
+ require 'tww/client'
3
+
4
+ module TWW
5
+ class REST < Client
6
+ def deliver(phone, message)
7
+ xml = RestClient.post endpoint,
8
+ NumUsu: config.username,
9
+ Senha: config.password,
10
+ SeuNum: config.from,
11
+ Celular: phone,
12
+ Mensagem: message
13
+
14
+ Response.parse(xml)
15
+ end
16
+
17
+ private
18
+ def host
19
+ 'https://webservices.twwwireless.com.br'
20
+ end
21
+
22
+ def action
23
+ '/reluzcap/wsreluzcap.asmx/EnviaSMS'
24
+ end
25
+
26
+ def endpoint
27
+ host + action
28
+ end
29
+ end
30
+ end
data/lib/tww/testing.rb CHANGED
@@ -1,21 +1,20 @@
1
1
  require 'tww/client'
2
- require 'tww/response'
3
2
 
4
3
  module TWW
5
- class Client
6
- attr_accessor :sent
7
-
8
- def initialize
9
- @sent = []
10
- end
11
-
4
+ class Testing < Client
12
5
  def deliver(phone, message)
13
- sent.push(phone: phone, message: message)
14
- Response.parse('<string>OK</string>')
6
+ Response.parse("<string>#{ status(phone) }</string>").tap do |response|
7
+ sent.push(phone: phone, message: message, response: response)
8
+ end
15
9
  end
16
10
 
17
11
  def clear
18
12
  sent.clear
19
13
  end
14
+
15
+ private
16
+ def status(phone)
17
+ phone =~ /^\d{10,}$/ ? 'OK' : 'NOK'
18
+ end
20
19
  end
21
20
  end
data/lib/tww/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TWW
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/tww.rb CHANGED
@@ -1,16 +1,28 @@
1
1
  require 'tww/version'
2
2
  require 'tww/config'
3
3
  require 'tww/client'
4
+ require 'tww/rest'
5
+ require 'tww/testing'
4
6
 
5
7
  module TWW
6
- attr_accessor :config
8
+ class << self
9
+ def config
10
+ @config ||= Config.new
11
+ @config.tap { |config| yield(config) if block_given? }
12
+ end
7
13
 
8
- def self.config
9
- @config ||= Config.new
10
- @config.tap { |config| yield(config) if block_given? }
11
- end
14
+ def client
15
+ @factory.new.tap { |client| client.config = config }
16
+ end
17
+
18
+ def enable_testing!
19
+ @factory = TWW::Testing
20
+ end
12
21
 
13
- def self.client
14
- Client.new.tap { |client| client.config = config }
22
+ def disable_testing!
23
+ @factory = TWW::REST
24
+ end
15
25
  end
26
+
27
+ disable_testing!
16
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tww
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Libanori
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-01 00:00:00.000000000 Z
11
+ date: 2016-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -170,6 +170,7 @@ files:
170
170
  - lib/tww/client.rb
171
171
  - lib/tww/config.rb
172
172
  - lib/tww/response.rb
173
+ - lib/tww/rest.rb
173
174
  - lib/tww/testing.rb
174
175
  - lib/tww/version.rb
175
176
  - tww.gemspec