sms_speedway_api 0.0.1

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.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +32 -0
  5. data/lib/sms_speedway_api/core_ext.rb +2 -0
  6. data/lib/sms_speedway_api/version.rb +3 -0
  7. data/lib/sms_speedway_api.rb +116 -0
  8. data/lib/tasks/sms_speedway_api_tasks.rake +4 -0
  9. data/test/dummy/README.rdoc +28 -0
  10. data/test/dummy/Rakefile +6 -0
  11. data/test/dummy/app/assets/javascripts/application.js +13 -0
  12. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  13. data/test/dummy/app/controllers/application_controller.rb +5 -0
  14. data/test/dummy/app/helpers/application_helper.rb +2 -0
  15. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  16. data/test/dummy/bin/bundle +3 -0
  17. data/test/dummy/bin/rails +4 -0
  18. data/test/dummy/bin/rake +4 -0
  19. data/test/dummy/config/application.rb +23 -0
  20. data/test/dummy/config/boot.rb +5 -0
  21. data/test/dummy/config/database.yml +25 -0
  22. data/test/dummy/config/environment.rb +5 -0
  23. data/test/dummy/config/environments/development.rb +37 -0
  24. data/test/dummy/config/environments/production.rb +78 -0
  25. data/test/dummy/config/environments/test.rb +39 -0
  26. data/test/dummy/config/initializers/assets.rb +8 -0
  27. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  28. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  29. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  30. data/test/dummy/config/initializers/inflections.rb +16 -0
  31. data/test/dummy/config/initializers/mime_types.rb +4 -0
  32. data/test/dummy/config/initializers/session_store.rb +3 -0
  33. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  34. data/test/dummy/config/locales/en.yml +23 -0
  35. data/test/dummy/config/routes.rb +56 -0
  36. data/test/dummy/config/secrets.yml +22 -0
  37. data/test/dummy/config.ru +4 -0
  38. data/test/dummy/db/test.sqlite3 +0 -0
  39. data/test/dummy/log/test.log +4005 -0
  40. data/test/dummy/public/404.html +67 -0
  41. data/test/dummy/public/422.html +67 -0
  42. data/test/dummy/public/500.html +66 -0
  43. data/test/dummy/public/favicon.ico +0 -0
  44. data/test/sms_speedway_api_response_test.rb +30 -0
  45. data/test/sms_speedway_api_test.rb +158 -0
  46. data/test/test_helper.rb +16 -0
  47. metadata +143 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ class SmsSpeedwayApiTest < ActiveSupport::TestCase
4
+
5
+ def test_set_reponse_code
6
+ xx= SmsSpeedwayApi::RESPONSE.new
7
+ assert_equal xx.code, -1
8
+
9
+ xx.code=2
10
+ assert_equal xx.code, 2
11
+ end
12
+
13
+ def test_set_message
14
+ xx= SmsSpeedwayApi::RESPONSE.new
15
+ assert_equal xx.message, ""
16
+
17
+ xx.message="abc"
18
+ assert_equal xx.message, "abc"
19
+ end
20
+
21
+ def test_success
22
+ xx= SmsSpeedwayApi::RESPONSE.new
23
+ assert_not xx.success?
24
+
25
+ xx.code=0
26
+ assert xx.success?
27
+ end
28
+
29
+
30
+ end
@@ -0,0 +1,158 @@
1
+ require 'test_helper'
2
+
3
+ class SmsSpeedwayApiTest < ActiveSupport::TestCase
4
+
5
+ test "truth" do
6
+ assert_kind_of Module, SmsSpeedwayApi
7
+ end
8
+
9
+ def test_set_company
10
+ xx= SmsSpeedwayApi::SMS.new
11
+ xx.company="abc"
12
+ assert_equal "abc", xx.company
13
+ end
14
+
15
+ def test_set_user
16
+ xx= SmsSpeedwayApi::SMS.new
17
+ xx.username="userabc"
18
+ assert_equal "userabc", xx.username
19
+ end
20
+
21
+ def test_set_password
22
+ xx= SmsSpeedwayApi::SMS.new
23
+ xx.password="passabc"
24
+ assert_equal "passabc", xx.password
25
+ end
26
+
27
+ def test_testmode
28
+ xx= SmsSpeedwayApi::SMS.new
29
+ assert_equal xx.testmode, false
30
+ assert_equal "http://www.sms-speedway.com/queue_sms.php?", xx.speedwayUrl
31
+
32
+ xx.testmode=true
33
+ assert_equal xx.testmode, true
34
+ assert_equal "http://dev.sms-speedway.com/queue_sms.php?TESTMODE=1&", xx.speedwayUrl
35
+ end
36
+
37
+ def test_send_with_no_dest
38
+ xx= SmsSpeedwayApi::SMS.new
39
+ xx.password="passabc"
40
+ assert_equal "passabc", xx.password
41
+ end
42
+
43
+ def test_validate_message
44
+ xx= SmsSpeedwayApi::SMS.new
45
+
46
+ ret=xx.validate_message
47
+ assert_equal ret.code, 1
48
+ assert_equal "Message is empty", ret.message
49
+
50
+ xx.message="abc"
51
+ ret=xx.validate_message
52
+ assert_equal ret.code, 0
53
+ end
54
+
55
+ def test_validate_numbers
56
+ xx= SmsSpeedwayApi::SMS.new
57
+
58
+ ret=xx.validate_numbers
59
+ assert_equal ret.code, 2
60
+ assert_equal "No numbers to send to", ret.message
61
+
62
+ xx.numbers=["07973000000"]
63
+ ret=xx.validate_numbers
64
+ assert_equal ret.code, 0
65
+ end
66
+
67
+ def test_validate_login
68
+ xx= SmsSpeedwayApi::SMS.new
69
+
70
+ ret=xx.validate_login
71
+ assert_equal ret.code, 3
72
+ assert_equal "Company ID is missing", ret.message
73
+
74
+ xx.company="company1"
75
+ ret=xx.validate_login
76
+ assert_equal ret.code, 4
77
+ assert_equal "User ID is missing", ret.message
78
+
79
+ xx.username="user1"
80
+ ret=xx.validate_login
81
+ assert_equal ret.code, 5
82
+ assert_equal "Password is missing", ret.message
83
+
84
+ xx.password="abc123"
85
+ ret=xx.validate_login
86
+ assert_equal ret.code, 0
87
+ assert_equal "", ret.message
88
+ end
89
+
90
+ def test_numbers_as_string
91
+ xx= SmsSpeedwayApi::SMS.new
92
+ assert_equal "", xx.numbers_as_string
93
+
94
+ xx.numbers=["07973000000"]
95
+ assert_equal "07973000000", xx.numbers_as_string
96
+
97
+ xx.numbers=["07973000000", "07973000001", "07973000002"]
98
+ assert_equal "07973000000,07973000001,07973000002", xx.numbers_as_string
99
+ end
100
+
101
+ def test_get_url
102
+ xx= SmsSpeedwayApi::SMS.new
103
+
104
+ xx.numbers=["07973000000"]
105
+ xx.message="Test message"
106
+ xx.company="company1"
107
+ xx.username="user1"
108
+ xx.password="abc123"
109
+
110
+ assert_equal "http://www.sms-speedway.com/queue_sms.php?message=Test%20message&company=company1&login=user1&password=abc123&numbers=07973000000", xx.getURL
111
+ end
112
+
113
+ def test_send
114
+ xx= SmsSpeedwayApi::SMS.new
115
+
116
+ ret= xx.send
117
+ assert_not ret.success?
118
+ assert_equal "Message is empty", ret.message
119
+ assert_equal ret.code, 1
120
+
121
+ xx.message="Test message"
122
+ assert_equal "Test message", xx.message
123
+
124
+ ret= xx.send
125
+ assert_equal "No numbers to send to", ret.message
126
+ assert_equal ret.code, 2
127
+
128
+ xx.numbers=["07973000000"]
129
+ assert_equal ["07973000000"], xx.numbers
130
+ ret= xx.send
131
+ assert_equal 3, ret.code
132
+ assert_equal "Company ID is missing", ret.message
133
+
134
+ xx.company="company1"
135
+ xx.username="user1"
136
+ xx.password="abc123"
137
+ ret= xx.send
138
+
139
+ assert_equal 100,ret.code
140
+ assert_equal "*** LOGIN FAILURE ***", ret.message
141
+ end
142
+
143
+ # def test_real
144
+ # Put in your own live credentials here
145
+ # xx= SmsSpeedwayApi::SMS.new
146
+ # xx.message="Test message"
147
+ # xx.numbers=["xxxxxxxxxxx"]
148
+ # xx.company="xxxxxx"
149
+ # xx.username="xxxxxxxx"
150
+ # xx.password="xxxxxxxxx"
151
+
152
+ # ret= xx.send
153
+
154
+ # assert_equal 0,ret.code
155
+
156
+ # end
157
+
158
+ end
@@ -0,0 +1,16 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6
+ require "rails/test_help"
7
+
8
+ Rails.backtrace_cleaner.remove_silencers!
9
+
10
+ # Load support files
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+
13
+ # Load fixtures from the engine
14
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
15
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
16
+ end
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sms_speedway_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - SMS Speedway
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.8
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.8
27
+ description: This gem implements a lightweight API for using the SMS Speedway text
28
+ messaging service. Simple create an instance of SmsSpeedwayApi::SMS set the login
29
+ details, numbers to send to and the message, then call the send method.
30
+ email:
31
+ - info@sms-speedway.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - lib/sms_speedway_api.rb
37
+ - lib/tasks/sms_speedway_api_tasks.rake
38
+ - lib/sms_speedway_api/core_ext.rb
39
+ - lib/sms_speedway_api/version.rb
40
+ - MIT-LICENSE
41
+ - Rakefile
42
+ - README.rdoc
43
+ - test/sms_speedway_api_response_test.rb
44
+ - test/test_helper.rb
45
+ - test/sms_speedway_api_test.rb
46
+ - test/dummy/app/views/layouts/application.html.erb
47
+ - test/dummy/app/assets/stylesheets/application.css
48
+ - test/dummy/app/assets/javascripts/application.js
49
+ - test/dummy/app/helpers/application_helper.rb
50
+ - test/dummy/app/controllers/application_controller.rb
51
+ - test/dummy/config.ru
52
+ - test/dummy/db/test.sqlite3
53
+ - test/dummy/public/422.html
54
+ - test/dummy/public/favicon.ico
55
+ - test/dummy/public/404.html
56
+ - test/dummy/public/500.html
57
+ - test/dummy/config/application.rb
58
+ - test/dummy/config/environment.rb
59
+ - test/dummy/config/database.yml
60
+ - test/dummy/config/initializers/cookies_serializer.rb
61
+ - test/dummy/config/initializers/filter_parameter_logging.rb
62
+ - test/dummy/config/initializers/mime_types.rb
63
+ - test/dummy/config/initializers/backtrace_silencers.rb
64
+ - test/dummy/config/initializers/wrap_parameters.rb
65
+ - test/dummy/config/initializers/inflections.rb
66
+ - test/dummy/config/initializers/session_store.rb
67
+ - test/dummy/config/initializers/assets.rb
68
+ - test/dummy/config/environments/production.rb
69
+ - test/dummy/config/environments/test.rb
70
+ - test/dummy/config/environments/development.rb
71
+ - test/dummy/config/boot.rb
72
+ - test/dummy/config/secrets.yml
73
+ - test/dummy/config/locales/en.yml
74
+ - test/dummy/config/routes.rb
75
+ - test/dummy/log/test.log
76
+ - test/dummy/bin/bundle
77
+ - test/dummy/bin/rails
78
+ - test/dummy/bin/rake
79
+ - test/dummy/README.rdoc
80
+ - test/dummy/Rakefile
81
+ homepage: http://www.sms-speedway.com
82
+ licenses:
83
+ - MIT
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 2.0.0.rc.2
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: Interface to the SMS Speedway text messaging service
105
+ test_files:
106
+ - test/sms_speedway_api_response_test.rb
107
+ - test/test_helper.rb
108
+ - test/sms_speedway_api_test.rb
109
+ - test/dummy/app/views/layouts/application.html.erb
110
+ - test/dummy/app/assets/stylesheets/application.css
111
+ - test/dummy/app/assets/javascripts/application.js
112
+ - test/dummy/app/helpers/application_helper.rb
113
+ - test/dummy/app/controllers/application_controller.rb
114
+ - test/dummy/config.ru
115
+ - test/dummy/db/test.sqlite3
116
+ - test/dummy/public/422.html
117
+ - test/dummy/public/favicon.ico
118
+ - test/dummy/public/404.html
119
+ - test/dummy/public/500.html
120
+ - test/dummy/config/application.rb
121
+ - test/dummy/config/environment.rb
122
+ - test/dummy/config/database.yml
123
+ - test/dummy/config/initializers/cookies_serializer.rb
124
+ - test/dummy/config/initializers/filter_parameter_logging.rb
125
+ - test/dummy/config/initializers/mime_types.rb
126
+ - test/dummy/config/initializers/backtrace_silencers.rb
127
+ - test/dummy/config/initializers/wrap_parameters.rb
128
+ - test/dummy/config/initializers/inflections.rb
129
+ - test/dummy/config/initializers/session_store.rb
130
+ - test/dummy/config/initializers/assets.rb
131
+ - test/dummy/config/environments/production.rb
132
+ - test/dummy/config/environments/test.rb
133
+ - test/dummy/config/environments/development.rb
134
+ - test/dummy/config/boot.rb
135
+ - test/dummy/config/secrets.yml
136
+ - test/dummy/config/locales/en.yml
137
+ - test/dummy/config/routes.rb
138
+ - test/dummy/log/test.log
139
+ - test/dummy/bin/bundle
140
+ - test/dummy/bin/rails
141
+ - test/dummy/bin/rake
142
+ - test/dummy/README.rdoc
143
+ - test/dummy/Rakefile