spns 0.2.12 → 0.2.13
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/VERSION +1 -1
- data/lib/spns.rb +19 -25
- metadata +50 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.13
|
data/lib/spns.rb
CHANGED
@@ -15,20 +15,20 @@ require 'yaml'
|
|
15
15
|
############################################################
|
16
16
|
## Initilization Setup
|
17
17
|
############################################################
|
18
|
-
|
19
|
-
|
20
|
-
unless $LOAD_PATH.include?(
|
21
|
-
$LOAD_PATH <<
|
18
|
+
LIBDIR = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
19
|
+
ROOTDIR = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
20
|
+
unless $LOAD_PATH.include?(LIBDIR)
|
21
|
+
$LOAD_PATH << LIBDIR
|
22
22
|
end
|
23
23
|
|
24
24
|
unless File.exist?("#{Dir.pwd}/spns.yml") then
|
25
25
|
puts 'create config file: spns.yml'
|
26
|
-
system "cp #{
|
26
|
+
system "cp #{ROOTDIR}/spns.yml #{Dir.pwd}/spns.yml"
|
27
27
|
end
|
28
28
|
|
29
29
|
unless File.exist?("#{Dir.pwd}/cron") then
|
30
30
|
puts "create a demo 'cron' script"
|
31
|
-
system "cp #{
|
31
|
+
system "cp #{ROOTDIR}/cron #{Dir.pwd}/cron"
|
32
32
|
end
|
33
33
|
|
34
34
|
############################################################
|
@@ -40,8 +40,7 @@ $timer = "#{config['timer']}".to_i
|
|
40
40
|
$cron = config['cron'] || 'cron'
|
41
41
|
$port = config['port'] || 4567
|
42
42
|
$mode = config['mode'] || env
|
43
|
-
|
44
|
-
VERSION = File.open("#{ROOTDIR}/VERSION", "rb").read
|
43
|
+
$VERSION = File.open("#{ROOTDIR}/VERSION", "rb").read
|
45
44
|
$apps = config['apps'] || []
|
46
45
|
|
47
46
|
############################################################
|
@@ -77,10 +76,10 @@ unless check_cert then
|
|
77
76
|
exit
|
78
77
|
else
|
79
78
|
puts "*"*80
|
80
|
-
puts "Simple Push Notification Server
|
79
|
+
puts "Simple Push Notification Server(#{$VERSION}) is Running ..."
|
81
80
|
puts "Mode: #{$mode}"
|
82
81
|
puts "Port: #{$port}"
|
83
|
-
puts "Cron Job: '#{Dir.pwd}/#{$cron}' script is running every #{$timer} #{($timer == 1) ? 'minute' : 'minutes'} " unless "#{$timer}".
|
82
|
+
puts "Cron Job: '#{Dir.pwd}/#{$cron}' script is running every #{$timer} #{($timer == 1) ? 'minute' : 'minutes'} " unless "#{$timer}".to_i == 0
|
84
83
|
puts "*"*80
|
85
84
|
end
|
86
85
|
|
@@ -88,8 +87,6 @@ end
|
|
88
87
|
## Sequel Database Setup
|
89
88
|
############################################################
|
90
89
|
|
91
|
-
$DB;
|
92
|
-
|
93
90
|
unless File.exist?("#{Dir.pwd}/push.db") then
|
94
91
|
$DB = Sequel.connect("sqlite://#{Dir.pwd}/push.db")
|
95
92
|
|
@@ -123,27 +120,24 @@ unless $timer == 0 then
|
|
123
120
|
system "./#{$cron}"
|
124
121
|
end
|
125
122
|
else
|
123
|
+
puts "1: How to register notification? (Client Side)"
|
126
124
|
puts
|
127
|
-
puts "
|
128
|
-
puts "How to register notification?"
|
129
|
-
puts
|
130
|
-
puts "iOS Client: in AppDelegate file, didRegisterForRemoteNotificationsWithDeviceToken method should access url below:"
|
125
|
+
puts "In AppDelegate file, inside didRegisterForRemoteNotificationsWithDeviceToken method access url below to register device token:"
|
131
126
|
$apps.each { |app|
|
132
127
|
puts "'#{app}'s registration url: http://serverIP:#{$port}/v1/apps/#{app}/DeviceToken"
|
133
128
|
}
|
134
129
|
puts
|
135
|
-
puts "How to send push notification?"
|
130
|
+
puts "2: How to send push notification? (Server Side)"
|
136
131
|
puts
|
137
132
|
$apps.each { |app|
|
138
133
|
puts "curl http://localhost:#{$port}/v1/apps/#{app}/push/{message}/{pid}"
|
139
134
|
}
|
140
135
|
puts
|
141
136
|
puts "Note:"
|
142
|
-
puts "message: notification message you want to send, remember the message should be html escaped"
|
143
|
-
puts "pid: unique
|
137
|
+
puts "param1 (message): push notification message you want to send, remember the message should be html escaped"
|
138
|
+
puts "param2 (pid ): unique string to mark the message, for example current timestamp or md5/sha1 digest"
|
144
139
|
puts
|
145
140
|
puts "*"*80
|
146
|
-
puts
|
147
141
|
end
|
148
142
|
|
149
143
|
############################################################
|
@@ -154,7 +148,7 @@ class App < Sinatra::Base
|
|
154
148
|
|
155
149
|
set :port, "#{$port}".to_i
|
156
150
|
|
157
|
-
if $mode == 'development' then
|
151
|
+
if "#{$mode}".strip == 'development' then
|
158
152
|
set :show_exceptions, true
|
159
153
|
set :dump_errors, true
|
160
154
|
else
|
@@ -163,7 +157,8 @@ class App < Sinatra::Base
|
|
163
157
|
end
|
164
158
|
|
165
159
|
get '/' do
|
166
|
-
puts "Simple Push Notification Server"
|
160
|
+
puts "Simple Push Notification Server #{$VERSION}"
|
161
|
+
puts "written by Eiffel(Q) eiffelqiu@gmail.com"
|
167
162
|
end
|
168
163
|
|
169
164
|
$apps.each { |app|
|
@@ -186,10 +181,9 @@ class App < Sinatra::Base
|
|
186
181
|
|
187
182
|
@push = Token.where(:app => app)
|
188
183
|
@exist = Push.first(:pid => pid)
|
189
|
-
|
190
|
-
openSSLContext = $certkey["#{app}"]
|
191
|
-
|
184
|
+
|
192
185
|
unless @exist
|
186
|
+
openSSLContext = $certkey["#{app}"]
|
193
187
|
# Connect to port 2195 on the server.
|
194
188
|
sock = nil
|
195
189
|
if $mode == 'production' then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: thin
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: sinatra
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,6 +187,38 @@ dependencies:
|
|
171
187
|
- - ~>
|
172
188
|
- !ruby/object:Gem::Version
|
173
189
|
version: 1.8.4
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: sqlite3
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
type: :runtime
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: thin
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
type: :runtime
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
174
222
|
- !ruby/object:Gem::Dependency
|
175
223
|
name: sinatra
|
176
224
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,7 +330,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
282
330
|
version: '0'
|
283
331
|
segments:
|
284
332
|
- 0
|
285
|
-
hash:
|
333
|
+
hash: -42604517742237939
|
286
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
335
|
none: false
|
288
336
|
requirements:
|