push-core 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -12,21 +12,21 @@
12
12
 
13
13
  Add to your `GemFile`
14
14
 
15
- gem push-core
15
+ gem 'push-core'
16
16
 
17
17
  and add the push provider to you Gemfile:
18
18
 
19
19
  For __APNS__ (iOS: Apple Push Notification Services):
20
20
 
21
- gem push-apns
22
-
21
+ gem 'push-apns'
22
+
23
23
  For __C2DM__ (Android: Cloud to Device Messaging, deprecated by Google, not this gem):
24
24
 
25
- gem push-c2dm
25
+ gem 'push-c2dm'
26
26
 
27
27
  For __GCM__ (Android: Google Cloud Messaging):
28
28
 
29
- gem push-gcm
29
+ gem 'push-gcm'
30
30
 
31
31
  And run `bundle install` to install the gems.
32
32
 
@@ -73,7 +73,7 @@ You can have each provider per app_name and you can have more than one app_name.
73
73
  7. Convert the certificate to a .pem, where `<environment>` should be `development` or `production`, depending on the certificate you exported.
74
74
 
75
75
  `openssl pkcs12 -nodes -clcerts -in cert.p12 -out <environment>.pem`
76
-
76
+
77
77
  8. Move the .pem file somewhere where you can use the `File.read` to load the file in the database.
78
78
 
79
79
  ## Daemon
@@ -81,7 +81,7 @@ You can have each provider per app_name and you can have more than one app_name.
81
81
  To start the daemon:
82
82
 
83
83
  bundle exec push <environment> <options>
84
-
84
+
85
85
  Where `<environment>` is your Rails environment and `<options>` can be:
86
86
 
87
87
  -f, --foreground Run in the foreground. Log is not written.
@@ -103,7 +103,7 @@ Push::MessageApns.create(
103
103
  alert: 'Hello World',
104
104
  sound: '1.aiff',
105
105
  badge: 1,
106
- expiry: 1.day.to_i,
106
+ expiry: 1.day.to_i,
107
107
  attributes_for_device: {key: 'MSG'})
108
108
  ```
109
109
  C2DM:
data/lib/push/daemon.rb CHANGED
@@ -39,12 +39,17 @@ module Push
39
39
  protected
40
40
 
41
41
  def self.rescale_poolsize(size)
42
+ h = ActiveRecord::Base.connection_config
42
43
  # 1 feeder + providers
43
- size = 1 + size
44
+ h[:pool] = 1 + size
44
45
 
45
- h = ActiveRecord::Base.connection_config
46
- h[:pool] = size
46
+ # save the adjustments in the configuration
47
+ ActiveRecord::Base.configurations[ENV['RAILS_ENV']] = h
48
+
49
+ # apply new configuration
50
+ ActiveRecord::Base.clear_all_connections!
47
51
  ActiveRecord::Base.establish_connection(h)
52
+
48
53
  logger.info("[Daemon] Rescaled ActiveRecord ConnectionPool size to #{size}")
49
54
  end
50
55
 
@@ -2,7 +2,7 @@ module Push
2
2
  module Daemon
3
3
  module DatabaseReconnectable
4
4
  def adaptor_errors
5
- errors = [ActiveRecord::StatementInvalid]
5
+ errors = [ActiveRecord::StatementInvalid, ActiveRecord::ConnectionNotEstablished]
6
6
  errors << PGError if defined?(PGError)
7
7
  errors << Mysql2::Error if defined?(Mysql2)
8
8
  errors
@@ -37,7 +37,7 @@ module Push
37
37
 
38
38
  def reconnect_database
39
39
  ActiveRecord::Base.clear_all_connections!
40
- ActiveRecord::Base.establish_connection
40
+ ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[ENV['RAILS_ENV']])
41
41
  end
42
42
 
43
43
  def check_database_is_connected
@@ -16,9 +16,9 @@ module Push
16
16
  def start
17
17
  Thread.new do
18
18
  loop do
19
+ interruptible_sleep @poll
19
20
  break if @stop
20
21
  enqueue_feedback
21
- interruptible_sleep @poll
22
22
  end
23
23
  end
24
24
  end
@@ -3,7 +3,12 @@ module Push
3
3
  class Logger
4
4
  def initialize(options)
5
5
  @options = options
6
- open_log unless @options[:foreground]
6
+
7
+ if @options[:foreground]
8
+ STDOUT.sync = true
9
+ else
10
+ open_log
11
+ end
7
12
  end
8
13
 
9
14
  def info(msg)
data/lib/push/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Push
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: push-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-19 00:00:00.000000000 Z
12
+ date: 2012-09-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70261995219020 !ruby/object:Gem::Requirement
16
+ requirement: &70126762372120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70261995219020
24
+ version_requirements: *70126762372120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &70261995218260 !ruby/object:Gem::Requirement
27
+ requirement: &70126762371220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70261995218260
35
+ version_requirements: *70126762371220
36
36
  description: Push daemon for push notification services like APNS (iOS/Apple) and
37
37
  GCM/C2DM (Android).
38
38
  email: