esendex4soap 0.4.0 → 0.4.2

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
@@ -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