smshelper 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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
- ...