rumeme 0.1.1 → 0.1.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/CHANGELOG +11 -0
- data/README.rdoc +14 -7
- data/Rakefile +12 -4
- data/lib/rumeme/configuration.rb +0 -1
- data/lib/rumeme/sms_interface.rb +20 -14
- data/lib/rumeme/sms_message.rb +10 -3
- data/lib/rumeme/sms_reply.rb +1 -1
- data/lib/rumeme/version.rb +1 -1
- metadata +15 -3
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
Version 0.1.2 - 2010-03-11
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
antlypls (14):
|
5
|
+
change SmsMessage class constructor parameters to hash
|
6
|
+
modify sms interface to reflect sms message changes
|
7
|
+
minor changes
|
8
|
+
update readme
|
9
|
+
|
10
|
+
|
1
11
|
Version 0.1.1 - 2010-03-09
|
2
12
|
===============================================================================
|
3
13
|
|
@@ -10,3 +20,4 @@ antlypls (5):
|
|
10
20
|
|
11
21
|
|
12
22
|
|
23
|
+
|
data/README.rdoc
CHANGED
@@ -25,16 +25,23 @@ Then you can use SmsInterface class to add and send messages.
|
|
25
25
|
|
26
26
|
si = SmsInterface.new
|
27
27
|
|
28
|
-
si.add_message
|
29
|
-
si.add_message
|
30
|
-
si.add_message
|
31
|
-
si.add_message
|
32
|
-
si.add_message
|
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
33
|
|
34
34
|
si.send_messages
|
35
35
|
|
36
36
|
Where xxxxxxxxxxx is phone number.
|
37
37
|
|
38
38
|
= To Do
|
39
|
-
* Refactoring to make api more rubyish
|
40
|
-
* Add unit tests
|
39
|
+
* Refactoring to make api more rubyish,
|
40
|
+
* Add unit tests,
|
41
|
+
* Remove dependency to nokogiri
|
42
|
+
|
43
|
+
= Credits
|
44
|
+
RuMeMe is maintained by antlypls, and is funded by Programmable, LLC.
|
45
|
+
|
46
|
+
= License
|
47
|
+
Still looking for license. But the software is provided "as is", without warranty of any kind.
|
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rake'
|
2
|
+
require 'rake/testtask'
|
2
3
|
require 'rake/gempackagetask'
|
3
4
|
|
4
5
|
GEM_ROOT = File.dirname(__FILE__).freeze
|
@@ -6,6 +7,14 @@ VERSION_FILE = File.join(GEM_ROOT, 'lib', 'rumeme', 'version')
|
|
6
7
|
|
7
8
|
require VERSION_FILE
|
8
9
|
|
10
|
+
desc 'Test the rumeme gem'
|
11
|
+
Rake::TestTask.new(:test) do |t|
|
12
|
+
t.libs << 'lib'
|
13
|
+
t.pattern = 'test/**/*_test.rb'
|
14
|
+
t.verbose = true
|
15
|
+
end
|
16
|
+
|
17
|
+
|
9
18
|
gemspec = Gem::Specification.new do |s|
|
10
19
|
s.name = 'rumeme'
|
11
20
|
s.version = Rumeme::VERSION
|
@@ -18,6 +27,7 @@ gemspec = Gem::Specification.new do |s|
|
|
18
27
|
s.rdoc_options = ['--line-numbers', "--main", "README.rdoc"]
|
19
28
|
|
20
29
|
s.add_runtime_dependency('nokogiri', '1.4.1')
|
30
|
+
s.add_development_dependency("shoulda")
|
21
31
|
|
22
32
|
s.authors = ['antlypls']
|
23
33
|
s.email = 'antlypls@gmail.com'
|
@@ -118,10 +128,8 @@ end
|
|
118
128
|
|
119
129
|
desc "Push gem to Gemcutter"
|
120
130
|
task :push_gem do
|
121
|
-
system "echo '\n\n\033[
|
122
|
-
|
123
|
-
#abort("not implemented yet")
|
124
|
-
#system("git push origin $(git tag | tail -1)")
|
131
|
+
system "echo '\n\n\033[31mPushing gem to gemcutter\033[0m\n\n'"
|
132
|
+
system "gem push pkg/#{gemspec.name}-#{gemspec.version}.gem"
|
125
133
|
end
|
126
134
|
|
127
135
|
desc 'release gem'
|
data/lib/rumeme/configuration.rb
CHANGED
data/lib/rumeme/sms_interface.rb
CHANGED
@@ -70,28 +70,33 @@ module Rumeme
|
|
70
70
|
attr_reader :response_message
|
71
71
|
|
72
72
|
# Add a message to be sent.
|
73
|
-
def add_message
|
73
|
+
def add_message args
|
74
74
|
p 'in add_message '
|
75
|
-
|
76
|
-
return if phone.empty?
|
75
|
+
args[:phone_number] = strip_invalid(args[:phone_number]) #not good idea, modifying original args, from outer scope (antlypls)
|
77
76
|
|
78
|
-
if
|
79
|
-
|
77
|
+
raise ArgumentError.new("phone_number is empty") if args[:phone_number].nil? || args[:phone_number].empty?
|
78
|
+
raise ArgumentError.new("message is empty") if args[:message].nil? || args[:message].empty?
|
79
|
+
|
80
|
+
if args[:message].length <= 160
|
81
|
+
@message_list << SmsMessage.new(args)
|
80
82
|
return
|
81
83
|
end
|
82
84
|
|
83
85
|
if (@allow_long_messages) # Use concatenation.
|
84
|
-
|
86
|
+
args[:message] = args[:message][0..1071] # 1071??? WTF ??? see php code (antlypls)
|
87
|
+
@message_list << SmsMessage.new(args)
|
85
88
|
return
|
86
89
|
end
|
87
90
|
|
88
91
|
if !@allow_splitting
|
89
|
-
|
92
|
+
args[:message] = args[:message][0..160] # maybe 159 ? (antlypls)
|
93
|
+
@message_list << SmsMessage.new(args)
|
90
94
|
return
|
91
95
|
end
|
92
96
|
|
93
97
|
ml = []
|
94
|
-
maxlen = 152
|
98
|
+
maxlen = 152
|
99
|
+
message_text = args[:message]
|
95
100
|
while message_text.length > maxlen
|
96
101
|
if (pos = message_text[0..maxlen].rindex(" ")) == 0
|
97
102
|
pos = maxlen - 1
|
@@ -115,7 +120,7 @@ module Rumeme
|
|
115
120
|
m << "...(#{ni}/#{ml.size})"
|
116
121
|
end
|
117
122
|
|
118
|
-
@message_list << SmsMessage.new(
|
123
|
+
@message_list << SmsMessage.new(args.merge({:message => m, :delay => args[:delay] + 30*i}))
|
119
124
|
}
|
120
125
|
end
|
121
126
|
|
@@ -246,6 +251,7 @@ module Rumeme
|
|
246
251
|
|
247
252
|
# Strip invalid characters from the phone number.
|
248
253
|
def strip_invalid phone
|
254
|
+
return if phone.nil?
|
249
255
|
"+#{phone.gsub(/[^0-9]/, '')}"
|
250
256
|
end
|
251
257
|
|
@@ -254,7 +260,9 @@ module Rumeme
|
|
254
260
|
p 'in connect'
|
255
261
|
return unless @http_connection.nil?
|
256
262
|
|
257
|
-
@server_list.all? {|server| !open_server_connection(server, @secure)} #unusefull code open_server_connection,
|
263
|
+
@server_list.all? {|server| !open_server_connection(server, @secure)} # unusefull code open_server_connection,
|
264
|
+
# does not connect to server, just creates http object,
|
265
|
+
# so we can't check availability of the server at this moment (antlypls)
|
258
266
|
|
259
267
|
return if @http_connection.nil?
|
260
268
|
|
@@ -265,11 +273,9 @@ module Rumeme
|
|
265
273
|
@text_buffer << "\r\nPASSWORD=#{@password}\r\nVER=PHP1.0\r\n";
|
266
274
|
end
|
267
275
|
|
268
|
-
# only
|
276
|
+
# only for php compatibility, just free object reference
|
269
277
|
def close
|
270
|
-
|
271
|
-
#@http_connection.finish
|
272
|
-
@http_connection = nil
|
278
|
+
@http_connection = nil unless @http_connection.nil?
|
273
279
|
end
|
274
280
|
|
275
281
|
# Flush the text buffer to the HTTP connection.
|
data/lib/rumeme/sms_message.rb
CHANGED
@@ -4,9 +4,16 @@ module Rumeme
|
|
4
4
|
attr_reader :phone_number, :message, :message_id, :delay, :validity_period, :delivery_report
|
5
5
|
|
6
6
|
# Constructor.
|
7
|
-
def initialize
|
8
|
-
|
9
|
-
|
7
|
+
def initialize args
|
8
|
+
# this defaults must be moved to global configuration
|
9
|
+
defaults = {:phone_number => nil, :message => nil, :message_id => 0, :delay => 0, :validity_period => ValidityPeriod::THREE_DAYS, :delivery_report => false}
|
10
|
+
params = defaults.merge args
|
11
|
+
defaults.keys.each {|k| instance_variable_set("@#{k.to_s}".to_sym, params[k])}
|
12
|
+
|
13
|
+
raise ArgumentError.new("phone_number is empty") if @phone_number.nil? || @phone_number.empty?
|
14
|
+
raise ArgumentError.new("message is empty") if @message.nil? || @message.empty?
|
15
|
+
|
16
|
+
@message = @message.gsub("\n",'\n').gsub("\r",'\r').gsub("\\",'\\\\')
|
10
17
|
end
|
11
18
|
end
|
12
19
|
end
|
data/lib/rumeme/sms_reply.rb
CHANGED
data/lib/rumeme/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 2
|
9
|
+
version: 0.1.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- antlypls
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-11 00:00:00 +04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -31,6 +31,18 @@ dependencies:
|
|
31
31
|
version: 1.4.1
|
32
32
|
type: :runtime
|
33
33
|
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: shoulda
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
type: :development
|
45
|
+
version_requirements: *id002
|
34
46
|
description:
|
35
47
|
email: antlypls@gmail.com
|
36
48
|
executables: []
|