esendex4soap 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,11 +1,7 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
  gem 'jruby-openssl' if defined?(JRUBY_VERSION)
6
3
  gem 'savon'
7
- # Add dependencies to develop your gem here.
8
- # Include everything needed to run rake, tests, features, etc.
4
+ gem 'log4r'
9
5
  group :development do
10
6
  gem "shoulda", ">= 0"
11
7
  gem "bundler", "~> 1.0.0"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.4.2
data/esendex4soap.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{esendex4soap}
8
- s.version = "0.4.0"
8
+ s.version = "0.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Voip Scout}]
12
- s.date = %q{2011-11-18}
12
+ s.date = %q{2011-11-29}
13
13
  s.description = %q{thanks to savon library}
14
14
  s.email = %q{voipscout@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
40
40
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
41
41
  s.add_runtime_dependency(%q<jruby-openssl>, [">= 0"])
42
42
  s.add_runtime_dependency(%q<savon>, [">= 0"])
43
+ s.add_runtime_dependency(%q<log4r>, [">= 0"])
43
44
  s.add_development_dependency(%q<shoulda>, [">= 0"])
44
45
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
45
46
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
@@ -47,6 +48,7 @@ Gem::Specification.new do |s|
47
48
  else
48
49
  s.add_dependency(%q<jruby-openssl>, [">= 0"])
49
50
  s.add_dependency(%q<savon>, [">= 0"])
51
+ s.add_dependency(%q<log4r>, [">= 0"])
50
52
  s.add_dependency(%q<shoulda>, [">= 0"])
51
53
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
52
54
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
@@ -55,6 +57,7 @@ Gem::Specification.new do |s|
55
57
  else
56
58
  s.add_dependency(%q<jruby-openssl>, [">= 0"])
57
59
  s.add_dependency(%q<savon>, [">= 0"])
60
+ s.add_dependency(%q<log4r>, [">= 0"])
58
61
  s.add_dependency(%q<shoulda>, [">= 0"])
59
62
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
63
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
data/lib/esendex4soap.rb CHANGED
@@ -1,8 +1,10 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'savon'
3
+ require 'log4r'
3
4
 
4
5
  module Esendex
5
6
  class Client
7
+ include Log4r
6
8
  INBOX_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/InboxService.asmx?wsdl'
7
9
  SEND_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/SendService.asmx?wsdl'
8
10
 
@@ -10,9 +12,9 @@ module Esendex
10
12
  attr_reader :sent_message_ids
11
13
 
12
14
  def initialize(*args)
13
- @username = args[0]
14
- @password = args[1]
15
- @account_reference = args[2]
15
+ @username = args.shift
16
+ @password = args.shift
17
+ @account_reference = args.shift
16
18
  @sent_message_ids = []
17
19
 
18
20
  Savon.configure do |config|
@@ -20,19 +22,32 @@ module Esendex
20
22
  config.log = false
21
23
  config.log_level = :error
22
24
  HTTPI.log = false
23
- end
25
+ end
26
+
27
+ @log = Logger.new "#{self.class.name}"
28
+ @log.outputters = Outputter.stdout
29
+ @log.level = ERROR
30
+
31
+ @message_kind = String.new
32
+
24
33
  end
25
34
 
26
35
  def send_message(recipient, text)
27
- if text.size < 139
36
+ @log.debug "------- Going to deliver #{text.size} bytes long message"
37
+ if text.size < 140
38
+ @log.debug "#{text.size} is < 140"
28
39
  sms(recipient, text.to_a)
29
40
  elsif text.scan(/./mu).size == text.size
30
- sms_parts = text.scan(/.{139}/mu)
41
+ @log.debug "Processing non-UTF8 message"
42
+ sms_parts = text.scan(/.{610}/mu)
31
43
  sms_parts << text[sms_parts.to_s.size..text.size]
44
+ @message_kind = 'Text'
32
45
  sms(recipient, sms_parts)
33
46
  else
34
- sms_parts = text.scan(/.{69}/mu)
47
+ @log.debug "Processing UTF-8 message"
48
+ sms_parts = text.scan(/.{70}/mu)
35
49
  sms_parts << text[sms_parts.to_s.size..text.size]
50
+ @message_kind = 'Unicode'
36
51
  sms(recipient, sms_parts)
37
52
  end
38
53
  end
@@ -45,11 +60,14 @@ module Esendex
45
60
 
46
61
  def sms(recipient, messages)
47
62
  connect
63
+ @log.debug "*#{@message_kind}*" # message: #{messages.join('|<->|')}"
48
64
  messages.each do |message|
65
+ @log.debug "Sending message _ #{message.size} bytes long"
49
66
  resp = @client.request :com, :send_message_full do |soap|
50
67
  soap.header["com:MessengerHeader"] = {"com:Username" => @username, "com:Password" => @password, "com:Account" => @account_reference}
51
- soap.body = {"com:recipient" => recipient, "com:body" => message, "com:type" => 'Unicode'}
68
+ soap.body = {"com:recipient" => recipient, "com:body" => message, "com:type" => @message_kind}
52
69
  end
70
+ @log.debug "Message sent"
53
71
  @sent_message_ids << resp.to_hash[:send_message_full_response][:send_message_full_result]
54
72
  end
55
73
  end
@@ -60,4 +78,4 @@ module Esendex
60
78
  end #module Esendex
61
79
 
62
80
  #sms = Esendex::Client.new('username', 'password', 'account_reference')
63
- #sms.send_message 'PHONENUMBER', 'Сообщение любой длины UTF-8. | UTF-8 message of any size goes here'
81
+ #sms.send_message 'PHONENUMBER', 'message in any language'
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: esendex4soap
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.0
5
+ version: 0.4.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Voip Scout
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-11-18 00:00:00 Z
13
+ date: 2011-11-29 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: jruby-openssl
@@ -35,7 +35,7 @@ dependencies:
35
35
  prerelease: false
36
36
  type: :runtime
37
37
  - !ruby/object:Gem::Dependency
38
- name: shoulda
38
+ name: log4r
39
39
  version_requirements: &id003 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
@@ -44,38 +44,49 @@ dependencies:
44
44
  version: "0"
45
45
  requirement: *id003
46
46
  prerelease: false
47
+ type: :runtime
48
+ - !ruby/object:Gem::Dependency
49
+ name: shoulda
50
+ version_requirements: &id004 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ requirement: *id004
57
+ prerelease: false
47
58
  type: :development
48
59
  - !ruby/object:Gem::Dependency
49
60
  name: bundler
50
- version_requirements: &id004 !ruby/object:Gem::Requirement
61
+ version_requirements: &id005 !ruby/object:Gem::Requirement
51
62
  none: false
52
63
  requirements:
53
64
  - - ~>
54
65
  - !ruby/object:Gem::Version
55
66
  version: 1.0.0
56
- requirement: *id004
67
+ requirement: *id005
57
68
  prerelease: false
58
69
  type: :development
59
70
  - !ruby/object:Gem::Dependency
60
71
  name: jeweler
61
- version_requirements: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: &id006 !ruby/object:Gem::Requirement
62
73
  none: false
63
74
  requirements:
64
75
  - - ~>
65
76
  - !ruby/object:Gem::Version
66
77
  version: 1.6.4
67
- requirement: *id005
78
+ requirement: *id006
68
79
  prerelease: false
69
80
  type: :development
70
81
  - !ruby/object:Gem::Dependency
71
82
  name: rcov
72
- version_requirements: &id006 !ruby/object:Gem::Requirement
83
+ version_requirements: &id007 !ruby/object:Gem::Requirement
73
84
  none: false
74
85
  requirements:
75
86
  - - ">="
76
87
  - !ruby/object:Gem::Version
77
88
  version: "0"
78
- requirement: *id006
89
+ requirement: *id007
79
90
  prerelease: false
80
91
  type: :development
81
92
  description: thanks to savon library