smshelper 0.2.2 → 0.2.3

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.
data/Gemfile CHANGED
@@ -7,8 +7,11 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  gem 'api_smith'
9
9
  gem 'savon'
10
+ gem 'nokogiri'
10
11
  gem 'textmagic'
11
- gem 'mediaburst'
12
+
13
+ gem 'uuid'
14
+ gem 'digest-crc'
12
15
 
13
16
  group :development do
14
17
  gem "pry"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
@@ -0,0 +1,13 @@
1
+ module Smshelper
2
+ module Api
3
+ class Aql < Base
4
+ base_uri 'http://smsc.vianett.no/V3/CPA/MT'
5
+
6
+ def initialize(*args)
7
+ config = args.shift
8
+ add_query_options! :username => config.aql[:uname], :password => config.aql[:passwd]
9
+ super
10
+ end
11
+ end
12
+ end
13
+ end
@@ -10,6 +10,7 @@ module Smshelper
10
10
  @sent_message_ids, @sent_message_statuses = Array.new, Hash.new
11
11
  @response_code = ResponseCodes.new
12
12
  @extra_options = args.shift
13
+ @uuid = UUID.new
13
14
  end
14
15
  end
15
16
  end
@@ -34,7 +34,7 @@ module Smshelper
34
34
  body = body.merge(@extra_options) unless @extra_options.nil?
35
35
 
36
36
  resp = client.request(:com, :send_message_full) {|soap| soap.header["com:MessengerHeader"] = @header; soap.body = body}
37
- @sent_message_ids << resp.to_hash[:send_message_full_response][:send_message_full_result]
37
+ (@sent_message_ids << resp.to_hash[:send_message_full_response][:send_message_full_result]).first
38
38
  end
39
39
 
40
40
  def get_inbox
@@ -1,23 +1,30 @@
1
1
  module Smshelper
2
2
  module Api
3
- class MediaBurst < Base
3
+ class Mediaburst < Base
4
+ base_uri 'https://api.mediaburst.co.uk/http'
5
+
4
6
  def initialize(*args)
5
7
  config = args.shift
6
- @client = Mediaburst::API.new config.mediaburst[:uname], config.mediaburst[:passwd]
8
+ add_query_options! :username => config.mediaburst[:uname], :password => config.mediaburst[:passwd]
7
9
  super
8
10
  end
11
+
9
12
  def send_message(message)
10
13
  #TODO: rewrite Mediaburst::API.process_response to provide
11
14
  #full response data, so that msg_id could be had in @sent_message_ids
12
15
  message.utf_8 ? (q = {:msgtype => 'ucs2'}) : (q = {:msgtype => 'text'})
13
- options = {:concat => '3', :from => message.sender}.merge(q)
16
+ options = {
17
+ :to => message.recipient,
18
+ :content => message.text,
19
+ :concat => '3',
20
+ :from => message.sender}
14
21
  options = options.merge(@extra_options) unless @extra_options.nil?
15
- resp = @client.send_message message.recipient, message.text, options
16
- process_response_code(resp.values.last.to_s) ? resp.to_s : (raise ErrorDuringSend, @response_code.mediaburst(resp.values.last.to_s))
22
+ resp = (post 'send.aspx', :extra_query => options.merge(q)).to_s.split(' ').last.strip
23
+ process_response_code(resp) ? resp.to_s : (raise ErrorDuringSend, "#{self.class.name} does not provide detailed response codes")
17
24
  end
18
25
 
19
26
  def get_balance
20
- {'Messages' => @client.get_credit}
27
+ {'Messages' => (post 'credit.aspx').split(' ').last}
21
28
  end
22
29
 
23
30
  def get_status(message_id)
@@ -26,7 +33,7 @@ module Smshelper
26
33
 
27
34
  private
28
35
  def process_response_code(code)
29
- (code == 'true') ? true : false
36
+ (code =~ /Error/) ? false : true
30
37
  end
31
38
  end
32
39
  end
@@ -0,0 +1,13 @@
1
+ module Smshelper
2
+ module Api
3
+ class Mycoolsms < Base
4
+ base_uri 'http://smsc.vianett.no/V3/CPA/MT'
5
+
6
+ def initialize(*args)
7
+ config = args.shift
8
+ add_query_options! :username => config.txtnation[:uname], :password => config.txtnation[:passwd]
9
+ super
10
+ end
11
+ end
12
+ end
13
+ end
@@ -22,8 +22,7 @@ module Smshelper
22
22
  options = options.merge(@extra_options) unless @extra_options.nil?
23
23
  options = options.merge(q)
24
24
  resp = (post 'sms/json', :extra_query => options)
25
- resp
26
- # process_response_code(resp.first) ? (@sent_message_ids << resp.last.strip; resp.last.strip) : (raise ErrorDuringSend, @response_code.nexmo(resp.first))
25
+ process_response_code(resp['messages'].collect{|m| m['status']}.first) ? (@sent_message_ids << resp['messages'].collect{|m| m['message-id']}.first; resp['messages'].collect{|m| m['message-id']}.first) : (raise ErrorDuringSend, 'No response code provided by Nexmo!')
27
26
  end
28
27
 
29
28
  def get_balance
@@ -24,7 +24,7 @@ module Smshelper
24
24
  :from => message.sender}
25
25
  options = options.merge(@extra_options) unless @extra_options.nil?
26
26
  resp = (post '', :extra_query => options.merge(q)).split(/\n/)
27
- process_response_code(resp.first) ? (@sent_message_ids << resp.last) : (raise ErrorDuringSend, @response_code.smstrade(resp.first))
27
+ process_response_code(resp.first) ? (@sent_message_ids << resp.last; resp.last) : (raise ErrorDuringSend, @response_code.smstrade(resp.first))
28
28
  end
29
29
 
30
30
  def get_balance
@@ -11,7 +11,9 @@ module Smshelper
11
11
  end
12
12
 
13
13
  def send_message(message)
14
- @sent_message_ids << (@api.send message.text, message.recipient, :from => message.sender)
14
+ resp = (@api.send message.text, message.recipient, :from => message.sender).to_s
15
+ @sent_message_ids << resp
16
+ resp
15
17
  end
16
18
 
17
19
  def get_balance
@@ -23,23 +25,6 @@ module Smshelper
23
25
  @sent_message_statuses[message_id] << {"Part 01" => @api.message_status(message_id)}
24
26
  {message_id => @sent_message_statuses[message_id]}
25
27
  end
26
-
27
- # def send_message(*args)
28
- # add_query_options! :username => @uname, :password => @passwd
29
-
30
- # (post 'api', :extra_query => {
31
- # :cmd => 'send',
32
- # :phone => args.shift,
33
- # :text => args.shift,
34
- # :from => args.shift,
35
- # :unicode => '0'})
36
- # end
37
-
38
- # def get_balance
39
- # add_query_options! :username => @uname, :password => @passwd
40
-
41
- # (post 'api', :extra_query => {:cmd => 'account'})
42
- # end
43
28
  end
44
29
  end
45
30
  end
@@ -0,0 +1,44 @@
1
+ module Smshelper
2
+ module Api
3
+ class Traitel < Base
4
+ base_uri 'http://api.traitel.com'
5
+ # headers 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language' => 'en-us,en;q=0.5', 'Accept-Encoding' => 'gzip, deflate', 'DNT' => '1', 'Connection' => 'keep-alive'
6
+
7
+ def initialize(*args)
8
+ config = args.shift
9
+ add_query_options! :user => config.traitel[:uname], :pass => config.traitel[:passwd] # "\"#{config.traitel[:passwd]}\""
10
+ super
11
+ end
12
+
13
+ def send_message(message)
14
+ if message.utf_8
15
+ message.to_hex_be
16
+ q = {:unicode => 'true'}
17
+ end
18
+ options = {
19
+ :to => message.recipient,
20
+ :message => message.text,
21
+ :replyto => message.sender,
22
+ :output => :verbose,
23
+ :concatenate => true
24
+ }
25
+ options = options.merge(@extra_options) unless @extra_options.nil?
26
+ resp = (get 'smsgateway.pl', :extra_query => options.merge(q)) #; resp.split(',')[2]
27
+ process_response_code(resp) ? (@sent_message_ids << resp.split(',')[2]).first : (raise ErrorDuringSend "Could not deliver")
28
+ end
29
+
30
+ def get_balance
31
+ {'AUD' => (get 'selfserve.pl', :extra_query => {:mode => :balance}).split(' ').last.strip}
32
+ end
33
+
34
+ def get_status(message_id)
35
+ raise NotImplementedError, "Sms status checks unsupported by #{self.class.name}"
36
+ end
37
+
38
+ private
39
+ def process_response_code(code)
40
+ code =~ /accepted/ ? true : false
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,13 @@
1
+ module Smshelper
2
+ module Api
3
+ class Txtnation < Base
4
+ base_uri 'http://smsc.vianett.no/V3/CPA/MT'
5
+
6
+ def initialize(*args)
7
+ config = args.shift
8
+ add_query_options! :username => config.txtnation[:uname], :password => config.txtnation[:passwd]
9
+ super
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,42 @@
1
+ module Smshelper
2
+ module Api
3
+ class Vianett < Base
4
+ base_uri 'http://smsc.vianett.no/V3/CPA/MT'
5
+
6
+ def initialize(*args)
7
+ config = args.shift
8
+ add_query_options! :username => config.vianett[:uname], :password => config.vianett[:passwd]
9
+ super
10
+ end
11
+
12
+ def send_message(message)
13
+ uuid = (Digest::CRC32.hexdigest @uuid.generate).unpack('U*').collect {|x| sprintf '%02X', x}.join
14
+
15
+ options = {
16
+ :destinationaddr => message.recipient,
17
+ :message => message.text,
18
+ :sourceaddr => message.sender,
19
+ :refno => '1',
20
+ :msgid => uuid}
21
+ options = options.merge(@extra_options) unless @extra_options.nil?
22
+ resp = (post 'MT.ashx', :extra_query => options)
23
+ process_response_code(resp['ack']) ? (@sent_message_ids << uuid; uuid) : (raise ErrorDuringSend, "#{self.class.name} does not implement detailed errors")
24
+ end
25
+
26
+ def get_balance
27
+ {:fake => :value}
28
+ end
29
+
30
+ def get_status(message_id)
31
+ raise NotImplementedError, "Sms status checks unsupported by #{self.class.name}"
32
+ end
33
+
34
+ private
35
+
36
+ def process_response_code(code)
37
+ (code == 'OK') ? true : false
38
+ end
39
+
40
+ end
41
+ end
42
+ end
@@ -12,6 +12,8 @@ module Smshelper
12
12
  end
13
13
 
14
14
  def send_message(message)
15
+ uuid = @uuid.generate
16
+
15
17
  if message.utf_8
16
18
  message.to_hex_be
17
19
  q = {:unicode => '1', :hex => message.text}
@@ -19,10 +21,10 @@ module Smshelper
19
21
  q = {:txt => message.text}
20
22
  end
21
23
 
22
- options = {:dest => message.recipient, :tag => message.sender}
24
+ options = {:dest => message.recipient, :tag => message.sender, :msgid => uuid}
23
25
  options = options.merge(@extra_options) unless @extra_options.nil?
24
26
  resp = (post "send_text.html", :extra_query => options.merge(q))
25
- process_response_code(resp.to_s) ? (@response_code.webtext(resp.to_s)) : (raise ErrorDuringSend, @response_code.webtext(resp))
27
+ process_response_code(resp.to_s) ? (@sent_message_ids << uuid; uuid) : (raise ErrorDuringSend, @response_code.webtext(resp))
26
28
  # :validity => '2'
27
29
  end
28
30
 
data/lib/smshelper/api.rb CHANGED
@@ -10,4 +10,10 @@ require 'smshelper/api/smstrade'
10
10
  require 'smshelper/api/esendex'
11
11
  require 'smshelper/api/mediaburst'
12
12
  require 'smshelper/api/nexmo'
13
+ require 'smshelper/api/traitel'
14
+
13
15
  # require 'smshelper/api/totext'
16
+ require 'smshelper/api/vianett'
17
+ require 'smshelper/api/aql'
18
+ require 'smshelper/api/txtnation'
19
+ require 'smshelper/api/mycoolsms'
@@ -1,20 +1,12 @@
1
1
  module Smshelper
2
2
  class Config
3
- attr_accessor :smswarehouse, :routomessaging, :webtext, :bulksms, :clickatell, :textmagic, :smstrade, :esendex, :mediaburst, :nexmo, :detectlanguage_dot_com, :alchemy_language
4
3
 
5
4
  def initialize(interfaces = {})
6
- @smswarehouse = interfaces[:smswarehouse]
7
- @routomessaging = interfaces[:routomessaging]
8
- @webtext = interfaces[:webtext]
9
- @bulksms = interfaces[:bulksms]
10
- @clickatell = interfaces[:clickatell]
11
- @textmagic = interfaces[:textmagic]
12
- @smstrade = interfaces[:smstrade]
13
- @esendex = interfaces[:esendex]
14
- @mediaburst = interfaces[:mediaburst]
15
- @nexmo = interfaces[:nexmo]
16
- @detectlanguage_dot_com = interfaces[:detectlanguage_dot_com]
17
- @alchemy_language = interfaces[:alchemy_language]
5
+ interfaces.each do |interface, config|
6
+ self.class.send(:define_method, interface) do
7
+ config
8
+ end
9
+ end
18
10
  end
19
11
  end
20
12
  end
data/lib/smshelper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'uuid'
2
+ require 'digest/crc32'
1
3
  require 'savon'
2
4
  require 'textmagic'
3
5
  require 'mediaburst'
data/smshelper.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "smshelper"
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Voip Scout"]
12
- s.date = "2012-03-31"
12
+ s.date = "2012-04-03"
13
13
  s.description = "works with esendex, textmagic, smstrade, bulksms, routomessaging, smswarehouse, mediaburst, clickatell, webtext"
14
14
  s.email = "voipscout@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -26,17 +26,22 @@ Gem::Specification.new do |s|
26
26
  "VERSION",
27
27
  "lib/smshelper.rb",
28
28
  "lib/smshelper/api.rb",
29
+ "lib/smshelper/api/aql.rb",
29
30
  "lib/smshelper/api/base.rb",
30
31
  "lib/smshelper/api/bulksms.rb",
31
32
  "lib/smshelper/api/clickatell.rb",
32
33
  "lib/smshelper/api/esendex.rb",
33
34
  "lib/smshelper/api/mediaburst.rb",
35
+ "lib/smshelper/api/mycoolsms.rb",
34
36
  "lib/smshelper/api/nexmo.rb",
35
37
  "lib/smshelper/api/response_codes.rb",
36
38
  "lib/smshelper/api/routomessaging.rb",
37
39
  "lib/smshelper/api/smstrade.rb",
38
40
  "lib/smshelper/api/smswarehouse.rb",
39
41
  "lib/smshelper/api/textmagic.rb",
42
+ "lib/smshelper/api/traitel.rb",
43
+ "lib/smshelper/api/txtnation.rb",
44
+ "lib/smshelper/api/vianett.rb",
40
45
  "lib/smshelper/api/webtext.rb",
41
46
  "lib/smshelper/config.rb",
42
47
  "lib/smshelper/languagetools.rb",
@@ -49,7 +54,7 @@ Gem::Specification.new do |s|
49
54
  s.homepage = "http://github.com/voipscout/smshelper"
50
55
  s.licenses = ["MIT"]
51
56
  s.require_paths = ["lib"]
52
- s.rubygems_version = "1.8.15"
57
+ s.rubygems_version = "1.8.19"
53
58
  s.summary = "sms helper gem"
54
59
 
55
60
  if s.respond_to? :specification_version then
@@ -58,8 +63,10 @@ Gem::Specification.new do |s|
58
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
64
  s.add_runtime_dependency(%q<api_smith>, [">= 0"])
60
65
  s.add_runtime_dependency(%q<savon>, [">= 0"])
66
+ s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
61
67
  s.add_runtime_dependency(%q<textmagic>, [">= 0"])
62
- s.add_runtime_dependency(%q<mediaburst>, [">= 0"])
68
+ s.add_runtime_dependency(%q<uuid>, [">= 0"])
69
+ s.add_runtime_dependency(%q<digest-crc>, [">= 0"])
63
70
  s.add_development_dependency(%q<pry>, [">= 0"])
64
71
  s.add_development_dependency(%q<rspec>, [">= 0"])
65
72
  s.add_development_dependency(%q<rdoc>, [">= 0"])
@@ -69,8 +76,10 @@ Gem::Specification.new do |s|
69
76
  else
70
77
  s.add_dependency(%q<api_smith>, [">= 0"])
71
78
  s.add_dependency(%q<savon>, [">= 0"])
79
+ s.add_dependency(%q<nokogiri>, [">= 0"])
72
80
  s.add_dependency(%q<textmagic>, [">= 0"])
73
- s.add_dependency(%q<mediaburst>, [">= 0"])
81
+ s.add_dependency(%q<uuid>, [">= 0"])
82
+ s.add_dependency(%q<digest-crc>, [">= 0"])
74
83
  s.add_dependency(%q<pry>, [">= 0"])
75
84
  s.add_dependency(%q<rspec>, [">= 0"])
76
85
  s.add_dependency(%q<rdoc>, [">= 0"])
@@ -81,8 +90,10 @@ Gem::Specification.new do |s|
81
90
  else
82
91
  s.add_dependency(%q<api_smith>, [">= 0"])
83
92
  s.add_dependency(%q<savon>, [">= 0"])
93
+ s.add_dependency(%q<nokogiri>, [">= 0"])
84
94
  s.add_dependency(%q<textmagic>, [">= 0"])
85
- s.add_dependency(%q<mediaburst>, [">= 0"])
95
+ s.add_dependency(%q<uuid>, [">= 0"])
96
+ s.add_dependency(%q<digest-crc>, [">= 0"])
86
97
  s.add_dependency(%q<pry>, [">= 0"])
87
98
  s.add_dependency(%q<rspec>, [">= 0"])
88
99
  s.add_dependency(%q<rdoc>, [">= 0"])
metadata CHANGED
@@ -1,127 +1,210 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smshelper
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.2.2
4
+ version: 0.2.3
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Voip Scout
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-31 00:00:00.000000000Z
12
+ date: 2012-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: api_smith
16
- version_requirements: &5162 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
19
  - - ! '>='
19
20
  - !ruby/object:Gem::Version
20
21
  version: '0'
21
- none: false
22
- requirement: *5162
23
- prerelease: false
24
22
  type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: savon
27
- version_requirements: &5180 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
28
34
  requirements:
29
35
  - - ! '>='
30
36
  - !ruby/object:Gem::Version
31
37
  version: '0'
32
- none: false
33
- requirement: *5180
38
+ type: :runtime
34
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
47
+ name: nokogiri
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
35
54
  type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
36
62
  - !ruby/object:Gem::Dependency
37
63
  name: textmagic
38
- version_requirements: &5196 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
39
66
  requirements:
40
67
  - - ! '>='
41
68
  - !ruby/object:Gem::Version
42
69
  version: '0'
43
- none: false
44
- requirement: *5196
45
- prerelease: false
46
70
  type: :runtime
47
- - !ruby/object:Gem::Dependency
48
- name: mediaburst
49
- version_requirements: &5212 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
50
74
  requirements:
51
75
  - - ! '>='
52
76
  - !ruby/object:Gem::Version
53
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: uuid
80
+ requirement: !ruby/object:Gem::Requirement
54
81
  none: false
55
- requirement: *5212
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
56
87
  prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: digest-crc
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
57
102
  type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
58
110
  - !ruby/object:Gem::Dependency
59
111
  name: pry
60
- version_requirements: &5228 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
61
114
  requirements:
62
115
  - - ! '>='
63
116
  - !ruby/object:Gem::Version
64
117
  version: '0'
65
- none: false
66
- requirement: *5228
67
- prerelease: false
68
118
  type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
69
126
  - !ruby/object:Gem::Dependency
70
127
  name: rspec
71
- version_requirements: &5246 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
72
130
  requirements:
73
131
  - - ! '>='
74
132
  - !ruby/object:Gem::Version
75
133
  version: '0'
76
- none: false
77
- requirement: *5246
78
- prerelease: false
79
134
  type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
80
142
  - !ruby/object:Gem::Dependency
81
143
  name: rdoc
82
- version_requirements: &5262 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
83
146
  requirements:
84
147
  - - ! '>='
85
148
  - !ruby/object:Gem::Version
86
149
  version: '0'
87
- none: false
88
- requirement: *5262
89
- prerelease: false
90
150
  type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
91
158
  - !ruby/object:Gem::Dependency
92
159
  name: bundler
93
- version_requirements: &5278 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
94
162
  requirements:
95
163
  - - ! '>='
96
164
  - !ruby/object:Gem::Version
97
165
  version: '0'
98
- none: false
99
- requirement: *5278
100
- prerelease: false
101
166
  type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
102
174
  - !ruby/object:Gem::Dependency
103
175
  name: jeweler
104
- version_requirements: &5294 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
105
178
  requirements:
106
179
  - - ! '>='
107
180
  - !ruby/object:Gem::Version
108
181
  version: '0'
109
- none: false
110
- requirement: *5294
111
- prerelease: false
112
182
  type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
113
190
  - !ruby/object:Gem::Dependency
114
191
  name: simplecov
115
- version_requirements: &5310 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
116
194
  requirements:
117
195
  - - ! '>='
118
196
  - !ruby/object:Gem::Version
119
197
  version: '0'
120
- none: false
121
- requirement: *5310
122
- prerelease: false
123
198
  type: :development
124
- description: works with esendex, textmagic, smstrade, bulksms, routomessaging, smswarehouse, mediaburst, clickatell, webtext
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ description: works with esendex, textmagic, smstrade, bulksms, routomessaging, smswarehouse,
207
+ mediaburst, clickatell, webtext
125
208
  email: voipscout@gmail.com
126
209
  executables: []
127
210
  extensions: []
@@ -138,17 +221,22 @@ files:
138
221
  - VERSION
139
222
  - lib/smshelper.rb
140
223
  - lib/smshelper/api.rb
224
+ - lib/smshelper/api/aql.rb
141
225
  - lib/smshelper/api/base.rb
142
226
  - lib/smshelper/api/bulksms.rb
143
227
  - lib/smshelper/api/clickatell.rb
144
228
  - lib/smshelper/api/esendex.rb
145
229
  - lib/smshelper/api/mediaburst.rb
230
+ - lib/smshelper/api/mycoolsms.rb
146
231
  - lib/smshelper/api/nexmo.rb
147
232
  - lib/smshelper/api/response_codes.rb
148
233
  - lib/smshelper/api/routomessaging.rb
149
234
  - lib/smshelper/api/smstrade.rb
150
235
  - lib/smshelper/api/smswarehouse.rb
151
236
  - lib/smshelper/api/textmagic.rb
237
+ - lib/smshelper/api/traitel.rb
238
+ - lib/smshelper/api/txtnation.rb
239
+ - lib/smshelper/api/vianett.rb
152
240
  - lib/smshelper/api/webtext.rb
153
241
  - lib/smshelper/config.rb
154
242
  - lib/smshelper/languagetools.rb
@@ -160,30 +248,29 @@ files:
160
248
  homepage: http://github.com/voipscout/smshelper
161
249
  licenses:
162
250
  - MIT
163
- post_install_message:
251
+ post_install_message:
164
252
  rdoc_options: []
165
253
  require_paths:
166
254
  - lib
167
255
  required_ruby_version: !ruby/object:Gem::Requirement
256
+ none: false
168
257
  requirements:
169
258
  - - ! '>='
170
259
  - !ruby/object:Gem::Version
260
+ version: '0'
171
261
  segments:
172
262
  - 0
173
- hash: 2
174
- version: '0'
175
- none: false
263
+ hash: -4486177606330307212
176
264
  required_rubygems_version: !ruby/object:Gem::Requirement
265
+ none: false
177
266
  requirements:
178
267
  - - ! '>='
179
268
  - !ruby/object:Gem::Version
180
269
  version: '0'
181
- none: false
182
270
  requirements: []
183
- rubyforge_project:
184
- rubygems_version: 1.8.15
185
- signing_key:
271
+ rubyforge_project:
272
+ rubygems_version: 1.8.19
273
+ signing_key:
186
274
  specification_version: 3
187
275
  summary: sms helper gem
188
276
  test_files: []
189
- ...