truesenses 0.1.1 → 0.2.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/README.rdoc +34 -3
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/truesenses/config.rb +10 -1
- data/lib/truesenses/sms_gateway.rb +16 -8
- data/sample.yml +12 -0
- metadata +7 -6
data/README.rdoc
CHANGED
@@ -1,9 +1,40 @@
|
|
1
1
|
= truesenses
|
2
2
|
|
3
|
-
|
3
|
+
A implementation of the truesenses HTTP/HTTPS API for sending SMS.
|
4
|
+
Register at truesenses.com and buy some credits.
|
5
|
+
|
6
|
+
== Install
|
7
|
+
gem install truesenses
|
8
|
+
|
9
|
+
== Notes
|
10
|
+
Not all API methods are implemented (i.e. delivery reports)
|
11
|
+
Multiple recipients are not supported (to allow for better error reports)
|
12
|
+
|
13
|
+
== How to use
|
14
|
+
|
15
|
+
require 'rubygems'
|
16
|
+
require 'truesenses'
|
17
|
+
|
18
|
+
include Truesenses
|
19
|
+
# you need a config which specifies at least username/password
|
20
|
+
config = Config.new(:username => 'ABCDE', :password => 'defgh', :prototcol => :http, :deliver => false)
|
21
|
+
# or
|
22
|
+
config = Config.load(File.join(RAILS_ROOT, 'config', 'truesenses.yml'), RAILS_ENV)
|
23
|
+
|
24
|
+
# then you can create the gateway object
|
25
|
+
gateway = SMSGateway.new(config)
|
26
|
+
|
27
|
+
# you can query the remaining credits
|
28
|
+
gateway.credits_left
|
29
|
+
|
30
|
+
# or send text messages (of course...)
|
31
|
+
# all response codes but 01 will trigger an exception
|
32
|
+
id = gateway.send_text_message('Your message', '+41987654321', :origin => 'ABCD')
|
33
|
+
|
34
|
+
|
4
35
|
|
5
36
|
== Note on Patches/Pull Requests
|
6
|
-
|
37
|
+
|
7
38
|
* Fork the project.
|
8
39
|
* Make your feature addition or bug fix.
|
9
40
|
* Add tests for it. This is important so I don't break it in a
|
@@ -14,4 +45,4 @@ Description goes here.
|
|
14
45
|
|
15
46
|
== Copyright
|
16
47
|
|
17
|
-
Copyright (c) 2010
|
48
|
+
Copyright (c) 2010 simplificator. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ begin
|
|
5
5
|
require 'jeweler'
|
6
6
|
Jeweler::Tasks.new do |gem|
|
7
7
|
gem.name = "truesenses"
|
8
|
-
gem.summary = %Q{implementation of the
|
8
|
+
gem.summary = %Q{implementation of the api for truesenses.com SMS gateway}
|
9
9
|
gem.description = %Q{implementation of the http/https api for truesenses.com SMS gateway}
|
10
10
|
gem.email = "info@simplificator.com"
|
11
11
|
gem.homepage = "http://github.com/simplificator/truesenses"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/truesenses/config.rb
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
module Truesenses
|
2
2
|
class Config
|
3
3
|
attr_reader :password, :username, :protocol, :origin, :deliver
|
4
|
+
|
5
|
+
# :username
|
6
|
+
# :password
|
7
|
+
# :protocol :http or :https, defaults to :http
|
8
|
+
# :origin default origin ID of text message
|
9
|
+
# :deliver true|false, false turns on the TEST mode of truesenses API
|
4
10
|
def initialize(options)
|
5
11
|
options = options.stringify_keys
|
6
12
|
@password = options['password']
|
@@ -10,7 +16,10 @@ module Truesenses
|
|
10
16
|
@deliver = options.has_key?('deliver') ? options['deliver'] : true
|
11
17
|
verify!
|
12
18
|
end
|
13
|
-
|
19
|
+
|
20
|
+
# Load config from a YAML file
|
21
|
+
# if root is specified, then this root key is used (useful when you store different configurations
|
22
|
+
# in one YAML file: Config.load('somefile.yml', RAILS_ENV))
|
14
23
|
def self.load(filename, root = nil)
|
15
24
|
data = YAML.load_file(filename)
|
16
25
|
Config.new(root ? data[root] : data)
|
@@ -7,29 +7,37 @@ module Truesenses
|
|
7
7
|
include HTTParty
|
8
8
|
|
9
9
|
attr_reader :config
|
10
|
+
|
11
|
+
|
12
|
+
|
10
13
|
def initialize(config)
|
11
14
|
@config = config
|
12
15
|
end
|
13
16
|
|
17
|
+
#
|
14
18
|
def credits_left
|
15
|
-
post_request('CHECKCREDITS')
|
19
|
+
post_request('CHECKCREDITS').to_i
|
16
20
|
end
|
17
21
|
|
22
|
+
# Send a text message
|
23
|
+
#
|
24
|
+
# Available options are:
|
18
25
|
# :origin: if nil, do not transmit origin even if specified in config
|
19
26
|
# :flash: true|false (defaults to false)
|
20
27
|
# :test: true|false (defaults to false)
|
28
|
+
#
|
29
|
+
# returns the ID of the message in the YYMMDDHHMMSS format (strange, i know...)
|
21
30
|
def send_text_message(message, receipient, options = {})
|
22
31
|
params = {'NUMBER' => receipient, 'MESSAGE' => message}
|
23
|
-
if
|
32
|
+
if options.has_key?(:origin) && options[:origin].nil?
|
33
|
+
# ignore origin, even if it's in config
|
34
|
+
elsif options[:origin] || self.config.origin
|
35
|
+
# set origin override config is specified in options
|
24
36
|
params['ORIGIN'] = options[:origin] || self.config.origin
|
25
37
|
end
|
26
38
|
params['FLASH'] = 'ON' if options[:flash]
|
27
|
-
params['TEST'] = 'ON' if options[:test]
|
28
|
-
|
29
|
-
post_request('SENDMESSAGE', params)
|
30
|
-
else
|
31
|
-
puts "Fake Delivery: #{message} to #{receipient}"
|
32
|
-
end
|
39
|
+
params['TEST'] = 'ON' if options[:test] || (self.config.deliver == false)
|
40
|
+
post_request('SENDMESSAGE', params)
|
33
41
|
end
|
34
42
|
|
35
43
|
|
data/sample.yml
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: truesenses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- pascalbetz
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-07 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/truesenses/hash.rb
|
56
56
|
- lib/truesenses/sms_gateway.rb
|
57
57
|
- lib/truesenses/sms_gateway_error.rb
|
58
|
+
- sample.yml
|
58
59
|
- test/helper.rb
|
59
60
|
- test/test_truesenses.rb
|
60
61
|
has_rdoc: true
|
@@ -90,7 +91,7 @@ rubyforge_project:
|
|
90
91
|
rubygems_version: 1.3.7
|
91
92
|
signing_key:
|
92
93
|
specification_version: 3
|
93
|
-
summary: implementation of the
|
94
|
+
summary: implementation of the api for truesenses.com SMS gateway
|
94
95
|
test_files:
|
95
96
|
- test/helper.rb
|
96
97
|
- test/test_truesenses.rb
|