dr-apns 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/apns/core.rb +26 -8
  2. metadata +2 -2
data/lib/apns/core.rb CHANGED
@@ -64,7 +64,28 @@ module APNS
64
64
  return self.has_connection?(self.host, self.port)
65
65
  end
66
66
 
67
+ def self.validate_message(message)
68
+ if message.is_a?(Hash)
69
+ if message.to_json.bytesize > 256
70
+ raise "Message(json) bytesize > 256"
71
+ end
72
+ elsif message.is_a?(String)
73
+ if message.bytesize > 256
74
+ raise "Message bytesize > 256"
75
+ end
76
+ else
77
+ raise "Message needs to be either a hash or string"
78
+ end
79
+ end
80
+
81
+ def self.validate_messages(notifications)
82
+ notifications.each do |n|
83
+ self.validate_message(n[1])
84
+ end
85
+ end
86
+
67
87
  def self.send_notification(device_token, message)
88
+ self.validate_message(message)
68
89
  self.with_notification_connection do |conn|
69
90
  conn.write(self.packaged_notification(device_token, message))
70
91
  conn.flush
@@ -72,6 +93,7 @@ module APNS
72
93
  end
73
94
 
74
95
  def self.send_notifications(notifications)
96
+ self.validate_messages(notifications)
75
97
  self.with_notification_connection do |conn|
76
98
  notifications.each do |n|
77
99
  conn.write(self.packaged_notification(n[0], n[1]))
@@ -80,14 +102,16 @@ module APNS
80
102
  end
81
103
  end
82
104
 
83
- def self.send_notification_thread(device_token, message)
105
+ def self.send_notification_async(device_token, message)
106
+ self.validate_message(message)
84
107
  thread = Thread.new do
85
108
  self.send_notification(device_token, message)
86
109
  end
87
110
  return thread
88
111
  end
89
112
 
90
- def self.send_notifications_thread(notifications)
113
+ def self.send_notifications_async(notifications)
114
+ self.validate_messages(notifications)
91
115
  thread = Thread.new do
92
116
  self.send_notifications(notifications)
93
117
  end
@@ -135,14 +159,8 @@ module APNS
135
159
 
136
160
  def self.packaged_message(message)
137
161
  if message.is_a?(Hash)
138
- if message.to_json.bytesize > 256
139
- raise "Message(json) bytesize > 256"
140
- end
141
162
  message.to_json
142
163
  elsif message.is_a?(String)
143
- if message.bytesize > 256
144
- raise "Message bytesize > 256"
145
- end
146
164
  '{"aps":{"alert":"'+ message + '"}}'
147
165
  else
148
166
  raise "Message needs to be either a hash or string"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dr-apns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire: apns
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-27 00:00:00.000000000 Z
12
+ date: 2012-06-28 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Simple Apple push notification service gem
15
15
  email: dongriab@gmail.com