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.
Files changed (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/spns.rb +19 -25
  3. metadata +50 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.12
1
+ 0.2.13
data/lib/spns.rb CHANGED
@@ -15,20 +15,20 @@ require 'yaml'
15
15
  ############################################################
16
16
  ## Initilization Setup
17
17
  ############################################################
18
- lib_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
19
- root_dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
20
- unless $LOAD_PATH.include?(lib_dir)
21
- $LOAD_PATH << lib_dir
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 #{root_dir}/spns.yml #{Dir.pwd}/spns.yml"
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 #{root_dir}/cron #{Dir.pwd}/cron"
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
- ROOTDIR = File.expand_path(File.join(File.dirname(__FILE__), '..'))
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 is Running (#{VERSION}) ..."
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}".squeeze.strip == "0"
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 "*"*80
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 id that you mark the message, for example current timestamp"
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.12
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: 2341524814472371474
333
+ hash: -42604517742237939
286
334
  required_rubygems_version: !ruby/object:Gem::Requirement
287
335
  none: false
288
336
  requirements: