moonshado-sms 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -17,4 +17,4 @@ Production environment config:
17
17
 
18
18
  == Copyright
19
19
 
20
- Copyright (c) 2010 Kevin Patel. See LICENSE for details.
20
+ Copyright (c) 2010 Moonshado, Inc. See LICENSE for details.
data/Rakefile CHANGED
@@ -11,8 +11,8 @@ begin
11
11
  gem.authors = ["Kevin Patel"]
12
12
  gem.add_development_dependency "shoulda", ">= 0"
13
13
  gem.add_development_dependency "webmock", ">= 0"
14
- gem.add_runtime_dependency "rest-client", '1.5.1'
15
- gem.add_runtime_dependency "yajl-ruby", '0.7.6'
14
+ gem.add_runtime_dependency "rest-client", '1.6.0'
15
+ gem.add_runtime_dependency "yajl-ruby", '0.7.7'
16
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
17
  end
18
18
  Jeweler::GemcutterTasks.new
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :patch: 0
3
3
  :build:
4
- :major: 0
5
- :minor: 5
4
+ :major: 1
5
+ :minor: 0
@@ -23,8 +23,8 @@ module Moonshado
23
23
  def initialize
24
24
  @secure = false
25
25
  @host = 'heroku.moonshado.com'
26
- @http_open_timeout = 2
27
- @http_read_timeout = 5
26
+ @http_open_timeout = 10
27
+ @http_read_timeout = 10
28
28
  @production_environment = true
29
29
  @sms_uri = '/sms'
30
30
  @keywords_uri = '/keywords'
data/lib/moonshado/sms.rb CHANGED
@@ -22,7 +22,7 @@ module Moonshado
22
22
  def find(id)
23
23
  response = sender.get(configuration.sms_uri + "/#{id}")
24
24
 
25
- Yajl::Parser.new.parse(response.body)
25
+ parse(response.to_s)
26
26
  end
27
27
  end
28
28
 
@@ -46,7 +46,11 @@ module Moonshado
46
46
  data = {:sms => {:device_address => format_number(@number), :message => @message}}
47
47
 
48
48
  if production_environment?
49
- response = sender.send_to_moonshado(data, configuration.sms_uri)
49
+ begin
50
+ response = sender.send_to_moonshado(data, configuration.sms_uri)
51
+ rescue Exception => e
52
+ response = RestClient::Response.create("{\"stat\":\"fail\",\"error\":\"#{e.message}\"}", "", {})
53
+ end
50
54
  else
51
55
  response = RestClient::Response.create('{"stat":"ok","id":"sms_id_mock"}', "", {})
52
56
  end
@@ -85,7 +89,11 @@ module Moonshado
85
89
  end
86
90
 
87
91
  def parse(json)
88
- parser = Yajl::Parser.new.parse(json)
92
+ begin
93
+ parser = Yajl::Parser.new.parse(json)
94
+ rescue Exception => e
95
+ {"stat"=>"fail", "error"=>"json parser error", "response"=>json.to_s}
96
+ end
89
97
  end
90
98
  end
91
- end
99
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{moonshado-sms}
8
- s.version = "0.5.0"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kevin Patel"]
12
- s.date = %q{2010-08-06}
12
+ s.date = %q{2010-08-26}
13
13
  s.email = %q{tech@moonshado.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -53,19 +53,19 @@ Gem::Specification.new do |s|
53
53
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
54
  s.add_development_dependency(%q<shoulda>, [">= 0"])
55
55
  s.add_development_dependency(%q<webmock>, [">= 0"])
56
- s.add_runtime_dependency(%q<rest-client>, ["= 1.5.1"])
57
- s.add_runtime_dependency(%q<yajl-ruby>, ["= 0.7.6"])
56
+ s.add_runtime_dependency(%q<rest-client>, ["= 1.6.0"])
57
+ s.add_runtime_dependency(%q<yajl-ruby>, ["= 0.7.7"])
58
58
  else
59
59
  s.add_dependency(%q<shoulda>, [">= 0"])
60
60
  s.add_dependency(%q<webmock>, [">= 0"])
61
- s.add_dependency(%q<rest-client>, ["= 1.5.1"])
62
- s.add_dependency(%q<yajl-ruby>, ["= 0.7.6"])
61
+ s.add_dependency(%q<rest-client>, ["= 1.6.0"])
62
+ s.add_dependency(%q<yajl-ruby>, ["= 0.7.7"])
63
63
  end
64
64
  else
65
65
  s.add_dependency(%q<shoulda>, [">= 0"])
66
66
  s.add_dependency(%q<webmock>, [">= 0"])
67
- s.add_dependency(%q<rest-client>, ["= 1.5.1"])
68
- s.add_dependency(%q<yajl-ruby>, ["= 0.7.6"])
67
+ s.add_dependency(%q<rest-client>, ["= 1.6.0"])
68
+ s.add_dependency(%q<yajl-ruby>, ["= 0.7.7"])
69
69
  end
70
70
  end
71
71
 
data/test/sms_test.rb CHANGED
@@ -44,5 +44,25 @@ class Moonshado::SmsTest < Test::Unit::TestCase
44
44
 
45
45
  assert_equal(sms.deliver_sms, {"id"=>"sms_id_mock", "stat"=>"ok"})
46
46
  end
47
+
48
+ should "handle bad response" do
49
+ sms = Moonshado::Sms.new
50
+ assert_equal(sms.send(:parse, "test")["stat"], 'fail')
51
+ assert_equal(sms.send(:parse, "test")["error"], 'json parser error')
52
+ end
53
+ end
54
+
55
+ context Moonshado::Sms do
56
+ setup do
57
+ Moonshado::Sms.configure do |config|
58
+ config.api_key = '20lsdjf2'
59
+ config.host = 'notreal.moonshado.com'
60
+ config.production_environment = true
61
+ end
62
+ end
63
+
64
+ should "return DNS error" do
65
+ assert_equal(Moonshado::Sms.new("1(555)555-6471", "test").deliver_sms["stat"], "fail")
66
+ end
47
67
  end
48
- end
68
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moonshado-sms
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 5
9
9
  - 0
10
- version: 0.5.0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kevin Patel
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-06 00:00:00 -04:00
18
+ date: 2010-08-26 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -54,12 +54,12 @@ dependencies:
54
54
  requirements:
55
55
  - - "="
56
56
  - !ruby/object:Gem::Version
57
- hash: 1
57
+ hash: 15
58
58
  segments:
59
59
  - 1
60
- - 5
61
- - 1
62
- version: 1.5.1
60
+ - 6
61
+ - 0
62
+ version: 1.6.0
63
63
  type: :runtime
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
@@ -70,12 +70,12 @@ dependencies:
70
70
  requirements:
71
71
  - - "="
72
72
  - !ruby/object:Gem::Version
73
- hash: 15
73
+ hash: 13
74
74
  segments:
75
75
  - 0
76
76
  - 7
77
- - 6
78
- version: 0.7.6
77
+ - 7
78
+ version: 0.7.7
79
79
  type: :runtime
80
80
  version_requirements: *id004
81
81
  description: