resque-aps 0.9.13 → 0.9.14

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.9.14 (2010-09-1)
2
+
3
+ * Corrected path issues
4
+
1
5
  ## 0.9.13 (2010-09-1)
2
6
 
3
7
  * Feedback bug fix
File without changes
File without changes
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  module Resque
2
2
  module Plugins
3
3
  module Aps
4
- Version = '0.9.13'
4
+ Version = '0.9.14'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,147 @@
1
+ module Resque
2
+ module Plugins
3
+ module Aps
4
+
5
+ def logger=(logger)
6
+ @logger = logger
7
+ end
8
+
9
+ def logger
10
+ unless @logger
11
+ @logger = Logger.new(STDOUT)
12
+ @logger.level = Logger::WARN
13
+ end
14
+ @logger
15
+ end
16
+
17
+ def aps_gateway_host=(host)
18
+ @aps_gateway_host = host
19
+ end
20
+
21
+ def aps_gateway_host
22
+ @aps_gateway_host ||= "gateway.sandbox.push.apple.com"
23
+ end
24
+
25
+ def aps_gateway_port=(port)
26
+ @aps_gateway_port = port
27
+ end
28
+
29
+ def aps_gateway_port
30
+ @aps_gateway_port ||= 2195
31
+ end
32
+
33
+ def aps_feedback_host=(host)
34
+ @aps_feedback_host = host
35
+ end
36
+
37
+ def aps_feedback_host
38
+ @aps_feedback_host ||= "feedback.sandbox.push.apple.com"
39
+ end
40
+
41
+ def aps_feedback_port=(port)
42
+ @aps_feedback_port = port
43
+ end
44
+
45
+ def aps_feedback_port
46
+ @aps_feedback_port ||= 2196
47
+ end
48
+
49
+ def aps_queue_size_upper=(size)
50
+ @aps_queue_size_upper = size
51
+ end
52
+
53
+ def aps_queue_size_upper
54
+ @aps_queue_size_upper ||= 1000
55
+ end
56
+
57
+ def aps_application_job_limit=(size)
58
+ @aps_queue_size_upper = size
59
+ end
60
+
61
+ def aps_application_job_limit
62
+ @aps_application_job_limit ||= 5
63
+ end
64
+
65
+ def aps_applications_queued_count(application_name)
66
+ redis.get(aps_application_queued_key(application_name)) || 0
67
+ end
68
+
69
+ def enqueue_aps_application(application_name, override = false)
70
+ count_apps = aps_applications_queued_count(application_name).to_i
71
+ count_not = aps_notification_count_for_application(application_name)
72
+ if override || count_apps <= 0 || (count_apps < aps_application_job_limit && (count_not > aps_queue_size_upper && count_not % (aps_queue_size_upper / 10) == 0))
73
+ enqueue(Resque::Plugins::Aps::Application, application_name)
74
+ redis.incr(aps_application_queued_key(application_name))
75
+ end
76
+ end
77
+
78
+ def dequeue_aps_application(application_name)
79
+ redis.decr(aps_application_queued_key(application_name)) if aps_applications_queued_count(application_name).to_i > 0
80
+ end
81
+
82
+ def enqueue_aps(application_name, notification)
83
+ redis.rpush(aps_application_queue_key(application_name), encode(notification.to_hash))
84
+ enqueue_aps_application(application_name)
85
+ true
86
+ end
87
+
88
+ def dequeue_aps(application_name)
89
+ h = decode(redis.lpop(aps_application_queue_key(application_name)))
90
+ return Resque::Plugins::Aps::Notification.new(h) if h
91
+ nil
92
+ end
93
+
94
+ # Returns the number of queued notifications for a given application
95
+ def aps_notification_count_for_application(application_name)
96
+ redis.llen(aps_application_queue_key(application_name)).to_i
97
+ end
98
+
99
+ # Returns an array of queued notifications for the given application
100
+ def aps_notifications_for_application(application_name, start = 0, count = 1)
101
+ r = redis.lrange(aps_application_queue_key(application_name), start, count)
102
+ if r
103
+ r.map { |h| Resque::Plugins::Aps::Notification.new(decode(h)) }
104
+ else
105
+ []
106
+ end
107
+ end
108
+
109
+ def create_aps_application(name, cert_file, cert_passwd = nil)
110
+ redis.set(aps_application_key(name), encode({'name' => name, 'cert_file' => cert_file, 'cert_passwd' => cert_passwd}))
111
+ redis.sadd(:aps_applications, name)
112
+ end
113
+
114
+ def aps_application(name)
115
+ h = decode(redis.get(aps_application_key(name)))
116
+ return Resque::Plugins::Aps::Application.new(h) if h
117
+ nil
118
+ end
119
+
120
+ # Returns an array of applications based on start and count
121
+ def aps_application_names(start = 0, count = 1)
122
+ a = redis.smembers(:aps_applications)
123
+ return a if count == 0
124
+ ret = a[start..(start + count)]
125
+ return [] unless ret
126
+ ret
127
+ end
128
+
129
+ # Returns the number of application queues
130
+ def aps_applications_count
131
+ redis.smembers(:aps_applications).size
132
+ end
133
+
134
+ def aps_application_key(application_name)
135
+ "aps:application:#{application_name}"
136
+ end
137
+
138
+ def aps_application_queued_key(application_name)
139
+ "#{aps_application_key(application_name)}:queued"
140
+ end
141
+
142
+ def aps_application_queue_key(application_name)
143
+ "#{aps_application_key(application_name)}:queue"
144
+ end
145
+ end
146
+ end
147
+ end
data/lib/resque_aps.rb CHANGED
@@ -2,161 +2,14 @@ require 'rubygems'
2
2
  require 'resque'
3
3
  require 'logger'
4
4
  require 'resque/server'
5
- require 'resque_aps/helper'
6
- require 'resque_aps/version'
7
- require 'resque_aps/server'
8
- require 'resque_aps/application'
9
- require 'resque_aps/notification'
10
- require 'resque_aps/feedback'
11
- require 'resque_aps/unknown_attribute_error'
12
-
13
- module Resque
14
- module Plugins
15
- module Aps
16
-
17
- def logger=(logger)
18
- @logger = logger
19
- end
20
-
21
- def logger
22
- unless @logger
23
- @logger = Logger.new(STDOUT)
24
- @logger.level = Logger::WARN
25
- end
26
- @logger
27
- end
28
-
29
- def aps_gateway_host=(host)
30
- @aps_gateway_host = host
31
- end
32
-
33
- def aps_gateway_host
34
- @aps_gateway_host ||= "gateway.sandbox.push.apple.com"
35
- end
36
-
37
- def aps_gateway_port=(port)
38
- @aps_gateway_port = port
39
- end
40
-
41
- def aps_gateway_port
42
- @aps_gateway_port ||= 2195
43
- end
44
-
45
- def aps_feedback_host=(host)
46
- @aps_feedback_host = host
47
- end
48
-
49
- def aps_feedback_host
50
- @aps_feedback_host ||= "feedback.sandbox.push.apple.com"
51
- end
52
-
53
- def aps_feedback_port=(port)
54
- @aps_feedback_port = port
55
- end
56
-
57
- def aps_feedback_port
58
- @aps_feedback_port ||= 2196
59
- end
60
-
61
- def aps_queue_size_upper=(size)
62
- @aps_queue_size_upper = size
63
- end
64
-
65
- def aps_queue_size_upper
66
- @aps_queue_size_upper ||= 1000
67
- end
68
-
69
- def aps_application_job_limit=(size)
70
- @aps_queue_size_upper = size
71
- end
72
-
73
- def aps_application_job_limit
74
- @aps_application_job_limit ||= 5
75
- end
76
-
77
- def aps_applications_queued_count(application_name)
78
- redis.get(aps_application_queued_key(application_name)) || 0
79
- end
80
-
81
- def enqueue_aps_application(application_name, override = false)
82
- count_apps = aps_applications_queued_count(application_name).to_i
83
- count_not = aps_notification_count_for_application(application_name)
84
- if override || count_apps <= 0 || (count_apps < aps_application_job_limit && (count_not > aps_queue_size_upper && count_not % (aps_queue_size_upper / 10) == 0))
85
- enqueue(Resque::Plugins::Aps::Application, application_name)
86
- redis.incr(aps_application_queued_key(application_name))
87
- end
88
- end
89
-
90
- def dequeue_aps_application(application_name)
91
- redis.decr(aps_application_queued_key(application_name)) if aps_applications_queued_count(application_name).to_i > 0
92
- end
93
-
94
- def enqueue_aps(application_name, notification)
95
- redis.rpush(aps_application_queue_key(application_name), encode(notification.to_hash))
96
- enqueue_aps_application(application_name)
97
- true
98
- end
99
-
100
- def dequeue_aps(application_name)
101
- h = decode(redis.lpop(aps_application_queue_key(application_name)))
102
- return Resque::Plugins::Aps::Notification.new(h) if h
103
- nil
104
- end
105
-
106
- # Returns the number of queued notifications for a given application
107
- def aps_notification_count_for_application(application_name)
108
- redis.llen(aps_application_queue_key(application_name)).to_i
109
- end
110
-
111
- # Returns an array of queued notifications for the given application
112
- def aps_notifications_for_application(application_name, start = 0, count = 1)
113
- r = redis.lrange(aps_application_queue_key(application_name), start, count)
114
- if r
115
- r.map { |h| Resque::Plugins::Aps::Notification.new(decode(h)) }
116
- else
117
- []
118
- end
119
- end
120
-
121
- def create_aps_application(name, cert_file, cert_passwd = nil)
122
- redis.set(aps_application_key(name), encode({'name' => name, 'cert_file' => cert_file, 'cert_passwd' => cert_passwd}))
123
- redis.sadd(:aps_applications, name)
124
- end
125
-
126
- def aps_application(name)
127
- h = decode(redis.get(aps_application_key(name)))
128
- return Resque::Plugins::Aps::Application.new(h) if h
129
- nil
130
- end
131
-
132
- # Returns an array of applications based on start and count
133
- def aps_application_names(start = 0, count = 1)
134
- a = redis.smembers(:aps_applications)
135
- return a if count == 0
136
- ret = a[start..(start + count)]
137
- return [] unless ret
138
- ret
139
- end
140
-
141
- # Returns the number of application queues
142
- def aps_applications_count
143
- redis.smembers(:aps_applications).size
144
- end
145
-
146
- def aps_application_key(application_name)
147
- "aps:application:#{application_name}"
148
- end
149
-
150
- def aps_application_queued_key(application_name)
151
- "#{aps_application_key(application_name)}:queued"
152
- end
153
-
154
- def aps_application_queue_key(application_name)
155
- "#{aps_application_key(application_name)}:queue"
156
- end
157
- end
158
- end
159
- end
5
+ require 'resque/plugins/aps'
6
+ require 'resque/plugins/aps/helper'
7
+ require 'resque/plugins/aps/version'
8
+ require 'resque/plugins/aps/server'
9
+ require 'resque/plugins/aps/application'
10
+ require 'resque/plugins/aps/notification'
11
+ require 'resque/plugins/aps/feedback'
12
+ require 'resque/plugins/aps/unknown_attribute_error'
160
13
 
161
14
  Resque.extend Resque::Plugins::Aps
162
15
  Resque::Server.class_eval do
@@ -1,2 +1,2 @@
1
1
  $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
2
- require 'resque_aps/tasks'
2
+ require 'resque/plugins/aps/tasks'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-aps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: 0.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ashley Martens
@@ -80,18 +80,19 @@ files:
80
80
  - LICENSE
81
81
  - README.markdown
82
82
  - Rakefile
83
+ - lib/resque/plugins/aps.rb
84
+ - lib/resque/plugins/aps/application.rb
85
+ - lib/resque/plugins/aps/feedback.rb
86
+ - lib/resque/plugins/aps/helper.rb
87
+ - lib/resque/plugins/aps/notification.rb
88
+ - lib/resque/plugins/aps/server.rb
89
+ - lib/resque/plugins/aps/server/test_helper.rb
90
+ - lib/resque/plugins/aps/server/views/aps_applications.erb
91
+ - lib/resque/plugins/aps/server/views/notifications.erb
92
+ - lib/resque/plugins/aps/tasks.rb
93
+ - lib/resque/plugins/aps/unknown_attribute_error.rb
94
+ - lib/resque/plugins/aps/version.rb
83
95
  - lib/resque_aps.rb
84
- - lib/resque_aps/application.rb
85
- - lib/resque_aps/feedback.rb
86
- - lib/resque_aps/helper.rb
87
- - lib/resque_aps/notification.rb
88
- - lib/resque_aps/server.rb
89
- - lib/resque_aps/server/test_helper.rb
90
- - lib/resque_aps/server/views/aps_applications.erb
91
- - lib/resque_aps/server/views/notifications.erb
92
- - lib/resque_aps/tasks.rb
93
- - lib/resque_aps/unknown_attribute_error.rb
94
- - lib/resque_aps/version.rb
95
96
  - tasks/resque_aps.rake
96
97
  - test/application_test.rb
97
98
  - test/feedback_test.rb