cellular 1.2.0 → 1.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: b2b557a411a9a042061ab2725cc29921a353cf55
4
- data.tar.gz: b3c248d7b158b41ce1015f68431b395e1c278db8
3
+ metadata.gz: 795f3cf5910cae941deac18841ab94e637597054
4
+ data.tar.gz: 20b41bc30ceee340d9daa9b129ce456c518d5e78
5
5
  SHA512:
6
- metadata.gz: d4cf9e5c7b6b22d90ed3cc99d60fbb9d44051d6e789b33463136bfceeaf0202ce012a248a946e07a3ef4892d1fa699dab57b8d557027a3b921cbc252aa360ca7
7
- data.tar.gz: 0850f3123d23661353059947a672e2a56ba5774d2e90b2e0d856fd5658a3dd55f5be341092bf2bf4259d31230b13b183fcb9eff460aeedc98d4eb6bfd9589680
6
+ metadata.gz: 9d6de54b0843941760b6c9cd0a728a80d37d357d728cd3a999e703754bf315aad26395da9834272fd3cf3513b3e92066d5cca2c7e0f2588bddfea59e014c12e7
7
+ data.tar.gz: 7b2cb314b60c8c43e646b50c2005ce98e86132002c3db9d92df124b27339c35312c5fb7dace0956fa0f37dbb401be1ce952e13314f6e02f9f9c576dcb2d425cc
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
3
  - 2.0.0
5
4
  - 2.1.0
6
5
  script: bundle exec rake spec
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  Licensed under the **MIT** license
2
2
 
3
- > Copyright (c) 2014 Hyper
3
+ > Copyright (c) 2014 Hyper Interaktiv AS
4
4
  >
5
5
  > Permission is hereby granted, free of charge, to any person obtaining
6
6
  > a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # Cellular
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/cellular.png)](https://rubygems.org/gems/cellular)
4
- [![Build Status](https://secure.travis-ci.org/hyperoslo/cellular.png?branch=master)](https://travis-ci.org/hyperoslo/cellular)
5
- [![Dependency Status](https://gemnasium.com/hyperoslo/cellular.png)](https://gemnasium.com/hyperoslo/cellular)
6
- [![Code Climate](https://codeclimate.com/github/hyperoslo/cellular.png)](https://codeclimate.com/github/hyperoslo/cellular)
7
- [![Coverage Status](https://coveralls.io/repos/hyperoslo/cellular/badge.png?branch=master)](https://coveralls.io/r/hyperoslo/cellular)
3
+ [![Gem Version](https://img.shields.io/gem/v/cellular.svg?style=flat)](https://rubygems.org/gems/cellular)
4
+ [![Build Status](https://img.shields.io/travis/hyperoslo/cellular.svg?style=flat)](https://travis-ci.org/hyperoslo/cellular)
5
+ [![Dependency Status](https://img.shields.io/gemnasium/hyperoslo/cellular.svg?style=flat)](https://gemnasium.com/hyperoslo/cellular)
6
+ [![Code Climate](https://img.shields.io/codeclimate/github/hyperoslo/cellular.svg?style=flat)](https://codeclimate.com/github/hyperoslo/cellular)
7
+ [![Coverage Status](https://img.shields.io/coveralls/hyperoslo/cellular.svg?style=flat)](https://coveralls.io/r/hyperoslo/cellular)
8
8
 
9
9
  Sending and receiving SMSs with Ruby through pluggable backends.
10
10
 
11
- **Supported Ruby versions: 1.9.3 or higher**
11
+ **Supported Ruby versions: 2.0.0 or higher**
12
12
 
13
13
  Licensed under the **MIT** license, see LICENSE for more information.
14
14
 
@@ -38,14 +38,17 @@ Cellular.configure do |config|
38
38
  config.password = 'password'
39
39
  config.backend = Cellular::Backends::Sendega
40
40
  config.sender = 'Default custom sender'
41
+ config.country_code = 'NO'
41
42
  end
42
43
  ```
43
44
 
44
45
 
45
46
  ### Available Backends
46
47
 
47
- * CoolSMS (http://coolsms.com/)
48
- * Sendega (http://sendega.com/)
48
+ * [CoolSMS](http://coolsms.com/)
49
+ * [Sendega](http://sendega.com/)
50
+ * Log (logs to `$stdout`)
51
+ * Test (adds messages to `Cellular.deliveries`)
49
52
 
50
53
 
51
54
  ### Sending SMSs
@@ -56,12 +59,34 @@ The options supported may differ between backends.
56
59
  sms = Cellular::SMS.new(
57
60
  recipient: '47xxxxxxxx',
58
61
  sender: 'Custom sender',
59
- message: 'This is an SMS message'
62
+ message: 'This is an SMS message',
63
+ price: 0,
64
+ country_code: 'NO' # defaults to Cellular.config.country_code
60
65
  )
61
66
 
62
67
  sms.deliver
63
68
  ```
64
69
 
70
+ You can also use Sidekiq to send texts, which is great if you're in a Rails app
71
+ and are concerned that it might time out or something. Actually, if you have
72
+ Sidekiq at your disposal, it's a great idea anyway! To use it, just call
73
+ `deliver_later` instead of `deliver` on the SMS object:
74
+
75
+ ```ruby
76
+ sms = Cellular::SMS.new(
77
+ recipient: '47xxxxxxxx',
78
+ sender: 'Custom sender',
79
+ message: 'This is an SMS message'
80
+ )
81
+
82
+ sms.deliver_later
83
+ ```
84
+
85
+ This will create a Sidekiq job for you on the **cellular** queue, so make sure
86
+ that Sidekiq is processing that queue.
87
+
88
+ [sidekiq]: http://sidekiq.org
89
+
65
90
 
66
91
  ## Contributing
67
92
 
@@ -22,13 +22,16 @@ Gem::Specification.new do |gem|
22
22
  gem.add_dependency 'httparty', '~> 0.13.0'
23
23
  gem.add_dependency 'savon', '~> 2.0'
24
24
 
25
- gem.add_development_dependency 'pry'
25
+ gem.add_development_dependency 'pry', '~> 0.10'
26
26
 
27
- gem.add_development_dependency 'guard'
28
- gem.add_development_dependency 'guard-rspec'
29
- gem.add_development_dependency 'rake'
30
- gem.add_development_dependency 'webmock'
27
+ gem.add_development_dependency 'guard', '~> 2.6'
28
+ gem.add_development_dependency 'guard-rspec', '~> 4.3'
29
+ gem.add_development_dependency 'rake', '~> 10.3'
30
+ gem.add_development_dependency 'webmock', '~> 1.19'
31
31
 
32
- gem.add_development_dependency 'coveralls'
33
- gem.add_development_dependency 'simplecov'
32
+ gem.add_development_dependency 'sidekiq', '~> 3.2'
33
+ gem.add_development_dependency 'rspec-rails', '~> 2.99'
34
+
35
+ gem.add_development_dependency 'coveralls', '~> 0.7'
36
+ gem.add_development_dependency 'simplecov', '~> 0.9'
34
37
  end
@@ -2,10 +2,13 @@ require 'cellular/version'
2
2
  require 'cellular/configuration'
3
3
  require 'cellular/models/sms'
4
4
  require 'cellular/backends'
5
+ require 'cellular/jobs'
5
6
 
6
7
  module Cellular
8
+ @deliveries = []
7
9
 
8
10
  class << self
11
+ attr_accessor :deliveries
9
12
  attr_accessor :config
10
13
 
11
14
  def configure
@@ -2,5 +2,7 @@ module Cellular
2
2
  module Backends
3
3
  autoload :CoolSMS, 'cellular/backends/cool_sms'
4
4
  autoload :Sendega, 'cellular/backends/sendega'
5
+ autoload :Log, 'cellular/backends/log'
6
+ autoload :Test, 'cellular/backends/test'
5
7
  end
6
8
  end
@@ -0,0 +1,13 @@
1
+ module Cellular
2
+ module Backends
3
+ class Log
4
+ def self.deliver(options = {})
5
+ $stdout.puts options[:message]
6
+ end
7
+
8
+ def self.receive(data)
9
+ raise NotImplementedError
10
+ end
11
+ end
12
+ end
13
+ end
@@ -32,7 +32,7 @@ module Cellular
32
32
  # 9007 -- Demo account empty
33
33
  #
34
34
  # See Gate API Documentation:
35
- # http://www.sendega.no/downloads/Sendega%20API%20documentation%20v2.0.pdf
35
+ # http://controlpanel.sendega.no/Content/Sendega%20-%20API%20documentation%20v2.3.pdf
36
36
 
37
37
  savon_options[:wsdl] = GATEWAY_URL
38
38
 
@@ -0,0 +1,13 @@
1
+ module Cellular
2
+ module Backends
3
+ class Test
4
+ def self.deliver(options = {})
5
+ Cellular.deliveries << options[:message]
6
+ end
7
+
8
+ def self.receive(data)
9
+ raise NotImplementedError
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ begin
2
+ require "sidekiq"
3
+ rescue LoadError
4
+ end
5
+
6
+ module Cellular
7
+ module Jobs
8
+ require 'cellular/jobs/async_messenger'
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ class Cellular::Jobs::AsyncMessenger
2
+ include Sidekiq::Worker
3
+
4
+ sidekiq_options queue: :cellular, retry: false
5
+
6
+ def perform(sms_options)
7
+ sms_options.keys.each do |key|
8
+ sms_options[key.to_sym] = sms_options.delete key
9
+ end
10
+
11
+ sms = Cellular::SMS.new sms_options
12
+ sms.deliver
13
+ end
14
+
15
+ end
@@ -1,7 +1,7 @@
1
1
  module Cellular
2
2
  class SMS
3
3
 
4
- attr_accessor :recipient, :sender, :message, :price, :country
4
+ attr_accessor :recipient, :sender, :message, :price, :country_code
5
5
 
6
6
  def initialize(options = {})
7
7
  @backend = Cellular.config.backend
@@ -10,23 +10,20 @@ module Cellular
10
10
  @sender = options[:sender] || Cellular.config.sender
11
11
  @message = options[:message]
12
12
  @price = options[:price] || Cellular.config.price
13
- @country = options[:country] || Cellular.config.country_code
13
+ @country_code = options[:country_code] || Cellular.config.country_code
14
14
 
15
15
  @delivered = false
16
16
  end
17
17
 
18
18
  def deliver
19
- @delivery_status, @delivery_message = @backend.deliver(
20
- recipient: @recipient,
21
- sender: @sender,
22
- price: @price,
23
- country: @country,
24
- message: @message
25
- )
26
-
19
+ @delivery_status, @delivery_message = @backend.deliver options
27
20
  @delivered = true
28
21
  end
29
22
 
23
+ def deliver_later
24
+ Cellular::Jobs::AsyncMessenger.perform_async options
25
+ end
26
+
30
27
  def save(options = {})
31
28
  raise NotImplementedError
32
29
  end
@@ -38,6 +35,28 @@ module Cellular
38
35
  def delivered?
39
36
  @delivered
40
37
  end
38
+
39
+ def country
40
+ warn "[DEPRECATION] 'country' is deprecated; use 'country_code' instead"
41
+ @country_code
42
+ end
43
+
44
+ def country=(country)
45
+ warn "[DEPRECATION] 'country' is deprecated; use 'country_code' instead"
46
+ @country_code = country
47
+ end
48
+
49
+ private
50
+
51
+ def options
52
+ {
53
+ recipient: @recipient,
54
+ sender: @sender,
55
+ message: @message,
56
+ price: @price,
57
+ country_code: @country_code
58
+ }
59
+ end
41
60
 
42
61
  end
43
62
  end
@@ -1,3 +1,3 @@
1
1
  module Cellular
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cellular::Backends::Log do
4
+
5
+ let(:recipient) { '47xxxxxxxx' }
6
+ let(:sender) { 'Custom sender' }
7
+ let(:message) { 'This is an SMS message' }
8
+ let(:price) { 100 }
9
+ let(:country) { 'NO '}
10
+
11
+ let(:options) {
12
+ {
13
+ recipient: recipient,
14
+ sender: sender,
15
+ message: message,
16
+ price: price
17
+ }
18
+ }
19
+
20
+ before do
21
+ Cellular.config.username = 'username'
22
+ Cellular.config.password = 'password'
23
+ Cellular.config.delivery_url = nil
24
+ end
25
+
26
+ describe '::deliver' do
27
+ let(:deliveries) { Cellular.deliveries }
28
+
29
+ it 'logs the message' do
30
+ expect(STDOUT).to receive(:puts)
31
+ described_class.deliver(options)
32
+ end
33
+ end
34
+
35
+ describe '::receive' do
36
+ it 'has not been implemented yet' do
37
+ expect do
38
+ described_class.receive ''
39
+ end.to raise_error NotImplementedError
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cellular::Backends::Test do
4
+
5
+ let(:recipient) { '47xxxxxxxx' }
6
+ let(:sender) { 'Custom sender' }
7
+ let(:message) { 'This is an SMS message' }
8
+ let(:price) { 100 }
9
+ let(:country) { 'NO '}
10
+
11
+ let(:options) {
12
+ {
13
+ recipient: recipient,
14
+ sender: sender,
15
+ message: message,
16
+ price: price
17
+ }
18
+ }
19
+
20
+ before do
21
+ Cellular.config.username = 'username'
22
+ Cellular.config.password = 'password'
23
+ Cellular.config.delivery_url = nil
24
+ end
25
+
26
+ describe '::deliver' do
27
+ let(:deliveries) { Cellular.deliveries }
28
+ let(:delivery) { deliveries.first }
29
+
30
+ before do
31
+ Cellular.deliveries.clear
32
+ end
33
+
34
+ it 'appends the message to deliveries' do
35
+ described_class.deliver message: 'This is a message'
36
+ expect(deliveries.count).to eq 1
37
+ end
38
+
39
+ it 'stores the message of the message' do
40
+ described_class.deliver message: 'This is a message'
41
+ expect(delivery).to eq 'This is a message'
42
+ end
43
+ end
44
+
45
+ describe '::receive' do
46
+ it 'has not been implemented yet' do
47
+ expect do
48
+ described_class.receive ''
49
+ end.to raise_error NotImplementedError
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cellular::Jobs::AsyncMessenger do
4
+ let(:sms_stub) { double "SMS", deliver: true }
5
+ let(:sms_options) { { "recipient" => "12345678", "text" => "Foo" } }
6
+
7
+ it 'creates a new SMS object' do
8
+ symbolized_sms_options = { recipient: "12345678", text: "Foo" }
9
+
10
+ expect(Cellular::SMS).to receive(:new)
11
+ .with(symbolized_sms_options)
12
+ .and_return sms_stub
13
+
14
+ subject.perform sms_options
15
+ end
16
+
17
+ it "delivers the SMS" do
18
+ allow(Cellular::SMS).to receive(:new).and_return sms_stub
19
+
20
+ expect(sms_stub).to receive :deliver
21
+
22
+ subject.perform sms_options
23
+ end
24
+ end
@@ -2,11 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe Cellular::SMS do
4
4
 
5
- let(:recipient) { '47xxxxxxxx' }
6
- let(:sender) { 'Custom sender' }
7
- let(:message) { 'This is an SMS message' }
8
- let(:price) { 100 }
9
- let(:country) { 'NO'}
5
+ let(:recipient) { '47xxxxxxxx' }
6
+ let(:sender) { 'Custom sender' }
7
+ let(:message) { 'This is an SMS message' }
8
+ let(:price) { 100 }
9
+ let(:country_code) { 'NO'}
10
10
 
11
11
  subject do
12
12
  described_class.new(
@@ -14,7 +14,7 @@ describe Cellular::SMS do
14
14
  sender: sender,
15
15
  message: message,
16
16
  price: price,
17
- country: country
17
+ country_code: country_code
18
18
  )
19
19
  end
20
20
 
@@ -23,11 +23,11 @@ describe Cellular::SMS do
23
23
  end
24
24
 
25
25
  describe '#initialize' do
26
- its(:recipient) { should eq recipient }
27
- its(:sender) { should eq sender }
28
- its(:message) { should eq message }
29
- its(:price) { should eq price }
30
- its(:country) { should eq country }
26
+ its(:recipient) { should eq recipient }
27
+ its(:sender) { should eq sender }
28
+ its(:message) { should eq message }
29
+ its(:price) { should eq price }
30
+ its(:country_code) { should eq country_code }
31
31
 
32
32
  it { should_not be_delivered }
33
33
 
@@ -58,7 +58,7 @@ describe Cellular::SMS do
58
58
 
59
59
  subject { described_class.new }
60
60
 
61
- its(:country) { should eq 'NL' }
61
+ its(:country_code) { should eq 'NL' }
62
62
  end
63
63
  end
64
64
 
@@ -68,7 +68,7 @@ describe Cellular::SMS do
68
68
  recipient: recipient,
69
69
  sender: sender,
70
70
  price: price,
71
- country: country,
71
+ country_code: country_code,
72
72
  message: message
73
73
  )
74
74
  end
@@ -79,6 +79,25 @@ describe Cellular::SMS do
79
79
  end
80
80
  end
81
81
 
82
+ describe "#deliver_later" do
83
+ it "calls out to the Sidekiq job to send the SMS" do
84
+ sms_options = {
85
+ receiver: "12345678",
86
+ message: "Test SMS"
87
+ }
88
+
89
+ expect(Cellular::Jobs::AsyncMessenger)
90
+ .to receive(:perform_async)
91
+ .with sms_options
92
+
93
+ sms = Cellular::SMS.new sms_options
94
+
95
+ allow(sms).to receive(:options).and_return sms_options
96
+
97
+ sms.deliver_later
98
+ end
99
+ end
100
+
82
101
  describe '#save' do
83
102
  it 'has not been implemented yet' do
84
103
  expect do
@@ -95,4 +114,29 @@ describe Cellular::SMS do
95
114
  end
96
115
  end
97
116
 
117
+ describe '#country' do
118
+ it 'issues a deprecation warning' do
119
+ expect(subject).to receive(:warn)
120
+ subject.country
121
+ end
122
+
123
+ it 'returns country_code' do
124
+ allow(subject).to receive(:warn)
125
+ expect(subject.country).to eq(subject.country_code)
126
+ end
127
+ end
128
+
129
+ describe '#country=' do
130
+ it 'issues a deprecation warning' do
131
+ expect(subject).to receive(:warn)
132
+ subject.country = 'Test'
133
+ end
134
+
135
+ it 'assigns country_code' do
136
+ allow(subject).to receive(:warn)
137
+ subject.country = 'Test'
138
+ expect(subject.country_code).to eq('Test')
139
+ end
140
+ end
141
+
98
142
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cellular
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sindre Moen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-05 00:00:00.000000000 Z
12
+ date: 2014-11-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -43,100 +43,128 @@ dependencies:
43
43
  name: pry
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: '0.10'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ">="
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '0'
55
+ version: '0.10'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: guard
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: '2.6'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: '2.6'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: guard-rspec
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: '4.3'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: '4.3'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: rake
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: '10.3'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: '10.3'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: webmock
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '1.19'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '1.19'
112
+ - !ruby/object:Gem::Dependency
113
+ name: sidekiq
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.2'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.2'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec-rails
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
103
131
  - !ruby/object:Gem::Version
104
- version: '0'
132
+ version: '2.99'
105
133
  type: :development
106
134
  prerelease: false
107
135
  version_requirements: !ruby/object:Gem::Requirement
108
136
  requirements:
109
- - - ">="
137
+ - - "~>"
110
138
  - !ruby/object:Gem::Version
111
- version: '0'
139
+ version: '2.99'
112
140
  - !ruby/object:Gem::Dependency
113
141
  name: coveralls
114
142
  requirement: !ruby/object:Gem::Requirement
115
143
  requirements:
116
- - - ">="
144
+ - - "~>"
117
145
  - !ruby/object:Gem::Version
118
- version: '0'
146
+ version: '0.7'
119
147
  type: :development
120
148
  prerelease: false
121
149
  version_requirements: !ruby/object:Gem::Requirement
122
150
  requirements:
123
- - - ">="
151
+ - - "~>"
124
152
  - !ruby/object:Gem::Version
125
- version: '0'
153
+ version: '0.7'
126
154
  - !ruby/object:Gem::Dependency
127
155
  name: simplecov
128
156
  requirement: !ruby/object:Gem::Requirement
129
157
  requirements:
130
- - - ">="
158
+ - - "~>"
131
159
  - !ruby/object:Gem::Version
132
- version: '0'
160
+ version: '0.9'
133
161
  type: :development
134
162
  prerelease: false
135
163
  version_requirements: !ruby/object:Gem::Requirement
136
164
  requirements:
137
- - - ">="
165
+ - - "~>"
138
166
  - !ruby/object:Gem::Version
139
- version: '0'
167
+ version: '0.9'
140
168
  description: Sending and receiving SMSs through pluggable backends
141
169
  email:
142
170
  - johannes@hyper.no
@@ -145,7 +173,6 @@ extensions: []
145
173
  extra_rdoc_files: []
146
174
  files:
147
175
  - ".gitignore"
148
- - ".rspec"
149
176
  - ".travis.yml"
150
177
  - Gemfile
151
178
  - Guardfile
@@ -156,13 +183,20 @@ files:
156
183
  - lib/cellular.rb
157
184
  - lib/cellular/backends.rb
158
185
  - lib/cellular/backends/cool_sms.rb
186
+ - lib/cellular/backends/log.rb
159
187
  - lib/cellular/backends/sendega.rb
188
+ - lib/cellular/backends/test.rb
160
189
  - lib/cellular/configuration.rb
190
+ - lib/cellular/jobs.rb
191
+ - lib/cellular/jobs/async_messenger.rb
161
192
  - lib/cellular/models/sms.rb
162
193
  - lib/cellular/version.rb
163
194
  - spec/cellular/backends/cool_sms_spec.rb
195
+ - spec/cellular/backends/log_spec.rb
164
196
  - spec/cellular/backends/sendega_spec.rb
197
+ - spec/cellular/backends/test_spec.rb
165
198
  - spec/cellular/configuration_spec.rb
199
+ - spec/cellular/jobs/async_messenger_spec.rb
166
200
  - spec/cellular/models/sms_spec.rb
167
201
  - spec/cellular_spec.rb
168
202
  - spec/fixtures/backends/cool_sms/failure.xml
@@ -191,14 +225,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
225
  version: '0'
192
226
  requirements: []
193
227
  rubyforge_project:
194
- rubygems_version: 2.2.0
228
+ rubygems_version: 2.2.2
195
229
  signing_key:
196
230
  specification_version: 4
197
231
  summary: Sending and receiving SMSs through pluggable backends
198
232
  test_files:
199
233
  - spec/cellular/backends/cool_sms_spec.rb
234
+ - spec/cellular/backends/log_spec.rb
200
235
  - spec/cellular/backends/sendega_spec.rb
236
+ - spec/cellular/backends/test_spec.rb
201
237
  - spec/cellular/configuration_spec.rb
238
+ - spec/cellular/jobs/async_messenger_spec.rb
202
239
  - spec/cellular/models/sms_spec.rb
203
240
  - spec/cellular_spec.rb
204
241
  - spec/fixtures/backends/cool_sms/failure.xml
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color