rumeme 0.4.0 → 0.4.1
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.
- checksums.yaml +15 -0
- data/.gitignore +2 -3
- data/CHANGELOG +28 -16
- data/Gemfile +0 -1
- data/README.md +71 -0
- data/Rakefile +6 -2
- data/lib/rumeme.rb +2 -2
- data/lib/rumeme/configuration.rb +1 -1
- data/lib/rumeme/message_status.rb +1 -1
- data/lib/rumeme/sms_interface.rb +9 -17
- data/lib/rumeme/sms_message.rb +2 -2
- data/lib/rumeme/sms_reply.rb +3 -3
- data/lib/rumeme/validity_period.rb +1 -1
- data/lib/rumeme/version.rb +1 -1
- data/rumeme.gemspec +2 -5
- data/test/configuration_test.rb +39 -0
- data/test/message_status_test.rb +14 -0
- data/test/sms_interface_test.rb +11 -0
- data/test/version_test.rb +12 -0
- metadata +16 -13
- data/Gemfile.lock +0 -7
- data/README.rdoc +0 -49
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YzVhMzE2MWM3MzFjYzY5N2U5Y2MxNmEwZGU4MTEyMjdjMDBmZjY3YQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YTE5MDZjYzAyMWVkMGFjMTAxN2U3YzljZDAyMWZlMzZiODhkOGEyYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjQ3MDZiYjFkN2IzOWYwZWFlYzg0NTcxN2M5MWY5Yzg5YjEwODUxYjk0OTI4
|
10
|
+
NjJkYWZmYTNmZWMxMjUxY2JlN2RiN2U5NDkwNjU1ZThhM2Y4YmY0NWM3NDI4
|
11
|
+
YjdiY2Q0N2U2M2EzNjA2YzI3OWI4YTJmMTg1YTk5ZWQ0MmY0MDc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MTRmZjliZGU1Mzg2NGNlZTc1MjZlYTc5MjliNWZhMWFjZWZlZjBmNzdiMmIy
|
14
|
+
ZDAwMGIwMmVlZDU5OGM4OTJkNWI5YzZhNDJjMGExOTNmZmM0ZGQzZjk1OTdi
|
15
|
+
MGJkYTQwYmQ2YmViN2IwYTQ0NWQ3YzgxYjY5MWExMDNlMmQ0N2E=
|
data/.gitignore
CHANGED
@@ -1,3 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
pkg
|
1
|
+
pkg
|
2
|
+
Gemfile.lock
|
data/CHANGELOG
CHANGED
@@ -1,13 +1,36 @@
|
|
1
|
+
Version 0.4.1 - 2013-05-09
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
Anatoliy Plastinin (11):
|
5
|
+
Merge pull request #4 from rafaelmagu/master
|
6
|
+
remove commented logging
|
7
|
+
update readme
|
8
|
+
Merge PR #5 into master
|
9
|
+
clenaup
|
10
|
+
update gitignore
|
11
|
+
small code readability changes
|
12
|
+
other small fixes
|
13
|
+
|
14
|
+
Rafael Fonseca (1):
|
15
|
+
Commented out some debugging output. Fixed return value order in strip_invalid.
|
16
|
+
|
17
|
+
Stan Carver (15):
|
18
|
+
corrected strip_invalid method-logic test for nil was backwards.
|
19
|
+
simplified unescape method for readibility.
|
20
|
+
corrected changed resp variable name to response. corrected pass by reference change to data variable. removed unneeded print statements.
|
21
|
+
added more test coverage.
|
22
|
+
|
23
|
+
|
1
24
|
Version 0.4.0 - 2012-10-30
|
2
25
|
===============================================================================
|
3
26
|
|
4
27
|
Stan Carver II (6):
|
5
28
|
changed send_messages to return true or false instead of raising an error
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
29
|
+
added send_messages! to raise an error
|
30
|
+
change inverted if not conditionals to unless
|
31
|
+
refactored message_id_sign out of create_login_string
|
32
|
+
consolidated self references with a << self block
|
33
|
+
added my name to the credits as a contributor
|
11
34
|
|
12
35
|
|
13
36
|
Version 0.3.0 - 2012-02-17
|
@@ -87,14 +110,3 @@ antlypls (5):
|
|
87
110
|
update gitignore
|
88
111
|
add maintaince tasks to rake
|
89
112
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
data/Gemfile
CHANGED
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
RuMeMe
|
2
|
+
======
|
3
|
+
|
4
|
+
Ruby SDK for Message Media SMS Gateway API.
|
5
|
+
Since Message Media doesn't provide any ruby projects support, we decided to port it from available SDKs (mainly from PHP SDK; and some .NET usage).
|
6
|
+
For more information checkout [Message Media SMS APIs](http://www.message-media.com/sms-gateway.html).
|
7
|
+
|
8
|
+
Help
|
9
|
+
====
|
10
|
+
|
11
|
+
Installation
|
12
|
+
------------
|
13
|
+
|
14
|
+
Just execute
|
15
|
+
|
16
|
+
gem install rumeme
|
17
|
+
|
18
|
+
Usage
|
19
|
+
-----
|
20
|
+
|
21
|
+
First, add Rumeme initialization
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
Rumeme.configure do |config|
|
25
|
+
config.username = 'xxx'
|
26
|
+
config.password = 'yyy'
|
27
|
+
config.use_message_id = true
|
28
|
+
config.secure = true
|
29
|
+
config.allow_splitting = false
|
30
|
+
config.allow_long_messages = true
|
31
|
+
end
|
32
|
+
```
|
33
|
+
|
34
|
+
Where xxx and yyy is your username and password consequently.
|
35
|
+
Then you can use SmsInterface class to add and send messages.
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
si = SmsInterface.new
|
39
|
+
|
40
|
+
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 1'
|
41
|
+
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 2'
|
42
|
+
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 3'
|
43
|
+
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 4'
|
44
|
+
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 5'
|
45
|
+
|
46
|
+
si.send_messages
|
47
|
+
```
|
48
|
+
|
49
|
+
Where xxxxxxxxxxx is phone number.
|
50
|
+
|
51
|
+
To Do
|
52
|
+
=====
|
53
|
+
|
54
|
+
* Refactoring to make api more rubyish,
|
55
|
+
* Add unit tests,
|
56
|
+
|
57
|
+
Credits
|
58
|
+
=======
|
59
|
+
|
60
|
+
RuMeMe is maintained by Anatoliy Plastinin, and is funded by [Cloud Castle, LLC](http://cloudcastlegroup.com/).
|
61
|
+
|
62
|
+
Contributors
|
63
|
+
============
|
64
|
+
|
65
|
+
* Stan Carver II
|
66
|
+
* Rafael Fonseca
|
67
|
+
|
68
|
+
License
|
69
|
+
=======
|
70
|
+
|
71
|
+
Still looking for license. But the software is provided "as is", without warranty of any kind.
|
data/Rakefile
CHANGED
@@ -2,6 +2,8 @@ require 'rake'
|
|
2
2
|
require 'rake/testtask'
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
|
5
|
+
require 'date'
|
6
|
+
|
5
7
|
desc 'Test the rumeme gem'
|
6
8
|
Rake::TestTask.new(:test) do |t|
|
7
9
|
t.libs << 'lib'
|
@@ -9,9 +11,11 @@ Rake::TestTask.new(:test) do |t|
|
|
9
11
|
t.verbose = true
|
10
12
|
end
|
11
13
|
|
14
|
+
task :default => [:test]
|
15
|
+
|
12
16
|
desc "Bumps the version by a minor or patch version, depending on what was passed in."
|
13
17
|
task :bump, :part do |t, args|
|
14
|
-
if Rumeme::VERSION
|
18
|
+
if Rumeme::VERSION =~ /^(\d+)\.(\d+)\.(\d+)(?:\.(.*?))?$/
|
15
19
|
major = $1.to_i
|
16
20
|
minor = $2.to_i
|
17
21
|
patch = $3.to_i
|
@@ -59,7 +63,7 @@ Version #{version} - #{Date.today}
|
|
59
63
|
EOF
|
60
64
|
end
|
61
65
|
|
62
|
-
editor = ENV["EDITOR"] || '
|
66
|
+
editor = ENV["EDITOR"] || 'vim'
|
63
67
|
|
64
68
|
system ["#{editor} #{file}",
|
65
69
|
"git commit -aqm '#{message}'",
|
data/lib/rumeme.rb
CHANGED
data/lib/rumeme/configuration.rb
CHANGED
@@ -11,7 +11,7 @@ module Rumeme
|
|
11
11
|
# possible values
|
12
12
|
# :send - sends messages as is without any modification
|
13
13
|
# :split - splits messages into small (less than 160 ch) messages
|
14
|
-
# :cut - sends only first 160 symbols
|
14
|
+
# :cut - sends only first 160 symbols
|
15
15
|
attr_accessor :long_messages_strategy
|
16
16
|
|
17
17
|
def initialize
|
data/lib/rumeme/sms_interface.rb
CHANGED
@@ -64,7 +64,7 @@ module Rumeme
|
|
64
64
|
def open_server_connection server
|
65
65
|
port, use_ssl = @secure ? [443, true] : [80, false]
|
66
66
|
|
67
|
-
http_connection =
|
67
|
+
http_connection = Net::HTTP.new(server, port)
|
68
68
|
http_connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
69
69
|
http_connection.use_ssl = use_ssl
|
70
70
|
http_connection
|
@@ -132,7 +132,7 @@ module Rumeme
|
|
132
132
|
end
|
133
133
|
|
134
134
|
def split_message_internal message
|
135
|
-
list =[]
|
135
|
+
list = []
|
136
136
|
sizes = Enumerator.new {|yielder| yielder << 152; yielder << 155 while true}
|
137
137
|
|
138
138
|
until message.nil? do
|
@@ -152,10 +152,10 @@ module Rumeme
|
|
152
152
|
|
153
153
|
# Strip invalid characters from the phone number.
|
154
154
|
def strip_invalid phone
|
155
|
-
|
155
|
+
"+#{phone.gsub(/[^0-9]/, '')}" if phone
|
156
156
|
end
|
157
157
|
end
|
158
|
-
|
158
|
+
|
159
159
|
def process_long_message message
|
160
160
|
return [message] if message.length <= 160
|
161
161
|
@long_messages_processor.call(message)
|
@@ -164,28 +164,23 @@ module Rumeme
|
|
164
164
|
def message_id_sign
|
165
165
|
@use_message_id ? '#' : ''
|
166
166
|
end
|
167
|
-
|
167
|
+
|
168
168
|
def create_login_string # can be calculate once at initialization
|
169
169
|
"m4u\r\nUSER=#{@username}#{message_id_sign}\r\nPASSWORD=#{@password}\r\nVER=PHP1.0\r\n"
|
170
170
|
end
|
171
171
|
|
172
172
|
def post_data_to_server data
|
173
|
-
puts 'post_data_to_server'
|
174
|
-
|
175
173
|
http_connection = open_server_connection(@server_list[0])
|
176
174
|
text_buffer = create_login_string + data
|
177
175
|
|
178
|
-
puts "buffer: #{text_buffer}"
|
179
176
|
headers = {'Content-Length' => text_buffer.length.to_s}
|
180
177
|
|
181
178
|
path = '/'
|
182
179
|
|
183
180
|
resp = http_connection.post(path, text_buffer, headers)
|
184
181
|
data = resp.body
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
raise BadServerResponse.new('http response code != 200') unless response.code.to_i == 200
|
182
|
+
|
183
|
+
raise BadServerResponse.new('http response code != 200') unless resp.code.to_i == 200
|
189
184
|
|
190
185
|
if data =~ /^.+<TITLE>(.+)<\/TITLE>.+<BODY>(.+)<\/BODY>.+/m
|
191
186
|
parsed_title, parsed_body = $1, $2
|
@@ -197,13 +192,10 @@ module Rumeme
|
|
197
192
|
|
198
193
|
response_message = parsed_body.strip
|
199
194
|
|
200
|
-
response_message.match
|
195
|
+
response_message.match(/^(\d+)\s+/)
|
201
196
|
response_code = $1.to_i
|
202
197
|
|
203
|
-
puts "latest response code: #{response_code}"
|
204
|
-
puts "response: #{response_message }"
|
205
|
-
|
206
198
|
[response_message, response_code]
|
207
199
|
end
|
208
200
|
end
|
209
|
-
end
|
201
|
+
end
|
data/lib/rumeme/sms_message.rb
CHANGED
@@ -15,9 +15,9 @@ module Rumeme
|
|
15
15
|
|
16
16
|
@message = @message.gsub("\n",'\n').gsub("\r",'\r').gsub("\\",'\\\\')
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def post_string
|
20
20
|
"#{@message_id} #{@phone_number} #{@delay} #{@validity_period} #{@delivery_report ? 1 : 0} #{@message}\r\n"
|
21
21
|
end
|
22
22
|
end
|
23
|
-
end
|
23
|
+
end
|
data/lib/rumeme/sms_reply.rb
CHANGED
@@ -11,7 +11,7 @@ module Rumeme
|
|
11
11
|
class << self
|
12
12
|
# Unescape any escaped characters in the string.
|
13
13
|
def unescape line
|
14
|
-
line.
|
14
|
+
line.gsub('\n', "\n").gsub('\r', "\r").gsub('\\\\', "\\") if line
|
15
15
|
end
|
16
16
|
|
17
17
|
# Parse a reply from a string.
|
@@ -20,7 +20,7 @@ module Rumeme
|
|
20
20
|
# Or if delivery receipt: messageID messageStatus when /(\d+)\s(\d)\s(\d+)/
|
21
21
|
# current implementation ignores use_message_id setting (as original code)
|
22
22
|
def parse line
|
23
|
-
p "parsing line: #{line}"
|
23
|
+
# p "parsing line: #{line}"
|
24
24
|
|
25
25
|
message_id, status, message, phone, when_ = case line
|
26
26
|
when /^(\d+)\s(\d)\s(\d+)/
|
@@ -44,4 +44,4 @@ module Rumeme
|
|
44
44
|
@status != MessageStatus::NONE
|
45
45
|
end
|
46
46
|
end
|
47
|
-
end
|
47
|
+
end
|
data/lib/rumeme/version.rb
CHANGED
data/rumeme.gemspec
CHANGED
@@ -16,14 +16,11 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.summary = "Ruby SDK for Message Media SMS Gateway API"
|
17
17
|
s.description = "Ruby SDK for Message Media SMS Gateway API"
|
18
18
|
|
19
|
-
|
20
19
|
s.add_development_dependency 'shoulda'
|
21
20
|
|
22
|
-
|
23
21
|
s.files = `git ls-files`.split("\n")
|
24
22
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
25
23
|
s.require_paths = %W(lib)
|
26
|
-
s.extra_rdoc_files = ["README.
|
27
|
-
s.rdoc_options = ["--line-numbers", "--main", "README.
|
28
|
-
|
24
|
+
s.extra_rdoc_files = ["README.md"]
|
25
|
+
s.rdoc_options = ["--line-numbers", "--main", "README.md"]
|
29
26
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
|
2
|
+
require 'test/unit'
|
3
|
+
require "rubygems"
|
4
|
+
require 'shoulda'
|
5
|
+
require "rumeme"
|
6
|
+
|
7
|
+
include Rumeme
|
8
|
+
|
9
|
+
class ConfigurationTest < Test::Unit::TestCase
|
10
|
+
context "has attributes" do
|
11
|
+
setup do
|
12
|
+
@rumeme_configuration = Configuration.new
|
13
|
+
end
|
14
|
+
|
15
|
+
should "have username attribute" do
|
16
|
+
assert_respond_to @rumeme_configuration, :username
|
17
|
+
end
|
18
|
+
|
19
|
+
should "have password attribute" do
|
20
|
+
assert_respond_to @rumeme_configuration, :password
|
21
|
+
end
|
22
|
+
|
23
|
+
should "have use_message_id attribute" do
|
24
|
+
assert_respond_to @rumeme_configuration, :use_message_id
|
25
|
+
end
|
26
|
+
|
27
|
+
should "have secure attribute" do
|
28
|
+
assert_respond_to @rumeme_configuration, :secure
|
29
|
+
end
|
30
|
+
|
31
|
+
should "have replies_auto_confirm attribute" do
|
32
|
+
assert_respond_to @rumeme_configuration, :replies_auto_confirm
|
33
|
+
end
|
34
|
+
|
35
|
+
should "have long_messages_strategy attribute" do
|
36
|
+
assert_respond_to @rumeme_configuration, :long_messages_strategy
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
|
2
|
+
require 'test/unit'
|
3
|
+
require "rubygems"
|
4
|
+
require 'shoulda'
|
5
|
+
require "rumeme"
|
6
|
+
|
7
|
+
class MessageStatusTest < Test::Unit::TestCase
|
8
|
+
should "correctly assign MessageStatus constants" do
|
9
|
+
assert_equal Rumeme::MessageStatus::NONE, 0
|
10
|
+
assert_equal Rumeme::MessageStatus::PENDING, 1
|
11
|
+
assert_equal Rumeme::MessageStatus::DELIVERED, 2
|
12
|
+
assert_equal Rumeme::MessageStatus::FAILED, 3
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
|
2
|
+
require 'test/unit'
|
3
|
+
require "rubygems"
|
4
|
+
require 'shoulda'
|
5
|
+
require "rumeme"
|
6
|
+
require "rumeme/version"
|
7
|
+
|
8
|
+
class VersionTest < Test::Unit::TestCase
|
9
|
+
should "have Version constant" do
|
10
|
+
assert Rumeme.const_defined? :VERSION
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumeme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Anatoliy Plastinin, Cloud Castle LLC
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2013-05-09 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: shoulda
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -35,13 +32,12 @@ email:
|
|
35
32
|
executables: []
|
36
33
|
extensions: []
|
37
34
|
extra_rdoc_files:
|
38
|
-
- README.
|
35
|
+
- README.md
|
39
36
|
files:
|
40
37
|
- .gitignore
|
41
38
|
- CHANGELOG
|
42
39
|
- Gemfile
|
43
|
-
-
|
44
|
-
- README.rdoc
|
40
|
+
- README.md
|
45
41
|
- Rakefile
|
46
42
|
- lib/rumeme.rb
|
47
43
|
- lib/rumeme/configuration.rb
|
@@ -52,35 +48,42 @@ files:
|
|
52
48
|
- lib/rumeme/validity_period.rb
|
53
49
|
- lib/rumeme/version.rb
|
54
50
|
- rumeme.gemspec
|
51
|
+
- test/configuration_test.rb
|
52
|
+
- test/message_status_test.rb
|
53
|
+
- test/sms_interface_test.rb
|
55
54
|
- test/sms_message_test.rb
|
56
55
|
- test/sms_reply_test.rb
|
56
|
+
- test/version_test.rb
|
57
57
|
homepage: http://github.com/programmable/rumeme
|
58
58
|
licenses: []
|
59
|
+
metadata: {}
|
59
60
|
post_install_message:
|
60
61
|
rdoc_options:
|
61
62
|
- --line-numbers
|
62
63
|
- --main
|
63
|
-
- README.
|
64
|
+
- README.md
|
64
65
|
require_paths:
|
65
66
|
- lib
|
66
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
68
|
requirements:
|
69
69
|
- - ! '>='
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '0'
|
72
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
73
|
requirements:
|
75
74
|
- - ! '>='
|
76
75
|
- !ruby/object:Gem::Version
|
77
76
|
version: '0'
|
78
77
|
requirements: []
|
79
78
|
rubyforge_project:
|
80
|
-
rubygems_version:
|
79
|
+
rubygems_version: 2.0.3
|
81
80
|
signing_key:
|
82
|
-
specification_version:
|
81
|
+
specification_version: 4
|
83
82
|
summary: Ruby SDK for Message Media SMS Gateway API
|
84
83
|
test_files:
|
84
|
+
- test/configuration_test.rb
|
85
|
+
- test/message_status_test.rb
|
86
|
+
- test/sms_interface_test.rb
|
85
87
|
- test/sms_message_test.rb
|
86
88
|
- test/sms_reply_test.rb
|
89
|
+
- test/version_test.rb
|
data/Gemfile.lock
DELETED
data/README.rdoc
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
= RuMeMe
|
2
|
-
Ruby SDK for Message Media SMS Gateway API.
|
3
|
-
Since Message Media doesn't provide any ruby projects support, we decided to port it from available SDKs (mainly from PHP SDK; and some .NET usage).
|
4
|
-
For more information checkout {Message Media SMS APIs}[http://www.message-media.com/sms-gateway.html].
|
5
|
-
|
6
|
-
= Help
|
7
|
-
== Installation
|
8
|
-
Just execute
|
9
|
-
gem install rumeme
|
10
|
-
|
11
|
-
== Usage
|
12
|
-
First, add Rumeme initialization
|
13
|
-
|
14
|
-
Rumeme.configure do |config|
|
15
|
-
config.username = 'xxx'
|
16
|
-
config.password = 'yyy'
|
17
|
-
config.use_message_id = true
|
18
|
-
config.secure = true
|
19
|
-
config.allow_splitting = false
|
20
|
-
config.allow_long_messages = true
|
21
|
-
end
|
22
|
-
|
23
|
-
Where xxx and yyy is your username and password consequently.
|
24
|
-
Then you can use SmsInterface class to add and send messages.
|
25
|
-
|
26
|
-
si = SmsInterface.new
|
27
|
-
|
28
|
-
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 1'
|
29
|
-
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 2'
|
30
|
-
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 3'
|
31
|
-
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 4'
|
32
|
-
si.add_message :phone_number => 'xxxxxxxxxxx', :message => 'Message text 5'
|
33
|
-
|
34
|
-
si.send_messages
|
35
|
-
|
36
|
-
Where xxxxxxxxxxx is phone number.
|
37
|
-
|
38
|
-
= To Do
|
39
|
-
* Refactoring to make api more rubyish,
|
40
|
-
* Add unit tests,
|
41
|
-
|
42
|
-
= Credits
|
43
|
-
RuMeMe is maintained by Anatoliy Plastinin, and is funded by {Cloud Castle, LLC}[http://cloudcastlegroup.com/].
|
44
|
-
|
45
|
-
= Contributors
|
46
|
-
Stan Carver II
|
47
|
-
|
48
|
-
= License
|
49
|
-
Still looking for license. But the software is provided "as is", without warranty of any kind.
|