foysavas-smsfactory 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,31 @@
1
+ # SMSFactory
2
+
3
+ Send SMS via email using Ruby and MailFactory.
4
+
5
+ As simple as possible because that's what was needed. Carrier list and email generation method taken from Justin Smestad's merb-slice-sms:
6
+
7
+ http://github.com/jsmestad/merb-slice-sms
8
+
9
+ ## Creating the Message
10
+
11
+ sms = SmsFactory.new
12
+ sms.provider = 'tmobile'
13
+ sms.number = '6175553561'
14
+ sms.message = 'y0'
15
+
16
+ # or alternatively
17
+
18
+ sms = SmsFactory.new(:provider => 'tmobile', :number => '6175551234', :message => 'y0')
19
+
20
+ ## Sending it with sendmail
21
+
22
+ sendmail = IO.popen("/usr/sbin/sendmail #{sms.to}", 'w+')
23
+ sendmail.puts sms.to_s
24
+ sendmail.close
25
+
26
+ ## Sending with Merb Mailer
27
+
28
+ m = Merb::Mailer.new
29
+ m.mail = sms
30
+ m.deliver!
31
+
@@ -0,0 +1,4 @@
1
+ ---
2
+ :patch: 1
3
+ :major: 1
4
+ :minor: 0
@@ -0,0 +1,19 @@
1
+ carriers:
2
+ alltel: @message.alltel.com
3
+ ameritech: @paging.acswireless.com
4
+ att: @txt.att.net
5
+ bellsouthmobility: @blsdcs.net
6
+ blueskyfrog: @blueskyfrog.com
7
+ boost: @myboostmobile.com
8
+ cellularsouth: @csouth1.com
9
+ kajeet: @mobile.kajeet.net
10
+ metropcs: @mymetropcs.com
11
+ powertel: @ptel.net
12
+ pscwireless: @sms.pscel.com
13
+ qwest: @qwestmp.com
14
+ southernlink: @page.southernlinc.com
15
+ sprint: @messaging.sprintpcs.com
16
+ suncom: @tms.suncom.com
17
+ tmobile: @tmomail.net
18
+ virgin: @vmobl.net
19
+ verizon: @vtext.com
@@ -0,0 +1,65 @@
1
+ require 'mailfactory'
2
+
3
+ # Creating the Message
4
+ # ====================
5
+ #
6
+ # sms = SmsFactory.new
7
+ # sms.provider = 'tmobile'
8
+ # sms.number = '6175553561'
9
+ # sms.message = 'y0'
10
+ #
11
+ # # or alternatively
12
+ #
13
+ # sms = SmsFactory.new(:provider => 'tmobile', :number => '6175551234', :message => 'y0')
14
+ #
15
+ # Sending it with sendmail
16
+ # ========================
17
+ # sendmail = IO.popen("/usr/sbin/sendmail #{sms.to}", 'w+')
18
+ # sendmail.puts sms.to_s
19
+ # sendmail.close
20
+ #
21
+ # Sending with Merb Mailer
22
+ # ========================
23
+ #
24
+ # m = Merb::Mailer.new
25
+ # m.mail = sms
26
+ # m.deliver!
27
+ #
28
+ class SmsFactory < MailFactory
29
+
30
+ attr_accessor :provider
31
+
32
+ unless $CARRIERS
33
+ require 'yaml'
34
+ $CARRIERS = YAML::load_file(File.join( File.dirname(__FILE__), "carriers.yml" ))['carriers']
35
+ end
36
+
37
+ def initialize(o={})
38
+ super()
39
+ @provider = o.delete(:provider)
40
+ o.each { |k,v| self.send "#{k}=", v }
41
+ end
42
+
43
+ def number=(value)
44
+ @number = value
45
+ self.to = generate_email
46
+ end
47
+
48
+ def message=(value)
49
+ @message = value
50
+ self.html = value
51
+ end
52
+
53
+ def generate_email
54
+ SmsFactory.generate_email(@number, @provider)
55
+ end
56
+
57
+ def self.generate_email(number, provider)
58
+ if $CARRIERS.has_key?(provider.downcase)
59
+ "#{number}#{$CARRIERS[provider.downcase]}"
60
+ else
61
+ raise SMSException.new("Provider, #{provider}, was not found.")
62
+ end
63
+ end
64
+
65
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foysavas-smsfactory
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foy Savas
@@ -21,8 +21,11 @@ extensions: []
21
21
 
22
22
  extra_rdoc_files: []
23
23
 
24
- files: []
25
-
24
+ files:
25
+ - VERSION.yml
26
+ - README.markdown
27
+ - lib/smsfactory.rb
28
+ - lib/carriers.yml
26
29
  has_rdoc: false
27
30
  homepage: http://github.com/foysavas/smsfactorym
28
31
  post_install_message: