rpush 2.5.0 → 2.6.0
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.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +15 -1
 - data/README.md +7 -1
 - data/lib/generators/rpush_migration_generator.rb +1 -0
 - data/lib/generators/templates/rpush_2_6_0_updates.rb +10 -0
 - data/lib/rpush/cli.rb +2 -0
 - data/lib/rpush/client/active_model/gcm/notification.rb +1 -0
 - data/lib/rpush/client/active_record/notification.rb +1 -1
 - data/lib/rpush/client/mongoid/notification.rb +1 -0
 - data/lib/rpush/client/redis/notification.rb +1 -0
 - data/lib/rpush/daemon/gcm/delivery.rb +2 -2
 - data/lib/rpush/daemon/store/active_record.rb +1 -1
 - data/lib/rpush/daemon/wns/delivery.rb +6 -8
 - data/lib/rpush/version.rb +1 -1
 - data/spec/functional/cli_spec.rb +1 -0
 - data/spec/support/active_record_setup.rb +2 -1
 - data/spec/unit/client/active_record/gcm/notification_spec.rb +5 -0
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6f3cc8682dd4d0be056e3fdac764d7e611f93d13
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9d98d267c188c407324808d28d9a3922dbb9b060
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 59ee90a994a38a3684baef26510f1bf8befac593c91d691988f729224eeda34129c4965aa3bd8b7ed7db2b2c4288087bf11372c4089b73c90a77e78706fc56f4
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c6d83831032136982317afe65731d0c0f56c2c568ce8c5c27ad96e5cb0b573587615d09fa36da7791999e78c652f8f2b05808a1c266e67f19025e3cb9a3b8ba5
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,3 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ## 2.6.0 (Jan 25, 2016)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            #### Features
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * Added support for GCM for iOS' `content_available`. ([#221](https://github.com/rpush/rpush/pull/221))
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            #### Fixes
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            * Fix typo in Oracle support. ([#185](https://github.com/rpush/rpush/pull/185))
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Remove `param` tag from WNS message. ([#190](https://github.com/rpush/rpush/pull/190))
         
     | 
| 
      
 11 
     | 
    
         
            +
            * Fixed WNS response headers parser. ([#192](https://github.com/rpush/rpush/pull/192))
         
     | 
| 
      
 12 
     | 
    
         
            +
            * GCM: fixed raise of unhandled errors. ([#193](https://github.com/rpush/rpush/pull/193))
         
     | 
| 
      
 13 
     | 
    
         
            +
            * Fix issue with custom PID file set in `Rpush.config`. ([#224](https://github.com/rpush/rpush/pull/224), [#225](https://github.com/rpush/rpush/pull/225))
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       1 
15 
     | 
    
         
             
            ## 2.5.0 (July 19, 2015)
         
     | 
| 
       2 
16 
     | 
    
         
             
              Features:
         
     | 
| 
       3 
17 
     | 
    
         
             
              * Add 'rpush status' to inspect running Rpush internal status.
         
     | 
| 
         @@ -10,7 +24,7 @@ 
     | 
|
| 
       10 
24 
     | 
    
         
             
              * Fix for handling APNs error when using `rpush push` or `Rpush.push`.
         
     | 
| 
       11 
25 
     | 
    
         
             
              * Fix backwards compatibility issue with ActiveRecord (#144).
         
     | 
| 
       12 
26 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            ## 2.4.0 ( 
     | 
| 
      
 27 
     | 
    
         
            +
            ## 2.4.0 (Feb 18, 2015)
         
     | 
| 
       14 
28 
     | 
    
         
             
              Features:
         
     | 
| 
       15 
29 
     | 
    
         
             
              * Support for MongoDB (using Mongoid).
         
     | 
| 
       16 
30 
     | 
    
         
             
              * config.feedback_poll is now deprecated, use config.apns.feedback_receiver.frequency instead.
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -119,6 +119,8 @@ For more documentation on [ADM](https://developer.amazon.com/sdk/adm.html). 
     | 
|
| 
       119 
119 
     | 
    
         
             
            ```ruby
         
     | 
| 
       120 
120 
     | 
    
         
             
            app = Rpush::Wpns::App.new
         
     | 
| 
       121 
121 
     | 
    
         
             
            app.name = "windows_phone_app"
         
     | 
| 
      
 122 
     | 
    
         
            +
            app.client_id = # Get this from your apps dashboard https://dev.windows.com
         
     | 
| 
      
 123 
     | 
    
         
            +
            app.client_secret = # Get this from your apps dashboard https://dev.windows.com
         
     | 
| 
       122 
124 
     | 
    
         
             
            app.connections = 1
         
     | 
| 
       123 
125 
     | 
    
         
             
            app.save!
         
     | 
| 
       124 
126 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -175,6 +177,10 @@ end 
     | 
|
| 
       175 
177 
     | 
    
         | 
| 
       176 
178 
     | 
    
         
             
            Call this during startup of your application, for example, by adding it to the end of `config/rpush.rb`. See [Embedding API](https://github.com/rpush/rpush/wiki/Embedding-API) for more details.
         
     | 
| 
       177 
179 
     | 
    
         | 
| 
      
 180 
     | 
    
         
            +
            #### Using mina
         
     | 
| 
      
 181 
     | 
    
         
            +
             
     | 
| 
      
 182 
     | 
    
         
            +
            If you're using [mina](https://github.com/mina-deploy/mina), there is a gem called [mina-rpush](https://github.com/d4rky-pl/mina-rpush) which helps you control rpush.
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
       178 
184 
     | 
    
         
             
            ### Configuration
         
     | 
| 
       179 
185 
     | 
    
         | 
| 
       180 
186 
     | 
    
         
             
            See [Configuration](https://github.com/rpush/rpush/wiki/Configuration) for a list of options.
         
     | 
| 
         @@ -216,7 +222,7 @@ You should run `rpush init` after upgrading Rpush to check for configuration and 
     | 
|
| 
       216 
222 
     | 
    
         | 
| 
       217 
223 
     | 
    
         
             
            When running specs, please note that the ActiveRecord adapter can be changed by setting the `ADAPTER` environment variable. For example: `ADAPTER=postgresql rake`.
         
     | 
| 
       218 
224 
     | 
    
         | 
| 
       219 
     | 
    
         
            -
            Available adapters for testing are ` 
     | 
| 
      
 225 
     | 
    
         
            +
            Available adapters for testing are `postgresql`, `jdbcpostgresql`, `mysql2`, `jdbcmysql`, `jdbch2`, and `sqlite3`.
         
     | 
| 
       220 
226 
     | 
    
         | 
| 
       221 
227 
     | 
    
         
             
            Note that the database username is changed at runtime to be the currently logged in user's name. So if you're testing
         
     | 
| 
       222 
228 
     | 
    
         
             
            with mysql and you're using a user named 'bob', you will need to grant a mysql user 'bob' access to the 'rpush_test'
         
     | 
    
        data/lib/rpush/cli.rb
    CHANGED
    
    
| 
         @@ -16,7 +16,7 @@ module Rpush 
     | 
|
| 
       16 
16 
     | 
    
         
             
                      attr_accessible :badge, :device_token, :sound, :alert, :data, :expiry, :delivered,
         
     | 
| 
       17 
17 
     | 
    
         
             
                                      :delivered_at, :failed, :failed_at, :error_code, :error_description, :deliver_after,
         
     | 
| 
       18 
18 
     | 
    
         
             
                                      :alert_is_json, :app, :app_id, :collapse_key, :delay_while_idle, :registration_ids,
         
     | 
| 
       19 
     | 
    
         
            -
                                      :uri, :url_args, :category
         
     | 
| 
      
 19 
     | 
    
         
            +
                                      :uri, :url_args, :category, :content_available
         
     | 
| 
       20 
20 
     | 
    
         
             
                    end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                    def data=(attrs)
         
     | 
| 
         @@ -5,7 +5,7 @@ module Rpush 
     | 
|
| 
       5 
5 
     | 
    
         
             
                  class Delivery < Rpush::Daemon::Delivery
         
     | 
| 
       6 
6 
     | 
    
         
             
                    include MultiJsonHelper
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                    host = 'https:// 
     | 
| 
      
 8 
     | 
    
         
            +
                    host = 'https://gcm-http.googleapis.com'
         
     | 
| 
       9 
9 
     | 
    
         
             
                    GCM_URI = URI.parse("#{host}/gcm/send")
         
     | 
| 
       10 
10 
     | 
    
         
             
                    UNAVAILABLE_STATES = %w(Unavailable InternalServerError)
         
     | 
| 
       11 
11 
     | 
    
         
             
                    INVALID_REGISTRATION_ID_STATES = %w(InvalidRegistration MismatchSenderId NotRegistered InvalidPackageName)
         
     | 
| 
         @@ -44,7 +44,7 @@ module Rpush 
     | 
|
| 
       44 
44 
     | 
    
         
             
                      when 503
         
     | 
| 
       45 
45 
     | 
    
         
             
                        service_unavailable(response)
         
     | 
| 
       46 
46 
     | 
    
         
             
                      else
         
     | 
| 
       47 
     | 
    
         
            -
                        fail Rpush::DeliveryError.new(response.code, @notification.id, Rpush::Daemon::HTTP_STATUS_CODES[response.code.to_i])
         
     | 
| 
      
 47 
     | 
    
         
            +
                        fail Rpush::DeliveryError.new(response.code.to_i, @notification.id, Rpush::Daemon::HTTP_STATUS_CODES[response.code.to_i])
         
     | 
| 
       48 
48 
     | 
    
         
             
                      end
         
     | 
| 
       49 
49 
     | 
    
         
             
                    end
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
         @@ -206,7 +206,7 @@ module Rpush 
     | 
|
| 
       206 
206 
     | 
    
         | 
| 
       207 
207 
     | 
    
         
             
                    def claim(relation)
         
     | 
| 
       208 
208 
     | 
    
         
             
                      notifications = relation.lock(true).to_a
         
     | 
| 
       209 
     | 
    
         
            -
                      @using_oracle ?  
     | 
| 
      
 209 
     | 
    
         
            +
                      @using_oracle ? notifications.sort_by(&:created_at) : notifications
         
     | 
| 
       210 
210 
     | 
    
         
             
                    end
         
     | 
| 
       211 
211 
     | 
    
         | 
| 
       212 
212 
     | 
    
         
             
                    def adapter_name
         
     | 
| 
         @@ -145,26 +145,24 @@ module Rpush 
     | 
|
| 
       145 
145 
     | 
    
         
             
                    end
         
     | 
| 
       146 
146 
     | 
    
         | 
| 
       147 
147 
     | 
    
         
             
                    def status_from_response(response)
         
     | 
| 
       148 
     | 
    
         
            -
                      headers = response.to_hash
         
     | 
| 
      
 148 
     | 
    
         
            +
                      headers = response.to_hash.inject({}) {|h, v| h[v[0].downcase] = v[1]; h}
         
     | 
| 
       149 
149 
     | 
    
         
             
                      {
         
     | 
| 
       150 
     | 
    
         
            -
                        notification:         headers[" 
     | 
| 
       151 
     | 
    
         
            -
                        device_connection:    headers[" 
     | 
| 
       152 
     | 
    
         
            -
                        msg_id:               headers[" 
     | 
| 
       153 
     | 
    
         
            -
                        error_description:    headers[" 
     | 
| 
       154 
     | 
    
         
            -
                        debug_trace:          headers[" 
     | 
| 
      
 150 
     | 
    
         
            +
                        notification:         headers["x-wns-status"],
         
     | 
| 
      
 151 
     | 
    
         
            +
                        device_connection:    headers["x-wns-deviceconnectionstatus"],
         
     | 
| 
      
 152 
     | 
    
         
            +
                        msg_id:               headers["x-wns-msg-id"],
         
     | 
| 
      
 153 
     | 
    
         
            +
                        error_description:    headers["x-wns-error-description"],
         
     | 
| 
      
 154 
     | 
    
         
            +
                        debug_trace:          headers["x-wns-debug-trace"]
         
     | 
| 
       155 
155 
     | 
    
         
             
                      }
         
     | 
| 
       156 
156 
     | 
    
         
             
                    end
         
     | 
| 
       157 
157 
     | 
    
         | 
| 
       158 
158 
     | 
    
         
             
                    def notification_to_xml
         
     | 
| 
       159 
159 
     | 
    
         
             
                      title = clean_param_string(@notification.data['title']) if @notification.data['title'].present?
         
     | 
| 
       160 
160 
     | 
    
         
             
                      body = clean_param_string(@notification.data['body']) if @notification.data['body'].present?
         
     | 
| 
       161 
     | 
    
         
            -
                      param = clean_param_string(@notification.data['param']) if @notification.data['param'].present?
         
     | 
| 
       162 
161 
     | 
    
         
             
                      "<toast>
         
     | 
| 
       163 
162 
     | 
    
         
             
                        <visual version='1' lang='en-US'>
         
     | 
| 
       164 
163 
     | 
    
         
             
                          <binding template='ToastText02'>
         
     | 
| 
       165 
164 
     | 
    
         
             
                            <text id='1'>#{title}</text>
         
     | 
| 
       166 
165 
     | 
    
         
             
                            <text id='2'>#{body}</text>
         
     | 
| 
       167 
     | 
    
         
            -
                            <param>#{param}</param>
         
     | 
| 
       168 
166 
     | 
    
         
             
                          </binding>
         
     | 
| 
       169 
167 
     | 
    
         
             
                        </visual>
         
     | 
| 
       170 
168 
     | 
    
         
             
                      </toast>"
         
     | 
    
        data/lib/rpush/version.rb
    CHANGED
    
    
    
        data/spec/functional/cli_spec.rb
    CHANGED
    
    
| 
         @@ -29,8 +29,9 @@ ActiveRecord::Base.establish_connection(db_config[SPEC_ADAPTER]) 
     | 
|
| 
       29 
29 
     | 
    
         
             
            require 'generators/templates/add_rpush'
         
     | 
| 
       30 
30 
     | 
    
         
             
            require 'generators/templates/rpush_2_0_0_updates'
         
     | 
| 
       31 
31 
     | 
    
         
             
            require 'generators/templates/rpush_2_1_0_updates'
         
     | 
| 
      
 32 
     | 
    
         
            +
            require 'generators/templates/rpush_2_6_0_updates'
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
            migrations = [AddRpush, Rpush200Updates, Rpush210Updates]
         
     | 
| 
      
 34 
     | 
    
         
            +
            migrations = [AddRpush, Rpush200Updates, Rpush210Updates, Rpush260Updates]
         
     | 
| 
       34 
35 
     | 
    
         | 
| 
       35 
36 
     | 
    
         
             
            unless ENV['TRAVIS']
         
     | 
| 
       36 
37 
     | 
    
         
             
              migrations.reverse_each do |m|
         
     | 
| 
         @@ -31,4 +31,9 @@ describe Rpush::Client::ActiveRecord::Gcm::Notification do 
     | 
|
| 
       31 
31 
     | 
    
         
             
                notification.expiry = 100
         
     | 
| 
       32 
32 
     | 
    
         
             
                expect(notification.as_json['time_to_live']).to eq 100
         
     | 
| 
       33 
33 
     | 
    
         
             
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              it 'includes content_available in the payload' do
         
     | 
| 
      
 36 
     | 
    
         
            +
                notification.content_available = true
         
     | 
| 
      
 37 
     | 
    
         
            +
                expect(notification.as_json['content_available']).to eq true
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
       34 
39 
     | 
    
         
             
            end if active_record?
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rpush
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.6.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ian Leitch
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-01-25 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: multi_json
         
     | 
| 
         @@ -128,6 +128,7 @@ files: 
     | 
|
| 
       128 
128 
     | 
    
         
             
            - lib/generators/templates/rpush.rb
         
     | 
| 
       129 
129 
     | 
    
         
             
            - lib/generators/templates/rpush_2_0_0_updates.rb
         
     | 
| 
       130 
130 
     | 
    
         
             
            - lib/generators/templates/rpush_2_1_0_updates.rb
         
     | 
| 
      
 131 
     | 
    
         
            +
            - lib/generators/templates/rpush_2_6_0_updates.rb
         
     | 
| 
       131 
132 
     | 
    
         
             
            - lib/rpush.rb
         
     | 
| 
       132 
133 
     | 
    
         
             
            - lib/rpush/apns_feedback.rb
         
     | 
| 
       133 
134 
     | 
    
         
             
            - lib/rpush/cli.rb
         
     |