nofxx-activesms 0.9.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.
- data/.autotest +17 -0
- data/CHANGELOG +5 -0
- data/History.txt +25 -0
- data/License.txt +22 -0
- data/MIT-LICENSE +22 -0
- data/Manifest.txt +56 -0
- data/README.txt +54 -0
- data/Rakefile +16 -0
- data/activesms.gemspec +36 -0
- data/config/hoe.rb +78 -0
- data/config/requirements.rb +15 -0
- the PDU format.webarchive +0 -0
- data/generators/sms/USAGE +20 -0
- data/generators/sms/sms_generator.rb +35 -0
- data/generators/sms/templates/fixture.rhtml +1 -0
- data/generators/sms/templates/model.rb +19 -0
- data/generators/sms/templates/sms.yml +103 -0
- data/generators/sms/templates/unit_test.rb +31 -0
- data/init.rb +4 -0
- data/lib/activesms.rb +79 -0
- data/lib/activesms/adv_attr_accessor.rb +32 -0
- data/lib/activesms/base.rb +249 -0
- data/lib/activesms/config.rb +20 -0
- data/lib/activesms/connection_adapters/abstract_adapter.rb +52 -0
- data/lib/activesms/connection_adapters/bulk_sms_adapter.rb +67 -0
- data/lib/activesms/connection_adapters/clickatell_adapter.rb +51 -0
- data/lib/activesms/connection_adapters/human_adapter.rb +174 -0
- data/lib/activesms/connection_adapters/simplewire_adapter.rb +73 -0
- data/lib/activesms/connections.rb +63 -0
- data/lib/activesms/email.rb +60 -0
- data/lib/activesms/exceptions.rb +35 -0
- data/lib/activesms/sms.rb +9 -0
- data/lib/activesms/sms2email.rb +21 -0
- data/lib/activesms/validations.rb +86 -0
- data/lib/activesms/version.rb +9 -0
- data/lib/activesms/views/active_sms/sms2_email/sms_message.html.erb +1 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +82 -0
- data/setup.rb +1585 -0
- data/spec/activesms/base_spec.rb +11 -0
- data/spec/activesms/connection_adapters/abstract_adapter_spec.rb +30 -0
- data/spec/activesms/connection_adapters/human_adapter_spec.rb +38 -0
- data/spec/activesms/connection_adapters/simplewire_spec.rb +75 -0
- data/spec/activesms/email_spec.rb +72 -0
- data/spec/activesms/sms2email_spec.rb +31 -0
- data/spec/activesms/sms_spec.rb +31 -0
- data/spec/activesms_spec.rb +15 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +57 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/rspec.rake +21 -0
- data/views/active_sms/base/sms2_email/sms_message.html.erb +1 -0
- metadata +130 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
+
require 'net/https'
|
|
3
|
+
|
|
4
|
+
include ConnectionAdapters
|
|
5
|
+
|
|
6
|
+
describe AbstractAdapter do
|
|
7
|
+
|
|
8
|
+
before(:each) do
|
|
9
|
+
@abstract_adapter = AbstractAdapter.new(nil)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should instantiate" do
|
|
13
|
+
violated unless @abstract_adapter
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should have a name" do
|
|
17
|
+
@abstract_adapter.adapter_name.should eql("Abstract")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should have a default deliver method, to be implemented by subclasses" do
|
|
21
|
+
@abstract_adapter.should_receive(:deliver)
|
|
22
|
+
@abstract_adapter.deliver(mock(Sms))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should respond to parse with nil.. for some obscure reason" do
|
|
26
|
+
@abstract_adapter.parse(mock(Sms)).should eql(nil)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
|
2
|
+
include ConnectionAdapters
|
|
3
|
+
|
|
4
|
+
describe HumanAdapter do
|
|
5
|
+
|
|
6
|
+
before(:each) do
|
|
7
|
+
@human_adapter = HumanAdapter.new(nil, {:use_ssl => false})
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should instantiate" do
|
|
11
|
+
violated unless @human_adapter
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should have a name" do
|
|
15
|
+
@human_adapter.adapter_name.should eql("Human")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should have a good url to send" do
|
|
19
|
+
@human_adapter.service_url.should eql("http://system.human.com.br:8080/GatewayIntegration/msgSms.do")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should parse time nicely" do
|
|
23
|
+
@human_adapter.date_format_human('Fri Aug 08 01:18:56 -0300 2008').should eql("08/08/2008 01:18:56")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should call http to send the message" do
|
|
27
|
+
sms = mock(Sms, :recipients => 'x@xx.com', :body => 'hi', :id => 1,
|
|
28
|
+
:from => 'no@mail.com', :schedule => "08/08/2008 01:18:56")
|
|
29
|
+
|
|
30
|
+
@human_adapter.should_receive(:send_http_request).\
|
|
31
|
+
with("http://system.human.com.br:8080/GatewayIntegration/msgSms.do", {
|
|
32
|
+
:type=>"E", :from=>"no@mail.com", :msg=>"hi",
|
|
33
|
+
:account=>nil, :dispatch=>"send", :schedule=>"08/08/2008 01:18:56",
|
|
34
|
+
:to=>"x@xx.com", :code=>nil, :id => 1
|
|
35
|
+
}).and_return(true)
|
|
36
|
+
@human_adapter.deliver(sms)#.should be_true
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# puts "test"
|
|
2
|
+
#
|
|
3
|
+
# require File.dirname(__FILE__) + "/../test_helper"
|
|
4
|
+
#
|
|
5
|
+
# # Only run this test if using jruby
|
|
6
|
+
# if RUBY_PLATFORM =~ /java/
|
|
7
|
+
# class SimplewireAdapterTest < Test::Unit::TestCase
|
|
8
|
+
# def setup
|
|
9
|
+
# @simplewire_adapter = ActiveSms::ConnectionAdapters::SimplewireAdapter.new(nil, {
|
|
10
|
+
# :subscriber_id => 'id',
|
|
11
|
+
# :subscriber_password => 'password'})
|
|
12
|
+
# end
|
|
13
|
+
#
|
|
14
|
+
# def test_instantiation
|
|
15
|
+
# assert_raise(RuntimeError) { ActiveSms::ConnectionAdapters::SimplewireAdapter.new(nil, {}) }
|
|
16
|
+
# assert @simplewire_adapter
|
|
17
|
+
# end
|
|
18
|
+
#
|
|
19
|
+
# def test_sms_size
|
|
20
|
+
# sms = flexmock("sms")
|
|
21
|
+
# sms.should_receive(:subscriber_id).and_return("id")
|
|
22
|
+
# sms.should_receive(:subscriber_password).and_return("password")
|
|
23
|
+
# sms.should_receive(:recipients).and_return("4081234567")
|
|
24
|
+
# sms.should_receive(:from).and_return("6502435555")
|
|
25
|
+
# long_body = ""
|
|
26
|
+
# 150.times {long_body += "x"}
|
|
27
|
+
# sms.should_receive(:body).and_return(long_body)
|
|
28
|
+
#
|
|
29
|
+
# assert_raise(StandardError) do
|
|
30
|
+
# s = @simplewire_adapter.create_sms(sms)
|
|
31
|
+
# end
|
|
32
|
+
# end
|
|
33
|
+
#
|
|
34
|
+
# def test_parse_sms
|
|
35
|
+
# xmldata = create_sms('121212', '6502435555', 'blah blah')
|
|
36
|
+
# sms = @simplewire_adapter.parse(xmldata)
|
|
37
|
+
# assert_equal 'blah blah', sms.body
|
|
38
|
+
# assert_equal '121212', sms.to
|
|
39
|
+
# assert_equal '6502435555', sms.from
|
|
40
|
+
# end
|
|
41
|
+
#
|
|
42
|
+
# def test_create_sms
|
|
43
|
+
# sms = flexmock("sms")
|
|
44
|
+
# sms.should_receive(:subscriber_id).and_return("id")
|
|
45
|
+
# sms.should_receive(:subscriber_password).and_return("password")
|
|
46
|
+
# sms.should_receive(:recipients).and_return("4081234567")
|
|
47
|
+
# sms.should_receive(:from).and_return("6502435555")
|
|
48
|
+
# sms.should_receive(:body).and_return("This is the body of the sms")
|
|
49
|
+
#
|
|
50
|
+
# s = @simplewire_adapter.create_sms(sms)
|
|
51
|
+
#
|
|
52
|
+
# assert_equal "id", s.subscriber_id
|
|
53
|
+
# assert_equal "password", s.subscriber_password
|
|
54
|
+
# assert_equal "4081234567", s.destination_addr.address
|
|
55
|
+
# assert_equal "6502435555", s.source_addr.address
|
|
56
|
+
# assert_equal "This is the body of the sms", s.msg_text
|
|
57
|
+
# end
|
|
58
|
+
#
|
|
59
|
+
# protected
|
|
60
|
+
# def create_sms(to, from, body)
|
|
61
|
+
# xmldata =<<END
|
|
62
|
+
# <?xml version="1.0" ?>
|
|
63
|
+
# <request version="3.0" protocol="wmp" type="deliver">
|
|
64
|
+
# <account id="123-456-789-12345"/>
|
|
65
|
+
# <destination ton="3" address="#{to}"/>
|
|
66
|
+
# <source carrier="348" ton="1" address="#{from}"/>
|
|
67
|
+
# <option datacoding="7bit" />
|
|
68
|
+
# <message udhi="true" data="0605040B8423F0#{body.unpack('H*')}"/>
|
|
69
|
+
# <ticket id="12004-0923R-1845S-10M25"/>
|
|
70
|
+
# </request>
|
|
71
|
+
# END
|
|
72
|
+
# xmldata
|
|
73
|
+
# end
|
|
74
|
+
# end
|
|
75
|
+
# end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
|
+
|
|
3
|
+
class Noter < ActiveSms::Base
|
|
4
|
+
def emaio
|
|
5
|
+
@delivery = :email
|
|
6
|
+
@carrier = 'tim' #
|
|
7
|
+
@recipients = '5555555555'
|
|
8
|
+
@from = 'me@somewhere.net'
|
|
9
|
+
@body = "Hi Friend"
|
|
10
|
+
#@id = ''
|
|
11
|
+
#@schedule = "dd/mm/aaaa hh:mm:ss"
|
|
12
|
+
@options = {}
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe Email do
|
|
17
|
+
|
|
18
|
+
it "should deliver an sms" do
|
|
19
|
+
sms = mock(Sms, :delivery => :email, :recipients => '5555555555', :body => 'hi', :options => {},
|
|
20
|
+
:id => 1, :carrier => :tim, :from => 'other@domain.com', :schedule => "08/08/2008 01:18:56")
|
|
21
|
+
Sms2Email.should_receive(:deliver_sms_message).with("5555555555@tim.com.br", "hi", "noreply@domain.com").and_return(true)
|
|
22
|
+
Noter.deliver(sms)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "Include Module" do
|
|
26
|
+
include Email
|
|
27
|
+
|
|
28
|
+
it "should format number" do
|
|
29
|
+
stub!(:valid?).and_return(false)
|
|
30
|
+
#format_number('555444').should eql('555555555')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should determine a correct email address" do
|
|
34
|
+
get_sms_address('5543214321', 'tim').should eql('5543214321@tim.com.br')
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should determine two time to be sure" do
|
|
38
|
+
get_sms_address('5543214321', 'oi').should eql('5543214321@sms.oi.com.br')
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should be valid with more than 10 digits" do
|
|
42
|
+
is_valid?('1234567890').should be_true
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "should be invalid with lesse than 10 digits" do
|
|
46
|
+
is_valid?('123456789').should_not be_true
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "should be invalid if it has something that is not a number.. NaN hehe" do
|
|
50
|
+
is_valid?('123456789a').should_not be_true
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it "should clean the number from evil chars" do
|
|
54
|
+
get_sms_address('5-54g3-2=143h21', 'tim').should eql('5543214321@tim.com.br')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should throw an error if the carrier is not known" do
|
|
58
|
+
lambda {get_sms_address('5543214321', 'nofxx-telecom')}.should raise_error(ActiveSms::CarrierException)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it "should throw an error if the carrier is blank" do
|
|
62
|
+
lambda {get_sms_address('5543214321', '')}.should raise_error(ActiveSms::CarrierException)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
describe "Email2Sms" do
|
|
66
|
+
it "should throw an error if the carrier is blank" do
|
|
67
|
+
@sms = ActiveSms::Sms.new
|
|
68
|
+
lambda {email_deliver(@sms)}.should raise_error(ActiveSms::CarrierException)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe Sms2Email do
|
|
4
|
+
context 'The SomeMailer mailer' do
|
|
5
|
+
CHARSET = 'utf-8'
|
|
6
|
+
include ActionMailer::Quoting
|
|
7
|
+
|
|
8
|
+
setup do
|
|
9
|
+
# You don't need these lines while you are using create_ instead of deliver_
|
|
10
|
+
#ActionMailer::Base.delivery_method = :test
|
|
11
|
+
#ActionMailer::Base.perform_deliveries = true
|
|
12
|
+
#ActionMailer::Base.deliveries = []
|
|
13
|
+
|
|
14
|
+
@expected = TMail::Mail.new
|
|
15
|
+
@expected.set_content_type 'text', 'plain', { 'charset' => CHARSET }
|
|
16
|
+
@expected.mime_version = '1.0'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
specify 'should send sms via email' do
|
|
20
|
+
#@expected.subject = 'Account activation'
|
|
21
|
+
@expected.body = 'hi' #read_fixture('sms_mesage')
|
|
22
|
+
@expected.from = 'no-email@example.com'
|
|
23
|
+
@expected.to = 'some@mail.com'
|
|
24
|
+
|
|
25
|
+
Sms2Email.create_sms_message("some@mail.com", "hi", "no-email@example.com").\
|
|
26
|
+
encoded.should == @expected.encoded
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
# good post about testing mailers
|
|
31
|
+
# => http://kpumuk.info/ruby-on-rails/testing-mailers-with-rspec/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
2
|
+
|
|
3
|
+
module SmsSpecHelper
|
|
4
|
+
def attr_valid_sms
|
|
5
|
+
{
|
|
6
|
+
:delivery => :email,
|
|
7
|
+
:carrier => 'tim',
|
|
8
|
+
:recipients => '5544443333',
|
|
9
|
+
:from => 'someone@somewher.net',
|
|
10
|
+
:body => 'hello...how are your family?',
|
|
11
|
+
:id => 1,
|
|
12
|
+
:schedule => Time.parse('Sat Aug 09 03:44:19 -0300 2008')
|
|
13
|
+
}
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
describe Sms do
|
|
17
|
+
include SmsSpecHelper
|
|
18
|
+
|
|
19
|
+
before(:each) do
|
|
20
|
+
@sms = Sms.new
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should be a valid sms" do
|
|
24
|
+
violated unless @sms
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should return a nice string" do
|
|
28
|
+
@sms.attr = attr_valid_sms
|
|
29
|
+
@sms.to_s.should eql("#<ActiveSms::Sms @recipients=\"5544443333\" @from=\"someone@somewher.net\" @body=\"hello...how are your family?\" @id=1 @schedule=Sat Aug 09 03:44:19 -0300 2008>")
|
|
30
|
+
end
|
|
31
|
+
end
|
data/spec/spec.opts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--colour
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'spec'
|
|
3
|
+
rescue LoadError
|
|
4
|
+
require 'rubygems'
|
|
5
|
+
gem 'rspec'
|
|
6
|
+
require 'spec'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
10
|
+
#$:.unshift(File.dirname(__FILE__) + '/../lib/activesms')
|
|
11
|
+
#$:.unshift(File.dirname(__FILE__) + '/../lib/activesms/connection_adapters')
|
|
12
|
+
require 'activesms'
|
|
13
|
+
|
|
14
|
+
include ActiveSms
|
|
15
|
+
|
|
16
|
+
# #
|
|
17
|
+
# HELPERS
|
|
18
|
+
#
|
|
19
|
+
#
|
|
20
|
+
class Object
|
|
21
|
+
|
|
22
|
+
def attr=(options = {})
|
|
23
|
+
options.each do |attribute, value|
|
|
24
|
+
self.send("#{attribute}=", value)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# ##
|
|
30
|
+
# * http://wincent.com/knowledge-base/Fixtures_considered_harmful%3F
|
|
31
|
+
# * Neil Rahilly
|
|
32
|
+
class Hash
|
|
33
|
+
##
|
|
34
|
+
# Filter keys out of a Hash.
|
|
35
|
+
#
|
|
36
|
+
# { :a => 1, :b => 2, :c => 3 }.except(:a)
|
|
37
|
+
# => { :b => 2, :c => 3 }
|
|
38
|
+
def except(*keys)
|
|
39
|
+
self.reject { |k,v| keys.include?(k || k.to_sym) }
|
|
40
|
+
end
|
|
41
|
+
##
|
|
42
|
+
# Override some keys.
|
|
43
|
+
#
|
|
44
|
+
# { :a => 1, :b => 2, :c => 3 }.with(:a => 4)
|
|
45
|
+
# => { :a => 4, :b => 2, :c => 3 }
|
|
46
|
+
def with(overrides = {})
|
|
47
|
+
self.merge overrides
|
|
48
|
+
end
|
|
49
|
+
##
|
|
50
|
+
# Returns a Hash with only the pairs identified by +keys+.
|
|
51
|
+
#
|
|
52
|
+
# { :a => 1, :b => 2, :c => 3 }.only(:a)
|
|
53
|
+
# => { :a => 1 }
|
|
54
|
+
def only(*keys)
|
|
55
|
+
self.reject { |k,v| !keys.include?(k || k.to_sym) }
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
desc 'Release the website and new gem version'
|
|
2
|
+
task :deploy => [:check_version, :website, :release] do
|
|
3
|
+
puts "Remember to create SVN tag:"
|
|
4
|
+
puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
|
|
5
|
+
"svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
|
|
6
|
+
puts "Suggested comment:"
|
|
7
|
+
puts "Tagging release #{CHANGES}"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
|
|
11
|
+
task :local_deploy => [:website_generate, :install_gem]
|
|
12
|
+
|
|
13
|
+
task :check_version do
|
|
14
|
+
unless ENV['VERSION']
|
|
15
|
+
puts 'Must pass a VERSION=x.y.z release version'
|
|
16
|
+
exit
|
|
17
|
+
end
|
|
18
|
+
unless ENV['VERSION'] == VERS
|
|
19
|
+
puts "Please update your version.rb to match the release version, currently #{VERS}"
|
|
20
|
+
exit
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
|
25
|
+
task :install_gem_no_doc => [:clean, :package] do
|
|
26
|
+
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
namespace :manifest do
|
|
30
|
+
desc 'Recreate Manifest.txt to include ALL files'
|
|
31
|
+
task :refresh do
|
|
32
|
+
`rake check_manifest | patch -p0 > Manifest.txt`
|
|
33
|
+
end
|
|
34
|
+
end
|
data/tasks/rspec.rake
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'spec'
|
|
3
|
+
rescue LoadError
|
|
4
|
+
require 'rubygems'
|
|
5
|
+
require 'spec'
|
|
6
|
+
end
|
|
7
|
+
begin
|
|
8
|
+
require 'spec/rake/spectask'
|
|
9
|
+
rescue LoadError
|
|
10
|
+
puts <<-EOS
|
|
11
|
+
To use rspec for testing you must install rspec gem:
|
|
12
|
+
gem install rspec
|
|
13
|
+
EOS
|
|
14
|
+
exit(0)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
desc "Run the specs under spec/models"
|
|
18
|
+
Spec::Rake::SpecTask.new do |t|
|
|
19
|
+
t.spec_opts = ['--options', "spec/spec.opts"]
|
|
20
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
21
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= @message %>
|
metadata
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: nofxx-activesms
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.9.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Robert Cottrell
|
|
8
|
+
- Marcos Piccinini
|
|
9
|
+
- Ben Curren
|
|
10
|
+
- Dean Mao
|
|
11
|
+
autorequire:
|
|
12
|
+
bindir: bin
|
|
13
|
+
cert_chain: []
|
|
14
|
+
|
|
15
|
+
date: 2008-09-09 00:00:00 -07:00
|
|
16
|
+
default_executable:
|
|
17
|
+
dependencies:
|
|
18
|
+
- !ruby/object:Gem::Dependency
|
|
19
|
+
name: hoe
|
|
20
|
+
version_requirement:
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 1.7.0
|
|
26
|
+
version:
|
|
27
|
+
description: Active SMS is a framework for sending and receiving SMS messages
|
|
28
|
+
email:
|
|
29
|
+
- rgcottrell@rubyforge.org
|
|
30
|
+
- x@nofxx.com
|
|
31
|
+
- ben@esomnie.com
|
|
32
|
+
- dean@esomnie.com
|
|
33
|
+
executables: []
|
|
34
|
+
|
|
35
|
+
extensions: []
|
|
36
|
+
|
|
37
|
+
extra_rdoc_files:
|
|
38
|
+
- History.txt
|
|
39
|
+
- License.txt
|
|
40
|
+
- Manifest.txt
|
|
41
|
+
- README.txt
|
|
42
|
+
files:
|
|
43
|
+
- .autotest
|
|
44
|
+
- CHANGELOG
|
|
45
|
+
- History.txt
|
|
46
|
+
- License.txt
|
|
47
|
+
- MIT-LICENSE
|
|
48
|
+
- Manifest.txt
|
|
49
|
+
- README.txt
|
|
50
|
+
- Rakefile
|
|
51
|
+
- activesms.gemspec
|
|
52
|
+
- config/hoe.rb
|
|
53
|
+
- config/requirements.rb
|
|
54
|
+
- docs/SMS messages and the PDU format.webarchive
|
|
55
|
+
- generators/sms/USAGE
|
|
56
|
+
- generators/sms/sms_generator.rb
|
|
57
|
+
- generators/sms/templates/fixture.rhtml
|
|
58
|
+
- generators/sms/templates/model.rb
|
|
59
|
+
- generators/sms/templates/sms.yml
|
|
60
|
+
- generators/sms/templates/unit_test.rb
|
|
61
|
+
- init.rb
|
|
62
|
+
- lib/activesms.rb
|
|
63
|
+
- lib/activesms/adv_attr_accessor.rb
|
|
64
|
+
- lib/activesms/base.rb
|
|
65
|
+
- lib/activesms/config.rb
|
|
66
|
+
- lib/activesms/connection_adapters/abstract_adapter.rb
|
|
67
|
+
- lib/activesms/connection_adapters/bulk_sms_adapter.rb
|
|
68
|
+
- lib/activesms/connection_adapters/clickatell_adapter.rb
|
|
69
|
+
- lib/activesms/connection_adapters/human_adapter.rb
|
|
70
|
+
- lib/activesms/connection_adapters/simplewire_adapter.rb
|
|
71
|
+
- lib/activesms/connections.rb
|
|
72
|
+
- lib/activesms/email.rb
|
|
73
|
+
- lib/activesms/exceptions.rb
|
|
74
|
+
- lib/activesms/sms.rb
|
|
75
|
+
- lib/activesms/sms2email.rb
|
|
76
|
+
- lib/activesms/validations.rb
|
|
77
|
+
- lib/activesms/version.rb
|
|
78
|
+
- lib/activesms/views/active_sms/sms2_email/sms_message.html.erb
|
|
79
|
+
- script/console
|
|
80
|
+
- script/destroy
|
|
81
|
+
- script/generate
|
|
82
|
+
- script/txt2html
|
|
83
|
+
- setup.rb
|
|
84
|
+
- spec/activesms/base_spec.rb
|
|
85
|
+
- spec/activesms/connection_adapters/abstract_adapter_spec.rb
|
|
86
|
+
- spec/activesms/connection_adapters/human_adapter_spec.rb
|
|
87
|
+
- spec/activesms/connection_adapters/simplewire_spec.rb
|
|
88
|
+
- spec/activesms/email_spec.rb
|
|
89
|
+
- spec/activesms/sms2email_spec.rb
|
|
90
|
+
- spec/activesms/sms_spec.rb
|
|
91
|
+
- spec/activesms_spec.rb
|
|
92
|
+
- spec/spec.opts
|
|
93
|
+
- spec/spec_helper.rb
|
|
94
|
+
- tasks/deployment.rake
|
|
95
|
+
- tasks/environment.rake
|
|
96
|
+
- tasks/rspec.rake
|
|
97
|
+
- tasks/website.rake
|
|
98
|
+
- views/active_sms/base/sms2_email/sms_message.html.erb
|
|
99
|
+
has_rdoc: true
|
|
100
|
+
homepage: http://github.com/nofxx/activesms
|
|
101
|
+
post_install_message: |+
|
|
102
|
+
|
|
103
|
+
For more information on activesms, see http://github.com/nofxx/activesms
|
|
104
|
+
|
|
105
|
+
rdoc_options:
|
|
106
|
+
- --main
|
|
107
|
+
- README.txt
|
|
108
|
+
require_paths:
|
|
109
|
+
- lib
|
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: "0"
|
|
115
|
+
version:
|
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
|
+
requirements:
|
|
118
|
+
- - ">="
|
|
119
|
+
- !ruby/object:Gem::Version
|
|
120
|
+
version: "0"
|
|
121
|
+
version:
|
|
122
|
+
requirements: []
|
|
123
|
+
|
|
124
|
+
rubyforge_project: activesms
|
|
125
|
+
rubygems_version: 1.2.0
|
|
126
|
+
signing_key:
|
|
127
|
+
specification_version: 2
|
|
128
|
+
summary: Active SMS is a framework for sending and receiving SMS messages
|
|
129
|
+
test_files: []
|
|
130
|
+
|