rumeme 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|