devinosmsclient 0.0.4

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.
@@ -0,0 +1,5 @@
1
+ Manifest
2
+ README
3
+ Rakefile
4
+ devinosmsclient.gemspec
5
+ lib/devinosmsclient.rb
data/README ADDED
File without changes
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('devinosmsclient', '0.0.4') do |p|
6
+ p.description = "Devino Sms Service Consumer"
7
+ p.url = "http://github.com/kohgpat/devinosmsclient"
8
+ p.author = "Nikolay Burlov"
9
+ p.email = "kohgpat@gmail.com"
10
+ p.ignore_pattern = ["tmp/*", "script/*"]
11
+ p.development_dependencies = []
12
+ end
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{devinosmsclient}
5
+ s.version = "0.0.4"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Nikolay Burlov"]
9
+ s.date = %q{2011-02-17}
10
+ s.description = %q{Devino Sms Service Consumer}
11
+ s.email = %q{kohgpat@gmail.com}
12
+ s.extra_rdoc_files = ["README", "lib/devinosmsclient.rb"]
13
+ s.files = ["Manifest", "README", "Rakefile", "devinosmsclient.gemspec", "lib/devinosmsclient.rb"]
14
+ s.homepage = %q{http://github.com/kohgpat/devinosmsclient}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Devinosmsclient", "--main", "README"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{devinosmsclient}
18
+ s.rubygems_version = %q{1.5.0}
19
+ s.summary = %q{Devino Sms Service Consumer}
20
+
21
+ if s.respond_to? :specification_version then
22
+ s.specification_version = 3
23
+
24
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
+ else
26
+ end
27
+ else
28
+ end
29
+ end
@@ -0,0 +1,102 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'rubygems'
4
+ require 'savon'
5
+
6
+ Savon.configure do |config|
7
+ config.log = false
8
+ config.log_level = :info
9
+ end
10
+
11
+ module DevinoSmsClient
12
+
13
+ VERSION = '0.0.4'
14
+
15
+ class Client
16
+
17
+ def initialize(login, password)
18
+ @client = Savon::Client.new do
19
+ wsdl.document = "https://ws.devinosms.com/SmsService.asmx?wsdl"
20
+ end
21
+ @session_id = get_session_id(login, password)
22
+ end
23
+
24
+ def get_balance
25
+ session_id = @session_id
26
+ response = @client.request :wsdl, :get_balance do
27
+ soap.body = {
28
+ :sessionID => session_id
29
+ }
30
+ end
31
+ return response.to_hash[:get_balance_response][:get_balance_result]
32
+ end
33
+
34
+ def send_message(message, destination, source)
35
+ session_id = @session_id
36
+ response = @client.request :wsdl, :send_message do
37
+ soap.body = {
38
+ :sessionID => session_id,
39
+ :message => {
40
+ :Data => message,
41
+ :DestinationAddresses => {
42
+ :string => destination
43
+ },
44
+ :SourceAddress => source,
45
+ :ReceiptRequest => false
46
+ }
47
+ }
48
+ end
49
+ return response.to_hash[:send_message_response][:send_message_result][:string]
50
+ end
51
+
52
+ def send_message_by_time_zone(message, destination, source, send_date)
53
+ session_id = @session_id
54
+ response = @client.request :wsdl, :send_message_by_time_zone do
55
+ soap.body = {
56
+ :sessionID => session_id,
57
+ :sourceAddress => source,
58
+ :destinationAddress => destination,
59
+ :data => message,
60
+ :sendDate => send_date
61
+ }
62
+ end
63
+ return response.to_hash[:send_message_by_time_zone_response][:send_message_by_time_zone_result][:string]
64
+ end
65
+
66
+ def get_message_state(message_id)
67
+ session_id = @session_id
68
+ response = @client.request :wsdl, :get_message_state do
69
+ soap.body = {
70
+ :sessionID => session_id,
71
+ :messageID => message_id
72
+ }
73
+ end
74
+ return response.to_hash[:get_message_state_response][:get_message_state_result][:state],
75
+ response.to_hash[:get_message_state_response][:get_message_state_result][:state_description]
76
+ end
77
+
78
+ def get_incoming_messages(max_date, min_date)
79
+ session_id = @session_id
80
+ response = @client.request :wsdl, :get_incoming_messages do
81
+ soap.body = {
82
+ :sessionID => session_id,
83
+ :maxDateUTC => max_date,
84
+ :minDateUTC => min_date
85
+ }
86
+ end
87
+ return response.to_hash[:get_incoming_messages_response][:get_incoming_messages_result]
88
+ end
89
+
90
+ private
91
+
92
+ def get_session_id(login, password)
93
+ response = @client.request :wsdl, :get_session_id do
94
+ soap.body = {
95
+ :login => login,
96
+ :password => password
97
+ }
98
+ end
99
+ return response.to_hash[:get_session_id_response][:get_session_id_result]
100
+ end
101
+ end
102
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: devinosmsclient
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.4
6
+ platform: ruby
7
+ authors:
8
+ - Nikolay Burlov
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-02-17 00:00:00 -05:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description: Devino Sms Service Consumer
18
+ email: kohgpat@gmail.com
19
+ executables: []
20
+
21
+ extensions: []
22
+
23
+ extra_rdoc_files:
24
+ - README
25
+ - lib/devinosmsclient.rb
26
+ files:
27
+ - Manifest
28
+ - README
29
+ - Rakefile
30
+ - devinosmsclient.gemspec
31
+ - lib/devinosmsclient.rb
32
+ has_rdoc: true
33
+ homepage: http://github.com/kohgpat/devinosmsclient
34
+ licenses: []
35
+
36
+ post_install_message:
37
+ rdoc_options:
38
+ - --line-numbers
39
+ - --inline-source
40
+ - --title
41
+ - Devinosmsclient
42
+ - --main
43
+ - README
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: "0"
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "1.2"
58
+ requirements: []
59
+
60
+ rubyforge_project: devinosmsclient
61
+ rubygems_version: 1.5.0
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Devino Sms Service Consumer
65
+ test_files: []
66
+