mobak 0.1.0

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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6efbc0f166128fca284689923960a067b8aa623a
4
+ data.tar.gz: 4ed5f4981794345f5f0996aec23ef5efacd8ff9b
5
+ SHA512:
6
+ metadata.gz: 55fde417c4a8e44c0ed67d00ba2e0a73ce2587f2351bd7946b476e34642fc68d6be64bebe6351809abdba871c813eb324061e3796f289c70a3a516c11185ac68
7
+ data.tar.gz: a07b5e3fac3ad37bacfd52198ae28eab9e15ed38ef0378739cc8a8275bae577bd2649536902a3b3d154f792c395d45f1276176467b31180dd2c32b8284f554d1
@@ -0,0 +1,19 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'digest'
4
+ require 'mobak/configuration'
5
+ require 'mobak/sender'
6
+
7
+ module Mobak
8
+
9
+ def self.configuration
10
+ @configuration ||= Configuration.new
11
+ end
12
+
13
+ def self.configure
14
+ yield(configuration)
15
+ end
16
+
17
+ end
18
+
19
+ require './config/initializers/mobak'
@@ -0,0 +1,10 @@
1
+ module Mobak
2
+ class Configuration
3
+ attr_accessor :login, :password
4
+
5
+ def initialize
6
+ @login = ''
7
+ @password = ''
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,46 @@
1
+ module Mobak
2
+
3
+ class Sender
4
+
5
+ def self.send_sms(options={})
6
+
7
+ uri = URI("http://client.mobak.ru/api/messages/xml")
8
+
9
+ xml = '<?xml version="1.0" encoding="utf-8"?>'
10
+ xml += '<request uid="{uid}" sender="{sender}">'
11
+ xml += '<security><login value="{login}"/><sign value="{signature}" /></security>'
12
+ xml += '<message><text>{message}</text><abonent phone="{phone}"/></message></request>'
13
+
14
+ md5 = Digest::MD5.new
15
+ md5.update options[:uid] + config.password
16
+ h = md5.hexdigest
17
+
18
+ xml = xml.sub('{uid}', options[:uid])
19
+ xml = xml.sub('{login}', config.login)
20
+ xml = xml.sub('{signature}', h)
21
+ xml = xml.sub('{sender}', options[:sender])
22
+ xml = xml.sub('{message}', options[:message])
23
+ xml = xml.sub('{phone}', options[:phone])
24
+
25
+ # puts xml
26
+
27
+ Net::HTTP.start(uri.host, uri.port) do |http|
28
+ request = Net::HTTP::Post.new uri
29
+ request.set_form_data('xml' => xml)
30
+
31
+ response = http.request request
32
+
33
+ response.body
34
+ end
35
+
36
+ end
37
+
38
+ private
39
+
40
+ def self.config
41
+ Mobak.configuration
42
+ end
43
+
44
+ end
45
+
46
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mobak
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Grigoriev Mike
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-18 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Mobile Active SMS sender gem
14
+ email: grigoriev@mobak.ru
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/mobak.rb
20
+ - lib/mobak/configuration.rb
21
+ - lib/mobak/sender.rb
22
+ homepage: http://rubygems.org/gems/mobak
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.4.8
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: Mobak
46
+ test_files: []