sms_gateway 0.1.0 → 0.1.1

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.
@@ -2,11 +2,11 @@
2
2
 
3
3
  The SMS Gateway gem provides a simple and extensible interface for
4
4
  various SMS Gateways. It is loosely oriented on Action Mailer. The
5
- gem allows you to create a SMS and deliver it synchronously or
6
- asynchronously. So far it only ships with the following adapters.
5
+ gem allows you to create an SMS and deliver it synchronously or
6
+ asynchronously. So far it ships with the following adapters:
7
7
 
8
8
  * smsglobal.com
9
- * a dummy adapter for testing purposes
9
+ * smstrade.de
10
10
 
11
11
 
12
12
  = Installation
@@ -21,22 +21,22 @@ gem's generator:
21
21
 
22
22
  rails g sms_gateway:install
23
23
 
24
- The generator installs an initializer and a yml file which you will need
25
- to configure before sending a SMS.
24
+ which installs an initializer and a yml file that you will need
25
+ to configure before sending out an SMS.
26
26
 
27
27
 
28
28
  == Resque and Redis
29
29
 
30
- To deliver SMS asynchronously this gem makes use of resque, a
31
- popular queing system basd on the key-value data store redis. You need
32
- to have a working resque and redis setup if you want to use
33
- the aynchronous feature. For more information on resque visit
30
+ To deliver SMS asynchronously this gem makes use of resque, a popular
31
+ queing system basd on the key-value data store redis. You need
32
+ to have a working resque and redis setup if you want to use the
33
+ aynchronous sending feature. For more information on resque visit
34
34
  https://github.com/defunkt/resque .
35
35
 
36
36
 
37
37
  = Usage
38
38
 
39
- Similar to action mailer you create the message object first:
39
+ Similar to action mailer you create a message object first:
40
40
 
41
41
  m = SmsGateway::Sms.new(:from => '493088888888, :to => '49309999999',
42
42
  :text => 'my sms must not be longer than 160 characters.')
@@ -67,6 +67,7 @@ So far the gem is pretty limited. Ideas for following version are:
67
67
  * more and better unit tests
68
68
  * more sms gateway apis
69
69
  * decoupling of resque
70
+ * error handling
70
71
 
71
72
 
72
73
  = License
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'bundler'
2
2
  require 'rake/testtask'
3
- require 'rake/rdoctask'
3
+ require 'rdoc/task'
4
4
 
5
5
  Bundler::GemHelper.install_tasks
6
6
 
@@ -0,0 +1,23 @@
1
+ module SmsGateway
2
+
3
+ module Adapters
4
+
5
+ class BetterOpener
6
+
7
+ def initialize(config={})
8
+ @config = {:from => SmsGateway::Base.from}
9
+ @config.merge!(config)
10
+ end
11
+
12
+ def send_sms(sms)
13
+ options = @config.merge({:to => sms.to, :message => sms.text})
14
+ BetterOpener.add_notification("sms", sms.text, sms.text)
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+
@@ -1,14 +1,29 @@
1
1
 
2
2
  module SmsGateway
3
+
4
+ class Base
5
+
6
+ class << self
7
+ attr_reader :deliveries
8
+ end
9
+
10
+ @deliveries = []
11
+ end
12
+
13
+
3
14
  module Adapters
4
15
 
5
16
  class Test
17
+
18
+ attr_accessor :deliveries
19
+
6
20
  def initialize(config={})
7
21
  @logger = Logger.new(STDOUT)
8
22
  end
9
23
 
10
24
  def send_sms(sms)
11
- @logger.info "would be sending sms: #{sms.to_s}"
25
+ #@logger.info "would be sending sms: #{sms.to_s}"
26
+ SmsGateway::Base.deliveries << sms
12
27
  end
13
28
 
14
29
  end
@@ -1,4 +1,4 @@
1
1
  module SmsGateway
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
4
4
 
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.email = ["kai@doxter.de"]
11
11
  s.homepage = ""
12
12
  s.summary = %q{Simple and flexible interface to SMS Gateways}
13
- s.description = %q{Provides an interface to SMS Gateways. So far it supports smsglobal.com.}
13
+ s.description = %q{Provides an interface to SMS Gateways. So far it supports smsglobal.com and smstrade.de}
14
14
 
15
15
  s.rubyforge_project = "sms_gateway"
16
16
 
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency('resque')
24
24
 
25
25
  s.add_development_dependency('webmock')
26
+ s.add_development_dependency('debugger')
26
27
 
27
28
  end
28
29
 
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ class SmsGateway::Adapters::SmsGatewayTest < Test::Unit::TestCase
4
+ include SmsGateway
5
+
6
+ def test_test_adapter
7
+
8
+ SmsGateway::Base.config = {
9
+ :from => '493011111111',
10
+ :user => 'userid',
11
+ :password => 'secret',
12
+ :adapter => 'test'
13
+ }
14
+
15
+ sms = Sms.new(:to => '493088888888', :text => "hello")
16
+
17
+ assert_equal 0, SmsGateway::Base.deliveries.size
18
+ sms.deliver
19
+ assert_equal 1, SmsGateway::Base.deliveries.size
20
+
21
+ end
22
+
23
+
24
+ end
25
+
26
+
27
+
28
+
@@ -2,6 +2,7 @@
2
2
  require 'rubygems'
3
3
  require 'test/unit'
4
4
  require 'webmock/test_unit'
5
+ require 'debugger'
5
6
 
6
7
  require 'sms_gateway'
7
8
 
metadata CHANGED
@@ -1,79 +1,94 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sms_gateway
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Kai Rubarth
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-04 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-01-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: httparty
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: resque
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: resque
32
+ requirement: !ruby/object:Gem::Requirement
38
33
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
46
38
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
49
47
  name: webmock
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
50
55
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: debugger
64
+ requirement: !ruby/object:Gem::Requirement
52
65
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
60
70
  type: :development
61
- version_requirements: *id003
62
- description: Provides an interface to SMS Gateways. So far it supports smsglobal.com.
63
- email:
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: Provides an interface to SMS Gateways. So far it supports smsglobal.com
79
+ and smstrade.de
80
+ email:
64
81
  - kai@doxter.de
65
82
  executables: []
66
-
67
83
  extensions: []
68
-
69
84
  extra_rdoc_files: []
70
-
71
- files:
85
+ files:
72
86
  - .gitignore
73
87
  - Gemfile
74
88
  - README.rdoc
75
89
  - Rakefile
76
90
  - lib/sms_gateway.rb
91
+ - lib/sms_gateway/adapters/better_opener.rb
77
92
  - lib/sms_gateway/adapters/sms_global.rb
78
93
  - lib/sms_gateway/adapters/sms_trade.rb
79
94
  - lib/sms_gateway/adapters/test.rb
@@ -87,39 +102,30 @@ files:
87
102
  - sms_gateway.gemspec
88
103
  - test/configuration_test.rb
89
104
  - test/sms_gateway_test.rb
105
+ - test/test_adapter_test.rb
90
106
  - test/test_helper.rb
91
- homepage: ""
107
+ homepage: ''
92
108
  licenses: []
93
-
94
109
  post_install_message:
95
110
  rdoc_options: []
96
-
97
- require_paths:
111
+ require_paths:
98
112
  - lib
99
- required_ruby_version: !ruby/object:Gem::Requirement
113
+ required_ruby_version: !ruby/object:Gem::Requirement
100
114
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: 3
105
- segments:
106
- - 0
107
- version: "0"
108
- required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
120
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- hash: 3
114
- segments:
115
- - 0
116
- version: "0"
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
117
125
  requirements: []
118
-
119
126
  rubyforge_project: sms_gateway
120
- rubygems_version: 1.8.10
127
+ rubygems_version: 1.8.23
121
128
  signing_key:
122
129
  specification_version: 3
123
130
  summary: Simple and flexible interface to SMS Gateways
124
131
  test_files: []
125
-